IlianaAvila - Here are my new ideas.
- Of all the methods to display/visualize groups in Cytoscape we have discussed so far, only ONE modifies the model of the graph. Yes, you guessed right. The collapsing/expanding of meta-nodes is the one. All the other ones are conceptually separate from the grouping problem. For example, laying out a set of nodes in a stack is a problem that belongs to the subnetwork layout category. The collapsing/expanding meta-node strategy is a lot more complex than the other ones.
- Therefore, I have decided to create a specific API for the collapsing/expanding of meta-nodes in Cytoscape.
- It seems like we are moving towards supporting meta-nodes at a higher level than GINY. Therefore, the meta-node API needs to hide implementation details because it currently uses GINY methods for meta-nodes.
Luckily, most of the code is already implemented in my MetaNodeViewer plugin. All I have to do is create an API for it. And, I have! Here it is: http://db.systemsbiology.net/cytoscape/metanodes. Please /CommentNewMetaNodeApi.
The most important class to look at (this is what I think of as the API) is MetaNodeUtils
- For 2.3, I can release this plugin (after everyone is happy with the API).
- For following releases, we have to:
- Decide what data-structure and object hierarchy will support the storage of metanode/grouping information (since we have talked about not supporting it at the GINY level).
Once the data-structure and the object hierarchy is decided on and implemented, either transfering my MetaNodeViewer plugin to use this new objects, or, starting a plugin from scratch that respects the MetaNodeUtils API. It is therefore very important that we are happy with this API.
- How is this different from my original strategy? I originally was trying to create a MUCH more general API for ALL of the ways we thought of to group nodes. These included: laying out nodes in a certain way, "boxing" subnetworks within a certain semi-transparent area, etc. But as I said at the top of this page, only the collapsing/expanding of meta-nodes strategy seems to require an API because it changes the graph model at such a deep level.