IlianaAvila 3-29-06. I have put some more thought on this whole grouping/metanode problem, and I have a new approach for 2.3. Please read my /NewApiApproachForMetaNodes. Thanks.

The following content was created before 3-29-06:

Please review the Java-Docs at http://db.systemsbiology.net/cytoscape/grouping/gdoc/ and comment.

To give you a better idea of how the interfaces work together, here is an example:

// Example 1. Algorithm calculated groups:

CyNetwork [] groups = someAlgorithm.calculateGroups(someArgs);
groupManager.addGroupsToNetwork(myNetwork);
GroupingStrategy collapsingStrategy = 
     GroupingStrategyFactory.createGroupingStrategy(GroupingStrategyFactory.COLLAPSING_STRATEGY);
GroupingStrategy stackingStrategy =
     GroupingStrategyFactory.createGroupingStrategy(GroupingStrategyFactory.STACKING_STRATEGY);
for(int i = 0; i < groups.length; i++){

   // Layout the nodes in a column
   stackingStrategy.group(myNetwork,groups[i]);

   if(groups[i].nodeCount() > SOME_LIMIT)
        // collapse groups that are too large
        collapsingStrategy.group(myNetwork,groups[i]); 
}

/CommentInterfaces

Notes:

  1. I decided to name the interfaces in this API using the group word instead of the MetaNode word. A MetaNode is a way of grouping nodes/edges in a graph. The more general concept is grouping.

/CommentSemantics (is Group a good word to use? what other wording would you suggest?)

  1. The GroupingManager is an interface to the data structure that stores groups for Cytoscape networks. We have not decided what data structure will do this. Alternatives that have been mentioned in the past are:

    • CyAttributes

    • CyNodes (as it is done currently)

    • A new data structure

/CommentDataStructure

API (last edited 2009-02-12 01:04:00 by localhost)

MoinMoin Appliance - Powered by TurnKey Linux