RFC Name : ...

Editor(s): ...

<<TableOfContents: execution failed [Argument "maxdepth" must be an integer value, not "[2]"] (see also the log)>>

About this document

This is an official Request for Comment (RFC) for a proposal to simplify the data structures used to represent meta nodes. It was originally written by Mike Smoot and Trey Ideker For details on RFCs in general, check out the Wikipedia Entry: Request for Comments (RFCs)


"Not yet completely written"

How to Comment

To view/add comments, click on any of 'Comment' links below. By adding your ideas to the Wiki directly, we can more easily organize everyone's ideas, and keep clear records. Be sure to include today's date and your name for each comment. Here is an example to get things started: /Comment.

Try to keep your comments as concrete and constructive as possible. For example, if you find a part of the RFC makes no sense, please say so, but don't stop there. Take the extra step and propose alternatives.


The core graph classes of cytoscape (giny.model) currently support the use of metanodes (described here MetaNodes_RFC) with approximately 50 separate methods in the GINY interface and its associated implementation. This proposal describes an approach to supporting metanodes that relies only on a basic graph data structure and the use of CyAttributes. The motivation for this approach is to simplify and clarify the underlying code and data model by deprecating the various meta methods.

Biological Questions / Use Cases

See MetaNodes_RFC for detailed descriptions of use cases.


Our proposal centers around a few basic concepts:


Collapse MetaNode

  1. Create a new CyNetwork (called G.1) consisting of proper nodes a,b,c and neighbor nodes x,y:

    • http://chianti.ucsd.edu/mes/basic_sub_network.png

  2. Create a new node m in graph G.

  3. Create new edges based on old neighbor edges. Add edge x-m and m-y to G, because of x-a and c-y.

  4. Delete nodes a,b,c and all adjacent edges from G resulting in:

    • http://chianti.ucsd.edu/mes/basic_metanode_network.png

  5. Set ChildGraph attribute of node m to point to G.1

  6. Set the ParentNode attribute of G.1 (assuming we support network attributes) to point to m.

  7. The result is two graphs, G and G.1. G consists of nodes x,m,y,z and G.1 consists of x,a,b,c,y.

Expand MetaNode

  1. Find ChildGraph of metanode m (called G.1).

  2. Add all nodes and edges contained in G.1 to G.

  3. Delete metanode m from G and all adjacent edges.


Backward Compatibility

We would need to continue to support many of the metanode methods in the core for some period of time, although they could all be deprecated and eventually removed.

Implementation Plan



SimplifiedMetaNodeDataStructureRFC (last edited 2009-02-12 01:03:01 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