Google_Summer_of_Code_2009/Xuemin

Overview

Idea 5: Superpathways in Cytoscape

Abstract: Biologists want to study interactions across multiple pathways. We propose to address some existing issues by implementing a Cytoscape plugin with following features:

-Use GpmlPlugin to query and load data from Wiki Pathways

-Provide two methods for users to select a group of pathways to merge

-Present a novel layout to show pathways and the number of shared nodes among them

-Create interactions to help biologists make connections between the merged and origin pathways

Project Member

Mentor: Kelder Thomas

Co-mentors: David States, Martijn Van Iersel, and Alexander Pico

Student: Xuemin (Helen) Liu

Weekly reports (Every Monday)

  • 1st report: 5/16/2009 ~ 5/25/2009

1) Read related documentation, e.g. Tutorial on writing Cytoscape plugins, Cytoscape 2.6 API, API docs for the Path Visio /WikiPathways client code

2) Check out the source code including Cytoscape 2.6.2, pathvisio, GPML plugin, Advanced Network Merge (ANM) plugin, and compile them in Eclipse.

3) Read and learn existing code including gpml plugin and ANM plugin code.

4) According to the detailed hints and feedback from the reviewers, I redefined a set of critical features, and corresponding timeline for each feature. Please refer to the updates on my Wiki page  http://socrates2.cgl.ucsf.edu/GenMAPP/wiki/Google_Summer_of_Code_2009/Xuemin

5) Begin to write my code for the first phase I – Creating a dialog allowing searching and selecting multiple pathways from Wiki Pathways. Currently, I’ve already implemented the code for a simple version dialog, and the code allowing the user to search one pathway from Wiki Pathways. The code includes SuperpathwaysGui.java, SuperpathwaysClient.java, SuperpathwaysPlugin.java, ResultProperty.java, and ResultRow.java.

6) Commit what I have for the code, the build.xml, and the plugin.props file to svn.bigcat.unimaas.nl/pathvisio/trunk/tools/superpathways

  • 2nd report: 05/26/2009 ~ 06/01/2009

1) Fixed the bug of "teleporting table effect".

2) Designed the UI and implemented the code of the first part of feature one: creating a dialog allowing searching and selecting multiple pathways from Wiki Pathways. The attached jpg file is the ui for Superpathways plugin

3) commited the current code to svn.bigcat.unimaas.nl/pathvisio/trunk/tools/superpathways

  • 3rd report: 06/02/2009 ~ 06/08/2009

1) fixed the problems that Thomas has found in the code that I committed last Monday

2) Designed and implemented the code for the feature of phase I - allowing the user to select a pathway, and than to set a criterion - the range of number of shared nodes, then it can return a list of candidate pathways each sharing nodes with the selected one within that range in the “Search Help” panel

3)Committed the latest version of code to svn.bigcat.unimaas.nl/pathvisio/trunk/tools/superpathways

  • 4th report: 06/09/2009 ~ 06/15/2009

1) Currently, I’ve been modifying the code according to Thomas’s feedback of last week’s report. However, I haven’t finished the modification yet, and I’ll let you know when I’m done.

2) Designed and implemented the code for the Phase II – creating a view which can show the number of sharing nodes between every two selected pathways. An example of created common node view is attached.

  • 5th report: 06/16/2009 ~ 06/22/2009

1) Modified the code to improve the UI according to Thomas’s feedback.

2) Finished implementing the code of the Phase II – creating a view which can show the number of sharing nodes between every two selected pathways.

3) Tested the code with simple examples, and find some problems. I’ll report it in the problem session later.

4) committed the code to subversion

  • 6th report: 06/23/2009 ~ 06/29/2009

1) studied the bridgedb API, re-implemented the overlap calculations which includes identifier mapping

2) implemented part of the code for pathway merging, and tested it with a simple case generated by myself

3) committed the code to the subversion

  • 7th report: 06/30/2009 ~ 07/06/2009

1) finished implementing the code for the visualization of pathway merging, and tested it with simple cases (e.g. merge p53 pathway and p53 signal pathway)

Currently, the shared nodes are displayed in white color in the merged network. Later, I’ll implement the code which allows using multi-colored pie graph as custom node so that the user can tell the original networks of the shared nodes.

2) implemented the code for creating multi-color pie for later use (help indicate the origin pathway of each common node)

