## page was renamed from Cytoscape_3.0/Mini_Retreat2 === Place and time === Friday, Mar.4, 2011 - 9am-5pm in San Diego (Ideker Lab, La Jolla) Attendees: Mike Smoot, Gary Bader, Scooter Morris, Peng-Liang Wang, Keiichiro Ono, Johannes Ruscheinski, Jason Montojo, Christian Lopes (via Skype) === Focus === Get feedback on Cytoscape 3.0 alpha developer pre-release and continue API design. === Agenda === * [[Outdated_Cytoscape_3.0/Mini_Retreat2/Groups3|network group/nesting API and views]] * session files * [[Outdated_Cytoscape_3.0/Mini_Retreat2/VisualPropertyDiscussion|Visual styles]] * [[Outdated_Cytoscape_3.0/Mini_Retreat2/ProjectTrackingSystem|Project Tracking System Migration (Trac/JIRA/Redmine)]] * 3.0 task prioritization * 3.0 development vision === Possible agenda items === * Need a concept of how to link/join tables to networks and how these are synchronized (e.g. how selection state is synchronized - do we need a CyTable that can't be unlinked from a CyNetwork that stores e.g. selection state and then enable developers to link additional data tables as local tables for that network? This would set up a one to many relationship between networks and tables) - added Oct.2010 * Filter API - added Oct.2010 * CyTable views - added Oct.2010 * How nested networks, subnetworks, groups, metanodes, compound graphs all play well together - added Oct.2010 * [[Outdated_Cytoscape_3.0/Mini_Retreat2/Groups3|DiscussionDocument]] * We should create an acceptance test suite to help us know if cyto3 is ready e.g. select 100,000 edges using the filters API and see how fast it is. This could be used to test Cytoscape from release to release. * we should have a code test writing jamboree - write tests to capture specific behavior * could be opened up to the plugin writing community, like we did in the past with 'day of bug testing' with people distributed and asking questions on IRC * How would SBGN be supported in Cytoscape e.g. edges connecting to other edges? (should there be dummy nodes for the join points? We need to evaluate solutions other SBGN software have to this issue) * Cleaning up session files * Develop a unified settings/preferences system that supports global and session specific settings/properties. Also, make available as an API for plugin developers. * Implement a clear global vs. session separation for properties - they are not well distinguished in 2.x (e.g. proxy settings are stored in the session file) * This would allow the session IO system to access global properties, which it currently can't do, so is forced to take these from the current active set (which can be changed by the user). Thus, when you create a new session, you may save some global and edited properties that don't make sense to save in the session. * Unify bookmarks and linkout systems - currently we have both, but we should have one. Need to support editing of linkouts, setting in configuration files - may be easily made part of a general system for settings * Create a cytoscape 3.0 session format? * Better format for serializing visual styles - not just properties. E.g. XML * Re-evaluate XGMML? * Should we have separate XML serializable objects for CyTable vs. CyNetwork? Other objects that are stored in XGMML? Would be more flexible and modular. * XGMML is not maintained, was always a draft standard. * Cytoscape stores all visual and data properties as attributes and doesn't make use of the XGMML graphics system for storing node/edge graphics. * IDs are very messy with XGMML, because it requires IDs to be numbers, not strings, while Cytoscape uses strings, so Cytoscape is forced to store its unique IDs in the label field, which is not unique in XGMML. * Determine an approach for loading network files that include graphics information (e.g. GML, XGMML) such that the graphics information is preserved, or at least not very easily overridden. * In 2.8 we create a fake visual style that is inferred from the graphics information in the file. This is useful because in 2.8 the visual style gets applied every time a network gets redrawn. If we were to set the visual properties directory in a network view, they would be lost almost immediately because we redraw networks so often. However, creating the fake visual style along with fake attributes presents UI issues and makes the parser code more complicated. * In 3.0 we have a locking mechanism for visual properties in a network view, so we could set those values from the graphics information in the file and then lock them. However, as things currently stand, the only UI mechanism for unlocking these values are the bypass menus. This means we'd need a new UI element (button, menu item, whatever) that removes these locked values. * If we use the locking mechanism, then unlock the visual properties and change them with a visual style, we'll loose the original visual properties. Is this OK? * Replacement of Cytoscape wiki, mantis, etc. with trac or Jira or something else? * Custom graphics API * How should we serialize tables in session files? XML, JSON, something else? How should we store the relationships between tables (e.g. virtual columns)? * Need to revisit serialization/deserialization of VisualProperties * [[Outdated_Cytoscape_3.0/Mini_Retreat2/VisualPropertyDiscussion|Discussion document]] * Right now, implementation has knowledge of specific file formats like XGMML and GML * Prone to name collisions * Difficult to add VisualProperty support for other formats like BioPAX * Currently awkward to programmatically set VisualProperties (e.g. must construct from serialized string form) === Results === * CyNetwork model was updated to better support compound graphs - mostly addition of convenience methods * Referencing the visual lexicon * Minimal visual lexicon (required for rendering a network on the screen) * Rich visual lexicon (extend minimal visual lexicon) and will include most of what is in ding right now * Session files * Need to add functionality to declare the scope of properties: * not saved * global * user * Need to add ability to serialize tables not specifically associated with a network. * 3.0 session file will be largely the same as 2.8, but in the future we will evaluate updating the session file to a new format * 3.0 testing - need to find someone to run through the 2.8 test plan on 3.0 to find the flaws. * Milestone 2 released in early may to present at the retreat * should be suitable for people to attempt plugin porting. * Including documentation (http://cytoscape.wodaklab.org/wiki/Cytoscape_3). * E.g. lab members who aren’t core developers should try to port their plugins. === Saturday, March 5 === * Mike worked with Scooter to port structureViz plugin -