Cy3D - 3D Renderer for Cytoscape - Early Preview

161 views
Skip to first unread message

Mike Kucera

unread,
Apr 7, 2015, 1:55:25 PM4/7/15
to cytoscap...@googlegroups.com

We are pleased to announce an early preview release of Cy3D, a 3D network renderer for Cytoscape.

The main purpose of this early preview it to gather feedback from the Cytoscape user community. If you have any comments about Cy3D or about features that you would like to see in a Cytoscape 3D renderer please let us know. Your feedback will help shape the future of 3D rendering in Cytoscape.

Download at: http://www.baderlab.org/Software/Cy3D

Released by: Bader Lab, University of Toronto

twh...@umich.edu

unread,
Apr 10, 2015, 10:20:01 PM4/10/15
to cytoscap...@googlegroups.com
Thank you for doing this.

One of my tasks is to import network graphs into virtual reality for immersive stereoscopic viewing with devices such as the Oculus Rift, a StereoWall, and a CAVE-like space.  I've previously imported 3D graphs from Pajek, but Cytoscape is now the tool of choice here.  (I'm an Advanced Visualization Specialist in the University of Michigan 3D Lab.)

I've written an XGMML importer and tested it with graphs exported from earlier 2D versions of Cytoscape.

I've now just done some tests with Cy3D.  I imported an XGMML file into Cytoscape 3.2.1 and into Cy3D.  I've put some screen shots on Google Drive here.

*  Cytoscape.jpg :  The graph as seen in Cytoscape 3.2.1

*  Cy3D-a.jpg :  The graph as initially seen in Cy3D.  I cannot center the graph in the view; the view remains centered on point (0, 0, 0), which is at a corner of the graph.  In v3.2.1 I can pan the graph in the view by dragging with the middle mouse button, but not so in Cy3D.

Also, I notice that the Y axis is initially flipped, compared to the previous 2D view, but this is not a big deal, since the orientation is arbitrary and in any case I can flip it back to the familiar orientation.

*  Cy3D-b.jpg :  The graph with the Y axis flipped back (rotated 180 degrees around the X axis).

*  Cy3D-c.jpg :  Zoomed out to see the whole graph.

*  Cy3D-d.jpg :  Though the nodes are spheres, the graph is still planar.

*  Cy3D-e.jpg :  After applying a "3D Force directed (BioLayout)", the nodes seem to be arranged in concentric spherical "shells", and the spacing between the shells is much larger than the diameter of the nodes.  Most of the nodes are invisibly small.  The dark blotch in the center is a dense cluster of nodes on an "inner shell."

*  Cy3D-f.jpg :  Zoomed in on the inner shell.

*  Cy3D-g.jpg :  Zoomed in more.  The edges are cylinders.  In immersive stereoscopic viewing, we've found simple lines to be more comfortable as well as more efficient, as long as the edge weight (cylinder diameter) isn't significant.  In 2D projections such as this, shaded cylinders are still necessary to differentiate front and back.

*  Finally, when I exported the 3D layout to a new XGMML file to import into our VR software, I found that the <node>...</node> elements contained no <graphics>...</graphics> children, so no information about node position, size, or shape-type is communicated.  I hope that there's an easy fix for that.


Mike Kucera

unread,
Apr 13, 2015, 9:47:26 AM4/13/15
to cytoscap...@googlegroups.com

Thank you for taking the time to try Cy3D and upload those images.

Currently the only way to move nodes in 3D is to apply a layout. Have you tried the “Center Graph” layout? It will compute the centroid of the graph and move the graph so that is the new origin.

I have not encountered the problem with the Y axis being flipped. I will try to reproduce it.

We are actually looking at some alternatives for rendering edges. Also, the current label rendering is admittedly pretty ugly, if you toggle the “Labels" button at the top of the graph view then that dark blotch will go away.

When exporting choose “Network and View…” and the <graphics> tags will be included in the exported file.

How do you feel about the way the camera controls with the mouse? Do you find the birds-eye view useful?

Thank you.


--
You received this message because you are subscribed to the Google Groups "cytoscape-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-disc...@googlegroups.com.
To post to this group, send email to cytoscap...@googlegroups.com.
Visit this group at http://groups.google.com/group/cytoscape-discuss.
For more options, visit https://groups.google.com/d/optout.

Theodore Hall

