Differences between revisions 2 and 13 (spanning 11 versions)
Revision 2 as of 2007-08-15 21:36:19
Size: 2664
Editor: KeiichiroOno
Comment:
Revision 13 as of 2007-09-24 23:47:26
Size: 6169
Editor: KeiichiroOno
Comment:
Deletions are marked like this. Additions are marked like this.
Line 8: Line 8:
|| '''RFC Name''' : BioWebServiceConnectivity || '''Editor(s)''': KeiichiroOno || '''Status''': Planning || || '''RFC Name''' : BioWebServiceConnectivity || '''Editor(s)''': KeiichiroOno || '''Status''': Open for Comment ||
Line 13: Line 13:
These days, there are several public biological database web wervices such as Biomart, NCBI, or KEGG. It is very useful for many users if Cytoscape have an access to those huge data resources through simple user interface. By using this function, users can access virtually all kinds of annotations for the nodes, including variety of ID's, sequences, descriptions, orthologs, pathway names which contains the nodes, etc. Also, this is a general solution for all typs of node ID mapping problems Cytoscape currently have. (Still under construction!)
These days, there are several public biological database web wervices such as Biomart, NCBI, or KEGG. It is very useful for many users if Cytoscape have an access to those huge data resources through simple user interface. By using this function, users can access virtually all kinds of annotations for the nodes, including variety of ID's, sequences, descriptions, orthologs, pathway names which contains the nodes, etc. Also, this is a general solution for all types of node ID mapping problems Cytoscape currently have.  In addition, users can access network database web services thirough the same mechanism. The goal of this project is the following:

 * Implement a mechanism to manage web service clients in the Cytoscape core.
 * Design an interface which wraps each web service client.
 * Design mechanism how web service clients communicate with the core (Event handling).
 * Implement an simple UI for importing annotations and networks from the web services.
