Differences between revisions 13 and 45 (spanning 32 versions)
Revision 13 as of 2006-02-28 02:19:18
Size: 1438
Editor: pix39
Comment:
Revision 45 as of 2006-03-02 20:41:12
Size: 1594
Editor: pix39
Comment:
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
Example 1. Algorithm calculated groups: {{{
//
Example 1. Algorithm calculated groups:
Line 7: Line 8:
{{{CyNetwork [] groups = someAlgorithm.calculateGroups(someArgs); CyNetwork [] groups = someAlgorithm.calculateGroups(someArgs);
Line 14: Line 15:
   if(groups[i].nodeCount() > SOME_LIMIT){
    collapsingStrategy.group(myNetwork,groups[i]); // this collapses the groups
   }else{
    stackingStrategy.group(myNetwork,groups[i]); // this aligns the nodes in a stack
   }

   // 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]);
Line 24: Line 27:
/CommentInterfaces
Line 26: Line 31:
 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 here is grouping.
 2. The {{{GroupingManager}}} is an interface to the data structure that stores groups for each network. We have not decided as a group 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 
 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

Please review the Java-Docs at http://db.systemsbiology.net/cytoscape/grouping/doc/ 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)

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