unread,
Apr 13, 2015, 8:19:20 PM4/13/15
to cytoscap...@googlegroups.com
Thanks Mike.  See replies below ...

On Mon, Apr 13, 2015 at 9:47 AM, Mike Kucera <mikek...@gmail.com> wrote:

Currently the only way to move nodes in 3D is to apply a layout. Have you tried the “Center Graph” layout? It will compute the centroid of the graph and move the graph so that is the new origin.


OK -- That helps.  But I would still like to be able to drag the scene with the middle mouse button (the wheel button on some mice) to reset the center of interest -- as in 2D Cytoscape.  In this graph, for example, the dense cluster of nodes is not centered at the overall graph centroid, so my ability to zoom in on it is limited.  As I get closer to the overall centroid, the cluster goes out of the field of view.  In general, I would like to be able to zoom in on any area of the graph.

I know it's a bit problematic to define the center of interest in a 3D graph with a 2D GUI, especially in regard to depth.  I suggest that for the x & y coordinates, use the center of the viewport and allow the user to drag the graph around within the (x, y) viewport.  For the z coordinate:

*  If the camera is outside of the graph, use the center of the graph.
*  Else, use the center of the region between the camera and the far boundary of the graph.

I have not encountered the problem with the Y axis being flipped. I will try to reproduce it.

As I mentioned, this is not a big deal.  I would call it a curiosity rather than a problem -- especially considering that applying a 3D layout is likely to radically change the topology of the graph in any case.

My guess is that: in 2D Cytoscape, the Y coordinate is measured down from the top -- as is typical in bitmaps, screen coordinates, PostScript, and so on; in Cy3D, the Y coordinate is measured up from the bottom, as in OpenGL.  That's my guess.

We are actually looking at some alternatives for rendering edges. Also, the current label rendering is admittedly pretty ugly, if you toggle the “Labels" button at the top of the graph view then that dark blotch will go away.

OK.  I'm not too worried about that.  However, it appears that labels aren't getting depth-clipped: nearer nodes don't occlude the labels of farther nodes.  I added another screen capture to my Google Drive folder to show this:


   Cy3D-h.jpg

That will be tricky to get right, so I don't consider it to be a show-stopper.  I added a Text3D shape class to our VR system to handle labels.  It took a lot of code to get truly 3D labels.  In a 2D GUI, you might keep a 2D view-dependent bounding-box or bounding-circle profile for each node, with a depth attribute (at the center of the node), sort by depth, clip farther profiles against closer ones, and omit labels for nodes that are are completely (or mostly) occluded.

When exporting choose “Network and View…” and the <graphics> tags will be included in the exported file.

Ah, thanks.  That worked.  However, it seems that Cy3D keeps a lock on the export file, until I do another export to a different file name.  That prevents TinyXML from opening it.  I'm not sure why that is.  Notepad++ could open it, as could my own code, but TinyXML and VisualStudio both failed.  VisualStudio complained that it was open in another program (even after I closed it from Notepad++).  TinyXML uses mode "rb" -- read-only, no write lock -- so I don't know why it fails to open.  In any case, after doing another "dummy" export from Cy3D using a different file name, TinyXML was then able to open the first one.

How do you feel about the way the camera controls with the mouse? Do you find the birds-eye view useful?

Overall, I think it's nice and intuitive.  I would just like to be able to drag and recenter in the XY plane.

Also, with this graph, the outer nodes are laid out pretty sparsely.  It seems like they could be pulled in a lot closer.  But, I'm a novice at informatics in general and Cytoscape in particular, and I'm also not familiar with the properties of this graph that guide the 3D layout.  For all I know, the edge weights dictate that low node density.  But the 2D graph is much less sparse.  I don't know what algorithm was used to create the 2D layout.

Cheers,

--

Ted Hall <twh...@umich.edu>
Advanced Visualization Specialist
University of Michigan 3D Lab

Ayesha

unread,
May 20, 2015, 9:20:37 AM5/20/15
to cytoscap...@googlegroups.com
DzexxxxxxxxxxzzzzzzzzzzzZzzzzzzzZzz🚑🚔🚓🚘🚌🚗🚎🚖🚗

Sent from Maishas' iPad

On 13-Apr-2015, at 18:47, Mike Kucera <mikek...@gmail.com> wrote:

Thank you for taking the time to try Cy3D and upload those images.

