Cytoscape 2.3 tasks brainstorm
Right now, these are just Gary's notes based on Cytostaff group discussions over the past year - for discussion purposes
Driving use cases:
- Multiple organism network comparison
- Viewing, analyzing molecular profiling information in the context of a network
- Integration with public pathway/network/interaction databases
- Undo Manager
Large
- New drawing library (Nerius)
- Refactor Cytoscape class
MetaNodes, Hyperedge API + visualization options
API to deal with synonyms, identifiers and URL links to external sources - a node ID and synonym unification API - this can be populated from files or via a cPath web service and all data can be stored as CyAttributes - this would replace the biodataserver thesaurus and be integrated into features that require synonym lookup e.g. expression data loading, GO annotation, etc.
- Cytoscape save session feature (also evaluate save as web start)
Medium
Reimplement ExpressionData object as DataMatrix on top of CyAttributes
- Refactor initialization to be more general (e.g. load any file from local disk or URL) - will help with webstarts. Review all command line/cytoscape.props arguments and clean up where required.
- Clean up attributes file - revisit Rowan's new attribute file as the default attribute file type to "import" from - keep old parsers as import from old attribute file types menu option.
- Remove all default node and edge attribute names (canonical name, aliases, etc.). Only default attribute should be ID - create a simple architecture for pluging in attribute semantics on an as needed basis. A basic semantics package could have a label attribute.
- Replace select nodes by name (ctrl-f) feature with a firefox web browser like find service feature - type in any regex and all matching node labels are selected. Filters can do this, but we need something blindingly simple for common uses.
- Move all user documentation to the wiki and use this to generate a PDF and Java help
refactor portions of CytoscapeEditor to provide a cleaner set of high-level APIs for developers of new editors
- enhance BIND and Reactome interfaces, e.g. to handle complexes and sets, and build interfaces to other databases (e.g. SGD)
Small
- Clean up Cytoscape classes, directory, library files, package names (all API classes should start with Cy, all application specific classes should start with Cytoscape)
- Addition of generic link out plugin to the core - separation of yeast-context into 3 plugins - one for graphical context menus, one for general links e.g. to Google, one for organism specific links (the generic link out plugin)
- Ability to rename networks in the network manager
- Update the license to "Cytoscape Collaboration". Write a script to update all license headers in all source files from a reference header - maybe include this preprocessor step in the ant compile task
- Implement better enable/disable menu feature (maybe define a basic state machine for Cytoscape application e.g. initialized, network loaded, etc.)