== 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: 1. Multiple organism network comparison 1. Viewing, analyzing molecular profiling information in the context of a network 1. Integration with public pathway/network/interaction databases 1. 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 *[[Network_specific_node_and_edge_attributes]] *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.)