Day 1
MIM discussion
Allan began by presenting his mapping from MIM shapes to Cytoscape graphical elements, presented on Molecular_Interaction_Maps.
- Need to map MIM to both model and view
- How to represent 'non covalent binding'?
- Model: Best mapped to a group. A and B are connected and are part of the group.
- View: this is a use case for the group view
- Asymmetric binding
- Model: Regular edge between A and B, just needs a specific edge type
- View: New type of custom edge graphic (will take some care with Nerius' edge drawing code)
- Representation of multimolecular complexes
- Model: A group of groups
- View: part of the use case for group view
- Covalent modification of protein A (post-translational modification = PTM)
- Model: A is a node (representing unmodified protein); central node is a node (represented modified A) - every state is represented as a node. The PTM e.g. P is not a node, it is an annotation on the 'central' state node. The edge between A and its state is of type 'state of'. The set of all states is grouped to represent the set of all states of A.
- View: Constraint: the states always move together (would be like a template)
- Cleavage of of a covalent modification of protein A
- Model: Hyperedge containing node1: Phtase (hyperedge attribute: enzyme), node2: phosphorylated A, node3: unphosphorylated A
- View: Use case for hyperedge view
- How to represent 'non covalent binding'?
- General constraints for automatic layout and the editor
- Snap to grid
- All lines need to be routed with only right or acute angles
- Central node is only there if it is used (connected to something else in the diagram)
- Next step: a special interest group should get together to hash the above out further. Current interested people are: Allan, Mirit, David, Gary, Aditya, Scooter, Alex; also general interest from Nathan, Kristina (GenMAPP editing), Ethan, Ben (BioPAX editing)
- Implementation: Cytoscape core would ensure that the model and view requirements are met. Users: like GenMAPP, MIM, BioPAX editing would use the core functionality to create their own plugins that implemented their own pathway editing features.
Day 2
Cytoscape 2.4 update notes
- Backwards compatibility issue with visual calculators
- Follow graphobjattributes to cyattributes refactoring model - we may not be able to do a 100% implementation of the old API with the new API
- Option to follow Firefox branching model
=== 2.4 New Features = The new features for Cytoscape 2.4 are grouped according to development themes.
Publication quality image generation - UCSD
Automatic node label position adjustment (place labels outside of the node). UCSD - Beta is complete. The decision is whether to use all of the refactoring involved in release 2.4. If not, it would take ~3-4 days to port the new code back into the hideous, horrible, old way of doing things.
Automatic Visual Legend generator (code is already available and has a beta GUI). UCSD - Kei - Mike is now taking this on and has built a GUI. There was an idea by Allan to use the legend graphic as a visual decoration in layers for a future version
Use Arrow keys to move nodes. UCSD - complete
Layout algorithm that reflects classes (GO, others implied by selectable attributes). Pasteur - Tero
- Not sure what the status of this - it is a plugin (and not a core plugin), thus is not a requirement for release.
- Also, requirement for the reindex button may be able to be reduced through judicious addition of events to e.g. the editing code. The range slider can be slow because too many plugins are listening for node selection events.
- Idea from Trey: unit tests for performance - look for solutions from other projects. Mozilla has a set of 'tinderboxes' in their build farm that are used for performance metrics e.g. startup, rendering, etc. If they vary by more than a certain %, it fires a message to the development team, then a bug gets filed and anyone who checked in any code in the intervening time gets notified. They also do this for memory usage.
- We should do performance assessment ASAP and have it as part of the release process, though we don't have time to do this for 2.4
- We could have a performance benchmark suite - develop a written protocol to load test networks, zoom, pan, a few actions (like quick find). We need some quantitative answer if possible. Scooter created a profile class, which can be put into the core if we want, so everyone can call it. It is just a timer that you can choose. We can instrument the core a little bit.
- Ethan, Piet, Scooter and Mike - will get together offline to discuss how to implement some performance metrics
Organization/Retrieval/Search - MSKCC/Agilent
Quick Find. MSKCC - Ethan (Aug 17 Status: Beta version now checked into cytoscape/plugins/core)
- Search on attributes and performance optimizations for the range slider still need to be done, based on feedback at the retreat (Ethan)
- This is a core plugin
New Cytoscape icon set. MSKCC - Ethan (Aug 17 Status: Beta icons now checked into cytoscape)
- Only new thing is that Mike put up an icon page so new plugins can use all of the icons we are using so they all look similar. Ethan will add some documentation to this page.
Context sensitive menus for edges (application: Linkout). MSKCC/Agilent - Doron or Allan. Status: Context sensitive menus work for edges. The main issue is the use cases for Linkout on edges. Allan and Doron are corresponding about this.
- Now available. There is an issue with the attribute browser, since it also has a way to create linkout from the attribute browser using the GO linkout list by Kei. Action item: Mike will contact Doron to come up with a standard scheme. This is not an issue for 2.4 (it is just a prototype now)
Expressiveness and enrichment of the network model - UCSF/Agilent
Editor support for metanodes/hyperedges Agilent - Allan/Aditya
- We will have editor support for hyperedges as a plugin for 2.4. Metanodes API (now called groups) is not ready, so this won't be supported.
Design of GenMAPP annotations. UCSF - Alex
- Point for 2.4 is just to come up with a plan. We are on track for this.
Clarification of directed edges in GINY and use throughout Cytoscape complete - all edges are directed
Design of attribute based layout. Agilent/MSKCC/UCSF - Alex
- We are on track with the plan for this - progress shown at the hackathon.
Data Integration and Handling - UCSD
Consolidated network import capabilities (i.e. gather all import plugins into one place). UCSD
- This includes function to load network files over the network (through http/ftp/etc.).
- PSI-MI and BioPAX plugins need some work e.g. a week of work from Ethan to do it (need to talk to Chris S. for permission)
New BioDataServer to import everything in OBO and Gene Association files directly to CyAttributes. UCSD - Kei (9/13 Status: Basic classes are checked in. Need to add GUI for importing annotation (Gene Association))
- Trey reports that all users want online access to large datasets of interactions.
General attribute/network text table reader and GUI. See text table import framework RFC.Kei (10/11/2006 Status: Need to change GUI for more general purpose attribute/network import.)
- Most time consuming part is design of GUI - will be checked in next week or so. Based on Tuesday discussion, Kei will need to make some additions, such as support for Excel using POI library. This will all be here for 2.4.
- Piet and Melissa will pay special attention to usability testing for this.
Direct support for Excel (.xsl) files using POI Kei
BioGRID import. UCSD (Their format is PSI-MI v1 and 2.5, so we already have the plugins.)
- Related to point 1.
Immutable/Invisible CyAttributes (mainly for Metanode, Quick Find use cases). MSKCC/UCSD - Ethan (CyAttributes)/Kei (AttributeBrowser) (Aug 24 Status: Revised CyAttributes API now checked in.)
- Only needs a couple more days work - will be ready for 2.4
General Refactoring/Other - UCSD
Fix resize VizMapper windows. UCSD - almost complete by Peng
Fix resize filter windows. UCSD - complete by Peng
Fix node topology filter so that it doesn't depend on other filters. UCSD - complete by Peng
Develop scheme for plugins to save state, e.g. the filters plugin should save filter.props in the session file. UCSD - Kei
- Still need to evaluate this. Just need to make sure that a failure by a plugin to create a file doesn't break the .
Add unit tests galore (including Swing tests). UCSD - ongoing by undergrads at UCSD
Usability
Updates/Extensions to existing online tutorials to reflect current functionality Pasteur - Melissa
- Melissa will definitely update the tutorials - would like to move these to the wiki.
Assessment and conclusions from user-based Cytoscape usability studies Pasteur - Melissa/Everyone
Future Directions - Everyone
GINY refactoring. Everyone
- Consider removing metanode concepts.
- General cleanup/simplification.
- To be discussed at the retreat - now done.
VizMapper design document. Allan/Melissa/Everyone
Make this a session at the retreat, with appropriate preparation. Allan/Melissa/Everyone
For example, create a slider bar for the VizMapper that will slide through each mapping defined for a given attribute. Imagine that you have node color mappings defined for 10 different expression values. The slider dialog would present the list (drop down menu) of visual attributes (e.g. node color, node border, node size, etc.) and a slider. Once an attribute is selected, the slider would slide through each mapping, meaning that as the slider position changed, the mapping would change and the network view would update dynamically (Unilever request).
Plugins
BioPAX Editing / Support for Pathway Commons. MSKCC/Agilent (Allan for editor support) (Will be released as a plugin, separate from 2.4)
Make sure JActiveModules uses NodeAttributes rather than the Expression Matrix data structure. UCSD
- Now complete
TreeView integration plugin Pasteur - Melissa
- Integration still has a few bugs. 2.4 does not have to wait for this.
Module finding by experiment-specific scoring of groups of nodes within an underlying interaction network. Pasteur - Tero
- This is not going to be ready by 2.4
2.4 Refactoring
- Migration to Java Version 5
- Test core plugins in v5 environments
- Replace old library files
Optional: use v5 new features (such as generics, annotation, extended for loops, etc.) for writing more readable & stable codes
- now done
Move from CVS to Subversion complete
- Refactor the project files - almost all complete - only issue is help and manual curation.
- Move the unit tests into a separate directory tree so that the tests aren't included in the distribution jar. This also allows unit tests to share the same package as the classes they are testing without cluttering up the source directory.
- Clean up documentation
Consider purchasing RenderX or Prince to generate pdfs. complete
- Consolidate help and manual generation into one directory.
Remove all of the redundant manuals. Have only one manual and one pdf file in the docs directory. Use the versioning system for what it was intended! complete
Automate the release process using InstallAnywhere such that release creation is a one command process. complete - now using Install4j
Reduce the clutter! complete