3) learned how to generate custom node with graphics on the web page  http://www.cytoscape.org/cgi-bin/moin.cgi/Custom_Node_Graphics

4)committed the code to the subversion

  • 8th report: 07/07/2009 ~ 07/13/2009

1) modified the code to fix the bugs according to Thomas’ feedback of report 7

2) finished implementing the code which creates an attribute (named Source Pathway) that stores for each node to which source pathways it belongs, and the code which can create multi-color pies and use them to generate custom node graphs for common nodes, in order to help indicate the origin pathways of each common node

3) committed the code to the subversion

  • 9th report: 07/14/2009 ~ 07/20/2009

1) modified the code to improve the tool according to Thomas’ feedback of report 8

2) investigated the existing Cytoscape layouts for the current phase - Creating a custom layout that groups nodes from the same pathway

3) committed the code to the subversion

Project

Redefined Critical Features

Phase I: Creating a dialog allowing searching and selecting multiple pathways from Wiki Pathways (done)

Phase II: Showing the number of sharing nodes between selected pathways (done)

Phase III: Creating visualization of merged Superpathway, which indicates the origin pathway of each node (done)

Phase VI: Creating a custom layout that groups nodes from the same pathway (done)

Optional Feature

Phase V: Interaction

Timeline (tentative)

Phase I: 05/23/2009 ~ 06/05/2009 (done)

Phase II: 06/06/2009 ~ 06/19/2009 (done)

Phase III: 06/20/2009 ~ 07/08/2009 (done)

Midterm: 07/09/2009 ~ 07/13/2009 (done)

Phase IV: 07/14/2009 ~ 07/28/2009 (done)

Phase V: 07/29/2009 ~ 08/07/2009

Testing Phase: 08/08/2009 ~ 08/16/2009

Final: 08/17/2009 ~ 08/24/2009

Design Ideas

  • Phase I: Creating a dialog allowing searching and selecting multiple pathways from Wiki Pathways We can reuse the existing code from Gpml-Plugin, which can help load pathways from Wiki Pathways as a Cytoscape network. The expecting dialog is shown in figure 1.

http://www.cs.iastate.edu/~cwang/images/fig1.JPG

Fig. 1 Dialog allowing searching and selecting multiple pathways from Wiki Pathways

The user can search a pathway in Wiki Pathways by inputting pathway name (e.g. Apoptosis), gene or protein name (e.g. p53), or any page content (cancer). He can also choose the type of organism to decrease the range of searching. After click ‘search’ button, a list of candidate pathways appears, and the user can add one interesting pathway to the ‘Available pathways’ by clicking the button ‘add’. When all the pathways of interest are found, the user can select several or all of them in the ‘Available pathways’ block by clicking the thick arrow icon (->) on the right side of this block. As a result, the names of selected pathways would appear in the ‘Selected pathways’ block. Besides, we also provide the deselecting option. By click the thick arrow icon (<-) on the left side of ‘Selected pathways’ block, the user can deselect one or several chosen pathways.

Besides arbitrarily selecting a group of pathways to merge, I want to implement two features suggested by one of my biologist friends, who have reflected how to effectively find out pathways of interest.

1) Allowing the user to select a pathway, and than to set a criterion, e.g. the range of number of shared nodes, the tool can return a list of candidate pathways each sharing nodes with the selected one within that range. For example, if the user selects ‘ethylene signaling’, and sets a range from 3 to 5, it would return maybe 10 pathways and each shares between 3 and 5 nodes with ‘ethylene signaling’. Implementation algorithm:

For every node n in the selected pathway{

Query n in the database, and get a list L(n) that contains all the pathways having this node.

}

For every pathway p that appears in any L(n), counting how many times it appears in all the L(n), name the number C(p). List p which satisfies: C(p) within the required range.

2) Allowing the user to select a node, an edge, or a combination, either from the database or an already-selected pathway view, the tool can return a list of candidate pathways with each containing this combination. Implementation algorithm:

For every node n in the selection{

Query n in the database, and get a list L(n) that contain all the pathways having this node.

}

Calculating the intersection of all the L(n).

  • Phase II: Please refer to the attached file
  • Phase III: Please refer to the attached file
  • Phase IV: Please refer to the attached file
  • Phase V: Please refer to the attached file

Comments

  • Add your comments here...

Attachments