<-- home

A plugin for storing and visualizing graph annotations

The past year my research has been funded from NIH’s Big Data to Knowledge and I was part of Pittsburgh’s Center for Causal Discovery. Essentially, my role was the database guy and I contributed to large scale graph management (in Spark), and storage of graph annotations. One thing that I learned is that there exists a software named Cytoscape used for graph visualization and is very popular among scientists involved in graph model’s research.

A common use-case for our end users is that after they come up with a causal model (graph), they visualize it using Cytoscape. Those causal models would feature annotations, which are generated by either an algorithm or a human. More often than not, the annotations would be linked to specific groups of network components and not the whole graph. Also, causal-modeling practitioners would deal with huge graphs, with hundreds of annotations and they would have to search them based on a numerical value. Despite the fact that Cytoscape allowed for placing text annotations on a graph, it would not allow for explicit linkage of annotations to network components. On top of that, Cytoscape offers neither searching nor ranking on annotations.

Mark and I developed the CCD Annotations Plugin, which offers the aforementioned functionality. Causal Modeling practitioners are able to load their annotated graphs and have full support of searching and ranking on them. In addition, they are able to add annotations, which are persisted through our storage management module. In addition, the annotations can be re-layout-ed automatically and the users don’t have to struggle with dangling annotations on their canvas. The most aspect of our plugin is that user-defined annotations can become persistent, and shared among scientists, without requiring a specialized Cytoscape version (i.e., violating OSGi standards). Finally, instead of coming up with yet another storage format, we enhanced the existing cyjs format (JSON format), so that even if a user is not using our plugin and attempts to load an annotated graph, they can still visualize it using vanilla Cytoscape.

Be sure to check it out…