Rowan Christmas| Institute for Systems Biology
Cytoscape| Project Page| CVS| Download
Home| APIDownload
Site navigation
  ยป Home > Screenshots > White Paper > FAQ
Technology Used
  > Piccolo > CERN Colt project
> Instiute for Systems Biology > Cytoscape > Aitchison Lab Logo

Project Rationale

There currently a plethora of Java Graphing Libraries. Many of these are open source, and there are several commercial libraries. A mostly complete compendium of open source libraries that are hosted on SourceForge can be found in the NetworkViz Project. The leading commerical libraries are yFiles and Tom Sawyer Software. However, all of these libraries have drawbacks and limitations that GINY seeks to fill.

GINY implements a very innovative system for sub-graphing and allows for stunning visuals. GINY is open source, provides a number of layout algorithms, and is designed to be a very intuitive API. Other packages do not meet all of our needs. yFiles and Tom Sawyer have the drawback of being somewhat expensive, and that price forms a barrier for inviting a loose collection of programmers to work on an application. Also, by not being open source, it is impossible to modify their code for your own uses. JGraph is open-source, and seems to get a lot press by the open-source community.  We have looked extensively at JGraph and have determined that is not suitable for our needs.  JGraph is oriented more towards design layout, like Visio, and does not meet our needs in terms of graph operations.  There are several other very good libraries listed on the NetworkViz Project that provide a more intuitive API for graph algorithms than JGraph. However, since GINY specifies only a set of Interfaces, any other package could concievably be adapted to implement the GINY interfaces.

In order to meet our needs, and get around the limitations imposed by other packages, GINY was produced!  It is being incorporated into Cytoscape, and is replacing yFiles in that project.  If you have a project that is looking for a fully-featured open-source (LGPL, but could be re-liscensed ) graphing library, consider GINY.


The public API of GINY defines only interfaces.  This is intentional so that a new implementation can be used seamlessly.  One of the main focuses of this project is to make a "headless" mode available for graphing projects, and be able to move effortlessly to a visual mode.

The back-end of the package is currently using libraries from the CERN Colt project.  Colt provides a high-quality, fast, set of data structures that seem to be missing from the regular Java libraries.

The visual side of GINY is implemented making extensive use of Piccolo.  Piccolo is made by the Univerisity of Maryland under the supervision of Ben Bederson and seems to programmed mainy by Jesses Grosjean.  Piccolo provides a very efficient ZUI.  Piccolo has enabled us to create some very cool and useful nodes, especially for visualization of multi-dimensional information.

A number of our layouts are derived from implementations from the JUNG project. These layouts are annotated as such in the source code, and the JUNG license must be retained if making further derivitave of this code. The JUNG library offers a number of interesting ideas, and we hope to colloborate with them further in the future.

^ top

A Sample Graph

Here is a Sample Graph, for lots more, go to the screenshots page.

^ top


GINY has been developed primarily at the Instiute for Systems Biology.  The primary developer is Rowan Christmas.  Other ISBers involved have been Paul Edlefsen, Iliana Avila-Campillo and Larissa Kamenkovich.  John Aitchison and Benno Schwikowski have funded this project. 
Some excellent work has also been done by Mike Smoot at the University of Virginia.  In the true-open source spirit, Mike made his way to the project through Sourceforge, and has contributed invaluble code, especially involving the Edges. Other outside contributors have inculded Matthew Wyatt, and (your name here!!).