Refactored Menu
The following is a tentative plan for the new menu bar.
File
[http://chianti.ucsd.edu/kono/images/menu1.png] [http://chianti.ucsd.edu/kono/images/menu2.png] [http://chianti.ucsd.edu/kono/images/menu3.png]
Since the basic file format for 2.3 and later is Session (.cys), we the save and load functions are now called import/export.
New
- Network
Empty Network - Cytoscape Editor will be called from here.
COMMENT from AllanK: Kei, what if somebody wants to edit an existing network? That wouldn't be possible under this scheme.
COMMENT from KeiichiroOno: Editor will be called from New AND Edit Menu. I think this is more intuitive UI.
COMMENT from Trey: Why not launch the editor at Cytoscape startup using the DefaultCytoscapeEditor?
- From selected nodes, all edges (Ctrl-N)
- From selected nodes, selected edges (Shift+Ctrl-N)
- Clone current network - Copy current network and create a new one.
COMMENT from AllanK: Would these come up with the editor enabled or disabled? If disabled, then do we need an item on the
- Network
File menu for enabling editing?
COMMENT from KeiichiroOno: Only Empty Network menu item may enable the editor.
- Session - Clean current workspace (networks and attributes) and start a new session.
Open - Open the session file. Current session will be lost (dialog box will appear).
Save (Ctrl-S) - Save current session into a CYS file. Overwrite existing session file.
COMMENT from GaryBader: Microsoft Word knows the difference between a file that was saved since the application has been open vs. a file that was saved before in another session. Following this, for a new session file that the user created while Cytoscape was open, the existing session file could be automatically replaced, but for a session file that was created by a previous run of Cytoscape (user exited from Cytoscape and started up again), a dialog box could verify that the user wanted to overwrite the file the first time they clicked 'Save' (and it would automatically overwrite the next time). This is a finesse feature.
COMMENT from KeiichiroOno: That's a good point. I'll change the code to ask user whether he/she want to overwrite the opened file or not.
Save As... (Ctrl-Shift+S) - Save the session with new name. File chooser will pop-up.
- (Separator)
Import
Network (Ctrl-L) - Load network files: SIF, GML, or XGMML (SBML & KEGG importer may be added).
COMMENT from GaryBader: Also BioPAX, PSI-MI etc. We should document that plugins creating import/export functionality should insert themselves into the menu system properly. We may want to either have demo code or an API call in the menu system to make this easier. E.g. import/export plugins could register themselves as such and it would appear in the drop down list of file types supported. This may be worth it if we have lots of importers and exporters over time. Ideally, over time, we could migrate all import/export code to be plugins.
- Node Attributes
COMMENT from GaryBader: All menus that cause a dialog box to pop up should have an ellipsis ("...") after the menu name.
COMMENT from GaryBader: We may have an import/export format in the future that combines node and edge attributes. This has already been implemented by Rowan as a plugin that has not yet moved into the core, but we may want to do that later. Such a file type doesn't fit into the separated node/edge attribute menu. Maybe we want to just have this menu be named "Network Attributes" and have the import code be smart about recognizing node and edge files without the user having to choose.
- Edge Attributes
- Attribute Matrix (Ctrl-E)
COMMENT from GaryBader: Other types of molecular profiling data is being generated now, not just expression data. We could generalize this menu to read any matrix file, call it "Matrix File". Then it would be useful for importing mRNA, protein expression, small molecule profiles, or any other matrix file in general.
- Ontology / Annotation
COMMENT from GaryBader: We could generalize this to be "Annotation", since there are more types of annotation than just Gene Ontology. The annotation reader would support OBO format (which many different projects use, not just GO). Other annotation formats may appear in the future that would then be easier for us to add (just like network file formats above).
Export
- Network and Attributes as XGMML
- Network...
- as GML
- as SIF
COMMENT from GaryBader: Probably want to generalize the above 2 to be just "Network..." and then let the user choose the format in a drop down menu in the file dialog box.
COMMENT from KeiichiroOno: OK, now they are under Network... submenu.
- Node Attributes
- Edge Attributes
COMMENT from GaryBader: If we generalize the import menu to "Network attributes", then the export menu could be similarly generalized.
- Network as graphics... - PDF,GIF, etc.
- Use user XSLT... - export network using user XSL template.
COMMENT from GaryBader: I'm not sure if XST is a widely recognized acronym. Maybe a better name is "As styled XML". Would this feature be implemented as a plugin?
COMMENT from MikeSmoot: This is meant to be XSLT, which should be recognized by anyone capable writing and using their own XSL transform. I would suggest a menu title of "Using user specified XSL Transform". I'm guessing this feature won't be used much, and if it does get used much, I would hope that we'd turn those particular transforms into proper menu items.
- (Separator)
Print (Ctrl-P) -- Print out current network as a graphic.
Quit (Ctrl-Q) -- Quit from Cytoscape. Confirmation dialog will appear.
Edit
[http://chianti.ucsd.edu/kono/images/menu4.png]
Undo
Redo
- (Separator)
Edit current network
- Cytoscape Editor menu items will be inserted here (Is this possible, Allan?)
COMMENT from AllanK: I think this should work. The reason that I originally had the SetEditor command on the File menu was that, in the current Cytoscape, the Edit menu commands were all disabled if there was no network loaded, so no way to set up an editor if there was not a network already loaded.
COMMENT from GaryBader: The current code that disables menus is not fine-grained enough. It only disables the entire menu, I think. To support better menu disabling, we would probably have to reimplement that code as part of the menu refactoring work, though I don't think this is a big task.
- Cytoscape Editor menu items will be inserted here (Is this possible, Allan?)
Delete Selected Nodes/Edges
- (Separator)
Create View
Destroy View
COMMENT from GaryBader: The above two items should be more specific. Also, why have multiple words for create/delete (e.g. delete/destroy). Let's just say 'delete' everywhere. I.e. "Create Network View" and "Delete Network View"
Destroy Network
COMMENT from GaryBader: Let's call it "Delete Network"
- (Separator)
Squiggle
- Enable/Disable (F12)
- Clear
- (Separator)
Preferences...
View
[http://chianti.ucsd.edu/kono/images/menu5.png]
CytoPanels menu item is implemented as a submenu of this. Maybe renamed something like Desktop, since menu items under this section manage layout/states of the panels on the Cytoscape desktop.
Network Panel - This is on Cytopanel 1.
Attribute Browser (F5)
Advanced Panel - This is on Cytopanel 3. Default is off.
Show/Hide Overview - ON/OFF the overview window on Cytopanel 1
- (Separator)
- Cytopanel 1 (Ctrl-1)
- Cytopanel 2 (Ctrl-2)
- Cytopanel 3 (Ctrl-3)
COMMENT from GaryBader: In Firefox, this menu is called "View" because you choose which window components you want to view (and there are some other options in there). What about changing the name of this menu to "View" and also moving the visual mapper options here. The view menu below could be renamed back to layout, since all other options in there except vizmapper are layout related e.g. rotate/scale, etc. I really like the idea of renaming the CytoPanels menu option to Desktop (though keeping the submenus as CytoPanel 1, 2, 3).
COMMENT from MikeSmoot: I don't have strong opinions about names (Desktop or View would be fine), but I do think vizmapper and layouts should stay in the same menu. This is because both deal with the visualization of the actual networks as opposed to the window organization of the application. Maybe "View" for this menu and back to "Visualization" for layouts/vizmapper.
COMMENT from GaryBader: Ok, keeping vizmapper and layout options together sounds good. How about naming this menu "Desktop" and naming the layout/vizmapper menu "View". View is a simpler word than visualization. Then the CytoPanels option can stay as is. The GUI concepts would then be defined as: Desktop = options that change the main GUI components e.g. could add status bar and toolbar toggles here later; and View = options that can change the network view (without changing the network model).
COMMENT from MikeSmoot: Yup, that sounds great.
YET ANOTHER COMMENT from MikeSmoot: Another perspective is that the vizmapper stuff just pops up a window which will eventually become a cytopanel. Since the menu action isn't actually doing any visualization, just window management, perhaps it makes more sense to put it here. Change the action name from "Set Vizmapper" to "Show/Hide Vizmapper" like the other options in the menu. We could then call this menu View and the layout menu Layouts.
COMMENT from GaryBader: I agree that we would want to put the vizmapper into a panel at some point. At that point, a disable/enable button would probably go right into the panel instead of being a menu item. One good reason to name the View menu Layout is that most options are related to layout, which are commonly used, while the 2 vizmapper options are probably rarely used (and could be better named).
Select
Basically filter is doing selection. So it should be under this menu item.
Mouse Drag Selects
Nodes
- (Submenu items are same as 2.2)
Edges
- (Submenu itess are same as 2.2)
Select all nodes and edges
Deselect all nodes and edges
- (Separator)
Use Filters (F7) - Filter plugin will be called from here.
Layout
Formerly called Layout and Visualization.
Rotate/Scale Network
Align/Distribute Nodes
yFiles Layouts
- (Submenu items are same as 2.2)
jgraph Layouts
- (Submenu items TBD)
native Layouts
- (Submenu will include our hierarchical and spring embedded layouts and possibly others)
Set Vizmapper
Lock/Unlock Viz Mapper
Plugins
List of loaded plugins will be displayed here. Same as 2.2.
COMMENT from GaryBader: We should note in the documentation that not all loaded plugins are shown here - many, like yFiles, are inserted into other menus. If we document things like this and also which menu items we expect plugins to add options to (e.g. import/export, layout) and which ones are not recommended, then it will be easier for plugin writers to make proper decisions about where to place their menu options and we will prevent messy menus in the future. This document could evolve to serve this task.
Help
Basically, this is same as 2.2.
Contents (F1)
Context Sensitive (Shift+F1)
- (Separator)
About