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