Currently the only way to move nodes in 3D is to apply a layout. Have you tried the “Center Graph” layout? It will compute the centroid of the graph and move the graph so that is the new origin.

I have not encountered the problem with the Y axis being flipped. I will try to reproduce it.

We are actually looking at some alternatives for rendering edges. Also, the current label rendering is admittedly pretty ugly, if you toggle the “Labels" button at the top of the graph view then that dark blotch will go away.

When exporting choose “Network and View…” and the <graphics> tags will be included in the exported file.

How do you feel about the way the camera controls with the mouse? Do you find the birds-eye view useful?

Thank you.

On Fri, Apr 10, 2015 at 10:16 PM, <twh...@umich.edu> wrote:
Thank you for doing this🆎📴🅰🅰♌️✅➿✅➿♻️⛎⛎🕔♥️◼️🔴🔵⚪️⚫️⚫️⚫️⚫️⚫️⚫️⚫️⚫️⚫️⚫️⚫️⚫️⚫️⚫️⚫️⚫️⚫️⚫️⚫️
One of my tasks is to import network graphs into virtual reality for immersive stereoscopic viewing with devices such as the Oculus Rift, a StereoWall, and a CAVE-like space.  I've previously imported 3D graphs from Pajek, but Cytoscape is now the tool of choice here.  (I'm an Advanced Visualization Specialist in the University of Michigan 3D Lab.)

I've written an XGMML importer and tested it with graphs exported from earlier 2D versions of Cytoscape.

I've now just done some tests with Cy3D.  I imported an XGMML file into Cytoscape 3.2.1 and into Cy3D.  I've put some screen shots on Google Drive here.

*  Cytoscape.jpg :  The graph as seen in Cytoscape 3.2.1

*  Cy3D-a.jpg :  The graph as initially seen in Cy3D.  I cannot center the graph in the view; the view remains centered on point (0, 0, 0), which is at a corner of the graph.  In v3.2.1 I can pan the graph in the view by dragging with the middle mouse button, but not so in Cy3D.

Also, I notice that the Y axis is initially flipped, compared to the previous 2D view, but this is not a big deal, since the orientation is arbitrary and in any case I can flip it back to the familiar orientation.

*  Cy3D-b.jpg :  The graph with the Y axis flipped back (rotated 180 degrees around the X axis).

*  Cy3D-c.jpg :  Zoomed out to see the whole graph.

*  Cy3D-d.jpg :  Though the nodes are spheres, the graph is still planar.

*  Cy3D-e.jpg :  After applying a "3D Force directed (BioLayout)", the nodes seem to be arranged in concentric spherical "shells", and the spacing between the shells is much larger than the diameter of the nodes.  Most of the nodes are invisibly small.  The dark blotch in the center is a dense cluster of nodes on an "inner shell."

*  Cy3D-f.jpg :  Zoomed in on the inner shell.

*  Cy3D-g.jpg :  Zoomed in more.  The edges are cylinders.  In immersive stereoscopic viewing, we've found simple lines to be more comfortable as well as more efficient, as long as the edge weight (cylinder diameter) isn't significant.  In 2D projections such as this, shaded cylinders are still necessary to differentiate front and back.

*  Finally, when I exported the 3D layout to a new XGMML file to import into our VR software, I found that theپ <node>...</node> elements contained no <graphics>...</graphics> children, so no information about node position, size, or shape-type is communicated.  I hope that there's an easy fix for that.


--
You received this message because you are subscribed to the Google Groups "cytoscape-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-disc...@googlegroups.com.
To post to this group, send email to cytoscap...@googlegroups.com.
Visit this group at http://groups.google.com/group/cytoscape-discuss.
For more options, visit https://groups.google.com/d/optout.

bernhard

unread,
May 20, 2015, 11:15:53 AM5/20/15
to cytoscap...@googlegroups.com
Hi Mike, great work!
I tested a bit with Ubuntu Linux and the text on the left up buttons in the network are not visible. The navigation is not yet really intuitive, would be nice to have it like in the 2D view (mouse middle button to move the network etc...). Which of the visual properties are you going to implement? I saw color, size are already there, but will you also add the label position and size etc...?
Would it be also possible to export the Cy3DNetworkViewFactory and other classes necessary to import and instantiate it other plugins?

Thank you a lot
Reply all
Reply to author
Forward
0 new messages