Size: 6481
Comment:
|
Size: 6528
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 60: | Line 60: |
Line 61: | Line 62: |
Line 68: | Line 70: |
getPlugin.php parameters: PluginName |
getPlugin.php parameters: PluginName |
Line 98: | Line 100: |
(1) pluginList.php (2) getPlugin.php (3) submitPlugin.php (4) loadingPlugin.php |
(1) pluginList.php (2) getPlugin.php (3) submitPlugin.php (4) loadingPlugin.php |
Line 103: | Line 105: |
(1) PluginManagerDialog.java (2) PluginListDialog.java (3) PluginLoadingDialog.java |
(1) PluginManagerDialog.java (2) PluginListDialog.java (3) PluginLoadingDialog.java |
Line 107: | Line 109: |
(4) GetAllPluginFromDB.java (5) GetPluginInfoFromDB.java (6) DownloadPluginFromDB.java |
(4) GetAllPluginFromDB.java (5) GetPluginInfoFromDB.java (6) DownloadPluginFromDB.java |
RFC Name : ... |
Editor(s): ... |
About this document
This is an official Request for Comment (RFC) for Add your text here.
For details on RFCs in general, check out the [http://www.answers.com/main/ntquery?method=4&dsid=2222&dekey=Request+for+Comments&gwp=8&curtab=2222_1&linktext=Request%20for%20Comments Wikipedia Entry: Request for Comments (RFCs)]
Status
How to Comment
To view/add comments, click on any of 'Comment' links below. By adding your ideas to the Wiki directly, we can more easily organize everyone's ideas, and keep clear records. Be sure to include today's date and your name for each comment. Here is an example to get things started: ["/Comment"].
Try to keep your comments as concrete and constructive as possible. For example, if you find a part of the RFC makes no sense, please say so, but don't stop there. Take the extra step and propose alternatives.
Proposal
Cytoscape plugins are mainly developed by third parties to add extra functionality to Cytoscape. Many plugin authors are willing to share the plugins they developed. Cytoscape maintains a long list of plugins at Cytoscape website at (http://cytoscape.org/plugins2.php) and the list is growing over time.
Right now, if a user wants to install a plugin, he/she can only do it manually. (1) Look at the Cytoscape website or the plugin website he/she knows. (2) Download the plugin, (3) Install the plugin into the Cytoscape. To manage the plugins (add/delete/update), user needs to keep track of each plugins manually and must know where the Cytoscape plugins are placed (in a designated directory).
The goal of this project is to provide a “Plugin manager” at Cytoscape to automate the the plugin installation process, so the users will have GUIs to manage their plugins (add/delete/update). The GUIs will integrate Cytoscape, plugin website, and installation process together and user even don’t need to know what the designated Cytoscape plugin directory is. We also note that “Firefox” and “Eclipse” already have such practice to add their add-ons.
This project should include three components: (1) plugin database (2) plugin web site (3) plugin manager
Use Cases
Load a plugin “BiNGO” into Cytoscape with Plugin_Manager.
1. Launch Cytoscape, click menu “Plugins”, click submenu “Import/update plugins”.
2. A dialog with title “Plugin manager” shows up. All the plugins installed are listed in the JTable. There are three buttons at the right side of JTable, “Get plugins”, “Uninstall” and “Find Updates”.
3. Click the button “Get plugins”. A new dialog with title “Plugin List” pops up, which list all the plugins available (Retrieved dynamically from “CyPluginDB”). In the dialog, there is a JTree, which list five categories of Cytoscape plugins (“Functional Enrichment plugins”, “Analysis plugins”, “Network and Attribute I/O Plugins”, “Network Inference Plugins”). Click the tree node “Functional Enrichment plugins” expands the node, which list all the plugins belong to this category.
4. Click “BiNGO”, a new dialog with title “Add BiNGO Plugin” show up, which gives detail description of the plugin. A plugin may have several versions for download. Each radio button represents plugin versions that are compatible with the current Cytoscape version. There are three buttons at the end of the page, “Install”, “Use once”, “Cancel”. – If multiple versions are compatible might the user expect a description for each one so they can tell which one they want? If not offering the most recent version by default may make more sense.
5. Selected the version of plugin, click “Install” button will initiate the installation process. (License agreement dialog and progress bar) If “Use once” is clicked, the plugin will be load into memory only, not persist in disk.
6. After Installation is completed, an info dialog will inform the user that the plugin is installed.
Data flow diagram
attachment:DataFlowDiagram.png
Note: The web site may be built with PHP and MySQL. Cytoscape will have different versions. Plugins will also have different versions. Different versions may not compatible each other. Therefore a dynamic web site with database as back-end is desirable to retrieve plugins, which are compatible with current Cyoscape version.
Plugin database
Host: chianti.ucsd.edu Database name: CyPluginDB
* Current Design:
attachment:CyPluginDB_Schema.png
Plugin webpages
Host: cytoscape.org
1. Main page, which lists all the plugins. Same as usual, but data source will be from CyPluginDB. If the DB is updated, this page will be updated automatically.
- pluginList.php
2. Pages for each plugin
getPlugin.php parameters: PluginName
Plugin data management
1. Plugin author submit plugin to Cytoscape pluginSubmit.php (Web form)
Title: Submit Plugin to Cytoscape (File_upload) Authors: xxx Plugin_Name: textField Plugin_version: textField Release Date: May 2, 2005 Institution: textField Jar File: textField Verified to work in Cytoscape version: 2.3, 2.4 (checkboxes) Plugin URL: XXXXXXX.com
Submit button, cancel button
2. Load plugin to CyPluginDB after validation pluginLoading.py (web form, password required to upload, DB admin only) (ToDo: ScreenShot)
Plugin Manager
Implementation Plan
- Plugin database
“CyPluginDB” (PluginList,Plugins,PluginAuthors)
- Web pages
- (1) pluginList.php (2) getPlugin.php (3) submitPlugin.php (4) loadingPlugin.php
- Java class
(1) PluginManagerDialog.java (2) PluginListDialog.java (3) PluginLoadingDialog.java (4) GetAllPluginFromDB.java (5) GetPluginInfoFromDB.java (6) DownloadPluginFromDB.java
Deferred Items
Open Issues
Backward Compatibility
Expected growth and plan for growth
References