Cytoscape

After review of available Graphing & Graph Visualizations tools, an excellent choice for large-scale ontology visualization is is Cytoscape. This tool has been embraced by the bioinformatics community and came highly recommended by Francois Belleau of Bio2RDF.org.

Description
Cytoscape is a bioinformatics software platform for visualizing molecular interaction networks and integrating these interactions with gene expression profiles and other state data. Additional features are available as plugins. Plugins are available for network and molecular profiling analyses, new layouts, additional file format support and connection with databases. Plugins may be developed using the Cytoscape open Java software architecture by anyone and plugin community development is encouraged.

However, its general design also lends itself well to general network and graph manipulation.

Cytoscape is based on GINY and Piccolo.

Cytoscape supports the following features:


 * Load and save previously-constructed interaction networks in GML format (Graph Markup Language)
 * Load and save networks and node/edge attributes in an XML document format called XGMML (eXtensible Graph Markup and Modeling Language)
 * Load and save arbitrary attributes on nodes and edges. For example, input a set of custom annotation terms or confidence values
 * Load and save state of the Cytoscape session in a Cytoscape Session (.cys) file. Cytoscape Session file includes networks, attributes (for node/edge/network), Desktop states (selected/hidden nodes and edges, window sizes), Properties, and Visual Styles
 * Customize network data display using powerful visual styles.
 * Map node color, label, border thickness, or border color, etc. according to user-configurable colors and visualization schemes
 * Layout networks in two dimensions. A variety of layout algorithms are available, including cyclic and spring-embedded layouts
 * Zoom in/out and pan for browsing the network
 * Use the network manager to easily organize multiple networks. And this structure can be saved in a session file
 * Use the bird's eye view to easily navigate large networks
 * Easily navigate large networks (100,000+ nodes and edges) by efficient rendering engine
 * Multiple plugins are available for areas such as subset selections, analysis, path analysis, etc.

Other Cytoscape Resources

 * Excellent PDF manual
 * Online tutorials
 * Google discussion group is at http://groups.google.com/group/cytoscape-discuss/topics

Cerebral

 * We may want the Cerebral plugin for separating out UMBEL layers: http://www.pathogenomics.ca/cerebral/manual.html

Use Notes

 * Try Cytoscape with the yFiles layout; quicker to perform, and interesting results


 * Try the Organic yFile layout as one of the first


 * Try the search feature


 * Check the manuel for examples of layouts


 * Can not pan the view with my mouse (middle button doesn't seem to work)


 * Moving nodes can be done in realtime without issues


 * The "edge attribute browser" is really nice to find what node links to what other node by clicking on a link (so you don't have to pan and check, etc)


 * It should be possible to produce the same graph from the entire OpenCyc and then to colorize the two graphs with distinct colors, then we would be able to check what is the interlinkness of the two graphs


 * Export to PDF often works best as an output display (though SVG is also supported)


 * Use the CSV file to make quick modifications, and then check it with the Organic layout


 * A convenient way to check the propagation of a network is to select a node, then click on ctrl+6 again and again (ctrl+6 selects neighborhood nodes of a selected node, so it "shows" you the network created by a node and its relationships)


 * If you want to analyze a subgraph, search for a node, then press a couple of times on ctrl+6, then create another graph from that selected node (file -> new -> network -> from selected node)


 * There is a bug that keeps the import screen up and apparently working, when in fact the load is quite quick (it was necessary to kill the system a few times and finally bring up a task monitor to see the behavior)


 * Analyzing the network with NetworkAnalyzer (as undirected) takes about 30 min


 * It is necessary to save frequently with Cytoscape, and to log off and back on because of memory leaks


 * The UI seems to have a slow response, which shows when double clicking, and needs to be slowed from normal to get the app to behave properly

Plugins
There is a broad suite of plugins available for Cytoscape, and directions to developers for developing new ones; this seems to be the master page, including third-party plugins. The candidates useful to Zitgist and our graphing needs appear to be:


 * AgilentLiteratureSearch - creates a CyNetwork based on searching the scientific literature. Download from here


 * BubbleRouter - this plugin allows users to layout a network incrementally and in a semi-automated way. Bubble Router arranges specific nodes in user-drawn regions based on a selected attribute value. Bubble Router works with any node attribute file. Download from here


 * Cytoscape Plugin (Oracle) - enables a read/write interface between the Oracle database and the cytoscape program. In addition, it also enables some network analysis functions from cytoscape. The README.txt file within the zipfile has instructions for installing and using this plugin. Download from here


 * DOT - interfaces with the GraphViz package for graph layout. The plugin now supports both simple and rank-cluster layouts. This software uses the dot layout routine from the graphviz opensource software developed at AT&T labs.  Download from here


 * EnhancedSearch - performs search on multiple attribute fields. Download from here


 * HyperEdgeEditor - add, remove, and modify HyperEdges in a Cytoscape Network. Download from here


 * MCODE - MCODE finds clusters (highly interconnected regions) in a network. Clusters mean different things in different types of networks. For instance, clusters in a protein-protein interaction network are often protein complexes and parts of pathways, while clusters in a protein similarity network represent protein families. Download from here


 * MONET - is a genetic interaction network inference algorithm based on Bayesian networks, which enables reliable network inference with large-scale data(ex. microarray) and genome-scale network inference from expression data. Network inference can be finished in reasonable time with parallel processing technique with supercomputing center resources. [Applicable to generic networks ???]  Download from here


 * NamedSelection - this plugin provides the ability to "remember" a group of selected nodes. Download from here


 * NetworkAnalyzer - computes network topology parameters such as diameter, average number of neighbors, and number of connected pairs of nodes. It also displays diagrams for the distributions of node degrees, average clustering coefficients, topological coefficients, and shortest path lengths.  Download: http://med.bioinf.mpi-inf.mpg.de/netanalyzer/index.html


 * SelConNet - is used to select the connected part of a network. Actually, running this plugin is like calling Select->Nodes->First neighbors of selected nodes many times until all the connected part of the network containing the selected nodes is selected. May not work with newest versions.   Download from here
 * ShortestPath - is a plugin for Cytoscape 2.1 to show the shortest path between 2 selected nodes in the current network. It supports both directed and undirected networks and it gives the user the possibility to choose which node (of the selected ones) should be used as source and target (useful for directed networks). The plugin API makes possible to use its functionality from another plugin. Download from here


 * Subgraph - is a flexible subgraph creation, node identification, cycle finder, and path finder in directed and undirected graphs. It also has a function to select the p-neighborhood of a selected node or group of nodes which can be selected by pathway name, node type, or by a list in a file. This generates a set of plug-ins called: path and cycle finding, p-neighborhoods and subgraph selection.  Download from here

Other Interesting Resources

 * CPath (http://www.pubmedcentral.nih.gov/articlerender.fcgi?artid=1660554) enables querying of biological databases and then storing them in Cytoscape format; could be a model for other Web query options