Line 19: Line 25:
 * ''I need to add sequence data to each nodes in my network.''  * ''I need to check the orthologs for the genes in my network.''
 * ''I want to expand existing network with known interaction data in [http://www.ebi.ac.uk/intact/site/index.jsf IntAct]''
 * Mapping known pathways onto network data in Cytoscape.
 * Executing an analysis program running on remote server which is implemented as a web service.
Line 22: Line 31:
Each web service is a building block to make higher-level functions. This means plugin writers should be able to use registered web services as if they are local Java APIs. To achive this, we should be careful to separate UI from the core web service clients.
Line 24: Line 34:
This component consists of 3 parts:
 1. Core web service connectivity module
 1. Core mapping module - Mapping fetched annotations onto !CyAttributes.
 1. Support module for individual web services
This component consists of 5 parts:
 1. Web Service Client Manager in the core
    - Maintaining list of web service clients.
    - Each web service client implements an interface !WebServiceClient
 1. Attribute mapping module - Mapping fetched annotations onto !CyAttributes.
 1. Event Handlers - Implementing custom event and its listeners only for !WebServiceClients
 1. Web Service Clients - these are jar files which contains properties and classes created from WSDL. They will be loaded as normal cytoscape plugins.
Line 29: Line 42:

By keeping these as modular as possible, we can easily add new UI for other web services.
Line 35: Line 46:
 * Taxonomy of the services
Line 37: Line 49:
 * Pathway Commons / cPath integration to the new Network Import UI
Line 40: Line 53:
Line 41: Line 55:
  
 * [http://taverna.sourceforge.net/index.php?doc=services.html Biological Web Services] by myGrid/Taverna Project

==== Exmaple Web Services which will be implemented as a core plugins ====
 * Biomart
 * NCBI
 * IntAct
 * UniProt
 * KEGG
Line 44: Line 67:
##If you want to create a separate subpage for the Implementation Plan, then provide this link: ["/Implementation Plan"] === Web Service Client Manager ===
  attachment:wsc_design.png

Web Service Client Manager is a mechanism to manage list of clients loaded in Cytoscape. Usually, a Web Service Client (WSC) is created from a WSDL and packed as a jar file. The WSC jar file '''must''' contain classes implementing the following interfaces:

 * !CytoscapePlugin
 * !WebServiceClient

This means each of WSC is a Cytoscape plugin. Therefore, all WSC will be loaded through Plugin Manager which is already in the core. Once WSC is loaded through Plugin Manager, WSC registers itself to Web Service Client Manager. Plugin writers can access all web services by using the following method:

{{{
WebServiceClientManager.getClient(client_name);
}}}


=== Individual Client Design ===

====
==== Biomart ====
Biomart client mainly used as ID mapping.

==== UniProt ====
Recently, UniProt released UniProt Java Remoting API (UniProtJAPI). We will wrap this API with the WebServiceClient interface in Cytoscape.
 
==== IntAct ====
==== NCBI ====
  attachment:ncbi_network1.png

NCBI Entrez database has a unified web service called [http://www.ncbi.nlm.nih.gov/entrez/query/static/esoap_java_help.html NCBI E-Utilities]. The [http://www.ncbi.nlm.nih.gov/sites/entrez?db=gene Entrez Gene] database will be the main resource for Cytoscape. This DB can be accessed through the E-Utilities web service. Users can use both keywords and list of Entrez Gene ID as the search term. Actual network data will be extracted form ''Interaction'' section of the returned data. Since we can extract interactions of one gene at a time, we need use Java SE 5's new Concurrency Framework to run multiple threads for fetching data efficiently.
Line 52: Line 103:

SarahKillcoyne August 16, 2007

This RFC would seem to be very related to the [:DataIntegration: Data Integration] one. Might be useful to discuss this as part of a larger web services integration if we decide a larger, more general solution would be useful.

RFC Name : BioWebServiceConnectivity

Editor(s): KeiichiroOno

Status: Open for Comment

TableOfContents([2])

Proposal

(Still under construction!) These days, there are several public biological database web wervices such as Biomart, NCBI, or KEGG. It is very useful for many users if Cytoscape have an access to those huge data resources through simple user interface. By using this function, users can access virtually all kinds of annotations for the nodes, including variety of ID's, sequences, descriptions, orthologs, pathway names which contains the nodes, etc. Also, this is a general solution for all types of node ID mapping problems Cytoscape currently have. In addition, users can access network database web services thirough the same mechanism. The goal of this project is the following:

  • Implement a mechanism to manage web service clients in the Cytoscape core.
  • Design an interface which wraps each web service client.
  • Design mechanism how web service clients communicate with the core (Event handling).
  • Implement an simple UI for importing annotations and networks from the web services.

Biological Questions / Use Cases

  • User loaded network with EntrezGene ID as node identifier into Cytoscape. He/she needs to import annotation files with Gene Symbol as the key.

  • I need to check the orthologs for the genes in my network.

  • I want to expand existing network with known interaction data in [http://www.ebi.ac.uk/intact/site/index.jsf IntAct]

  • Mapping known pathways onto network data in Cytoscape.
  • Executing an analysis program running on remote server which is implemented as a web service.

General Notes

Each web service is a building block to make higher-level functions. This means plugin writers should be able to use registered web services as if they are local Java APIs. To achive this, we should be careful to separate UI from the core web service clients.

Requirements

This component consists of 5 parts:

  1. Web Service Client Manager in the core
    • - Maintaining list of web service clients.

      - Each web service client implements an interface WebServiceClient

  2. Attribute mapping module - Mapping fetched annotations onto CyAttributes.

  3. Event Handlers - Implementing custom event and its listeners only for WebServiceClients

  4. Web Service Clients - these are jar files which contains properties and classes created from WSDL. They will be loaded as normal cytoscape plugins.
  5. GUI for each web services

Deferred Items

Open Issues

  • Taxonomy of the services

Backward Compatibility

  • Pathway Commons / cPath integration to the new Network Import UI

Expected growth and plan for growth

References

Exmaple Web Services which will be implemented as a core plugins

Implementation Plan

Web Service Client Manager

  • attachment:wsc_design.png

Web Service Client Manager is a mechanism to manage list of clients loaded in Cytoscape. Usually, a Web Service Client (WSC) is created from a WSDL and packed as a jar file. The WSC jar file must contain classes implementing the following interfaces:

  • CytoscapePlugin

  • WebServiceClient

This means each of WSC is a Cytoscape plugin. Therefore, all WSC will be loaded through Plugin Manager which is already in the core. Once WSC is loaded through Plugin Manager, WSC registers itself to Web Service Client Manager. Plugin writers can access all web services by using the following method:

WebServiceClientManager.getClient(client_name);

Individual Client Design

====

Biomart

Biomart client mainly used as ID mapping.

UniProt

Recently, UniProt released UniProt Java Remoting API (UniProtJAPI). We will wrap this API with the WebServiceClient interface in Cytoscape.

IntAct

NCBI

  • attachment:ncbi_network1.png

NCBI Entrez database has a unified web service called [http://www.ncbi.nlm.nih.gov/entrez/query/static/esoap_java_help.html NCBI E-Utilities]. The [http://www.ncbi.nlm.nih.gov/sites/entrez?db=gene Entrez Gene] database will be the main resource for Cytoscape. This DB can be accessed through the E-Utilities web service. Users can use both keywords and list of Entrez Gene ID as the search term. Actual network data will be extracted form Interaction section of the returned data. Since we can extract interactions of one gene at a time, we need use Java SE 5's new Concurrency Framework to run multiple threads for fetching data efficiently.

Comments

How to Comment

Edit the page and add your comments under the provided header. 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. 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.

SarahKillcoyne August 16, 2007

This RFC would seem to be very related to the [:DataIntegration: Data Integration] one. Might be useful to discuss this as part of a larger web services integration if we decide a larger, more general solution would be useful.

BioWebServiceConnectivity (last edited 2009-02-12 01:03:45 by localhost)

Funding for Cytoscape is provided by a federal grant from the U.S. National Institute of General Medical Sciences (NIGMS) of the Na tional Institutes of Health (NIH) under award number GM070743-01. Corporate funding is provided through a contract from Unilever PLC.

MoinMoin Appliance - Powered by TurnKey Linux