fedarko / MetagenomeScope

Hierarchical scaffold/assembly graph web visualization tool. As of August 9, 2017, the official repository for this has moved to MarBL! Use that repository instead :)
http://github.com/marbl/MetagenomeScope
GNU General Public License v3.0
0 stars 0 forks source link

Change edge "spline types" in GraphViz? #117

Closed fedarko closed 7 years ago

fedarko commented 7 years ago

What this would do is allow us to, say, make all edges straight lines where possible.

And what this would do is facilitate the use of simple bezier edges in Cytoscape.js instead of complicated unbundled bezier edges.

Which could improve performance a decent amount; do some testing with the shakya dataset and see how performance changes with all haystack/bezier edges instead of unbundled beziers, and see if it looks like it'd be worth implementing this

fedarko commented 7 years ago

Tried a small test with component 1 of shakya. not impressed; i didn't notice much if any of a speedup. granted, i tried this using

cy.style().selector('edge').style('curve-style', 'bezier').update();

so maybe initializing edges as bezier is faster?

fedarko commented 7 years ago

Update: initializing edges as beziers from the start didn't really help much. Probably a tiny speedup, but nothing I noticed.

I guess I could come back to this later, but for now I think my time would be better spent on other things (even focusing on optimizing other parts of the viewer).

fedarko commented 7 years ago

Yeah, I tried all the different spline types in GraphViz. With the Velvet E. coli assembly graph, all* spline types resulted in an identical node layout, just with different edges. So it looks like the spline type doesn't have an impact on the actual layout.

(The polyline/line spline options are sort of interesting, and might be worth looking into as possible alternatives for the default splines. However, right now they're functionally equivalent to the default splines.)

*I wasn't able to get "curved" splines working, since those use a different .xdot format than the other edge types. They're also not really what we want, I think.

fedarko commented 7 years ago

Actually, hold up. consider the outputorder graphviz property; try it with edgesfirst and see what happens.

fedarko commented 7 years ago

Didn't look like edgesfirst or nodesfirst (with or without polylines, with or without using segments instead of unbundled-bezier in Cytoscape.js) made much of a difference for removing a badbezier edge on the Velvet salmonella assembly graph. (Trying "ortho" made pygraphviz angry at me.)

Re-closing, then.