Notes from a meeting about visual representation in Cytoscape held at the Computational Biology Center at Memorial Sloan-Kettering Cancer Center in New York City, July 5-8,2006

Participants: Allan Kuchinsky, Alex Pico, Ethan Cerami, Ben Gross, Gary Bader, Doron Betel, Emek Demir, Rich Bonneau, Chris Sander

Topics Discussed

  1. Graph layout
    1. Cellular localization
  2. Visual representation/annotation
    1. BioPAX visual lanuage
    2. GenMAPP annotation
    3. Metanodes
  3. BioPAX editor
    1. Hyperedge API
    2. Validator
    3. PAXServ
      1. API for BioPAX networks, analogous to DOM
  4. Cytoscape Editor code walkthrough
  5. Filtering/Searching
    1. Ethan’s QuickFind prototype

    2. Changes to vizmapper
  6. Roadmaps (who is doing what and when)



  1. Custom node rendering, e.g. include small circles for PTMs (Ben)
  2. Layered panes (Allan)
    1. Background pane
    2. Legend and notes pane
    3. “Bubble” subgraph placement/routing (including linkage between layers)
      1. dependency: ethan’s code for attribute assignment
      2. “Brick” subgraph placement/routing (Ethan)
  3. Text Paint images (Ben)
  4. Look at decorator pattern (Ben)
  5. Gene -> cell compartment map (Alex)

  6. Cytoscape editor interface to PAXServ (Ben)
  7. Complexes as metanodes (Ethan)

Additional requirements

Issues for visual representation of pathways:

  1. Hyperedge would be most useful for BioPAX interactions, but would require edges connected to other hyperedges (metanodes is not as useful, since hyperedges have attributes that could be used to represent the types of nodes involved e.g. substrate, product). Current hyperedge API does not support edges connected to other edges.
  2. Metanodes would be most useful for BioPAX part-whole relationships, like complexes and sub-pathways.
  3. Hyperedge and metanode viewing would require Cytoscape to be aware of different types of nodes and edges, since hyperedge and metanodes need to be treated specially by normal graph algorithms, like shortest path and layout. How can this be implemented to not interfere with existing algorithms?
    1. One very modular way is to implement viewing the metanode and hyperedge information only with the view. This keeps the CyNetwork model for normal binary graphs, the hyperedge API model for hyperedge information and the metanode API model for metanode information (with no duplication of information between these). Only code that needs to know about hyperedges or metanodes would access the respective APIs to get information – they would not get information about metanodes/hyperedges from CyNetwork. (refactoring GINY to not include metanode methods would be useful)

    2. This requires CyNetworkView to be desynchronized from the CyNetwork. Need to think about what would break if we did this.

    3. Also, would require metanode and hyperedge aware network and attribute browser e.g. to display correct number of edges in the network viewer – and likely other parts of Cytoscape if we want to create complete integration (this is likely a lot of work).
    4. May require custom edge rendering to implement various metanode and hyperedge views
  4. Metanode viewing optimization – how does child view x,y coordinate system relate to global network coordinate system? Use case: view metanode that is represented by a translucent box and allow user to interact with the child nodes while in the box (PATIKA and INOH pathway editors implement this). PATIKA group found important optimizations here, like not updating the x,y coordinates of the metanode children when the metanode was being moved by the user on the screen.
  5. GenMAPP requirement: annotation labels (as a new type of node) – anchor point on edges, text, brackets (easily implemented by metanodes – bracket is a visual style), objects.
    • The major design issue that was agreed upon was to keep annotations separate from the current "node&edge" network model

    • Annotations being free-floating text or graphical objects that are not directly associated with a biological entity, process, etc.

    • Nodes could include biologically meaningful text ("Apoptosis"), graphics representing a protein, or cellular compartments that would exist as, or be labels of, nodes to which edges/arrows could be connected.

    • The separation could be accomplished in three ways:
      1. Use JLayeredPanes to separate the object types and create layers with particular properties/purposes and associated with different models (see next point below)
      2. Add another network layer in the data model "under" CyNetwork to distinguish non-node objects

      3. Add a new attribute for node type:
        1. Alter CyNetwork to ignore "annotation" node type

        2. Alter every plugin/algorithm to ignore "annotation" node type
    • Options b. and c. seem like a potential cans of worms (wrt the Editor, selection and layout algorithms), while option a. opens up a whole host of potential functionality (see next point below). So, we have formulated experiments with JLayeredPanes and GlassPanes to test feasibility.

  6. JLayeredPane on top of and below a network is useful for:
    1. Legend (requires pane above)
    2. Annotation objects e.g. notes pointing to a region of the network (pane above)
    3. Background images (requires pane below)
    4. May want to synchronize any objects (e.g. annotation notes) on the layered pane with the CyNetworkView e.g. to keep notes close to the nodes they point to. Probably not useful when there are lots of shapes on the pane because of issues with speed and overload of objects making the notes hard to read.

    5. This may require changing the implementation of the background in cytoscape to be the lowest background pane instead of in the network pane.

Issues for Graph layout:

Pathway_visualization_meeting_NYC_July_2006 (last edited 2009-02-12 01:03:42 by localhost)

Funding for Cytoscape is provided by a federal grant from the U.S. National Institute of General Medical Sciences (NIGMS) of the Na tional Institutes of Health (NIH) under award number GM070743-01. Corporate funding is provided through a contract from Unilever PLC.

MoinMoin Appliance - Powered by TurnKey Linux