Difference between revisions of "Integrating RNA web services in Jalview using JABAWS"

From Phyloinformatics
Jump to: navigation, search
(Created page with "=Abstract= Jalview is an alignment editor, originally developed for protein sequences, that is used in a variety of web pages and is also available as a stand-alone project. Jalv...")
 
Line 9: Line 9:
 
[[User:Jimprocter| Jim Procter]]
 
[[User:Jimprocter| Jim Procter]]
  
=Important Links=  
+
=Important Links=
 
[http://source.jalview.org/gitweb/| Jalview and JABAWS Source] <br>
 
[http://source.jalview.org/gitweb/| Jalview and JABAWS Source] <br>
 
Jan Engelhardt's 2011 GSoC Project: [[PhyloSoC: Extending Jalview support for handling RNA]]<br>
 
Jan Engelhardt's 2011 GSoC Project: [[PhyloSoC: Extending Jalview support for handling RNA]]<br>
Line 20: Line 20:
  
 
=Timeline=
 
=Timeline=
 +
==Community Bonding Period: Until May 20, 2012==
 +
===Goals===
 +
*Obtain and understand the source code for Jalview, JABAWS, Annotate3D, and RNAfold
 +
*Look at bug reports for Jalview related to RNA and attempt to fix some of these bugs
 +
*Read and understand the code, blogs, and projects of previous Google Summers of Code related to Jalview.
 +
*Read about web services and SOAP - Possible beginner’s guide: Java Web Services: Up and Running by Martin Kalin
 +
*Read literature realted to Jalview, JABAWS, Annotate3D, and RNAfold
 +
*Join all appropriate mailing lists and keep in touch with mentors
 +
===Tasks Completed===
 +
 +
==Week 1: May 21 - 27, 2012==
 +
===Goals===
 +
*Add new executable of RNAfold to be wrapped as a JABAWS web service to the binaries folder
 +
*Remove any dependencies of the executable - might not be straightforward if the executable has hard links to its dependencies (utilize buffer time if this is the case)
 +
*Update compilebin.sh and setexecflag.sh scripts if necessary
 +
*Describe the executable and its parameters by creating RNAfoldPresets.xml, RNAfoldParameters.xml, and RNAfoldLimit.xml file in conf.settings folder
 +
 +
 +
==Week 2: May 28 - June 3, 2012==
 +
===Goals===
 +
*Create the Java wrapper class by extending SkeletalExecutable and implementing PipedExecutable. For examples, see compbio.runner.msa.
 +
*Create test cases for wrapper
 +
*Test wrapper
 +
 +
 +
==Week 3: June 4 - 10, 2012==
 +
===Goals===
 +
*Create parser to parse output files from RNAfold into a form understood by JABAWS, focusing on interpreting the dot-bracket notation, in SequenceUtil.java. A parser for this format was implemented in Jalview by Lauren Liu during the 2010 Google Summer of Codes. I will need to add it to the JABAWS SequenceUtil file and ensure that it is robust enough to deal with the entire RNAfold output.
 +
*Test parser
 +
 +
 +
==Week 4: June 11 - 17, 2012==
 +
===Goals===
 +
*Register web service in sun-jaxws.xml and web.xml
 +
*Add generated .wsdl file to wsbuild.xml ant script
 +
*Run build-server task in wsbuild file
 +
*Test the full implementation of RNAfold using the command line version of JABAWS (input: data files and parameters, output: to stdout)
 +
 +
 +
==Week 5: June 18 - 24, 2012==
 +
===Goals===
 +
*Update JABAWS client in Jalview
 +
*Integrate RNAfold with Jalview - might not be straightforward if a new archetype is necessary (utilize buffer time if necessary)
 +
*Test RNAfold in Jalview
 +
*Perform additional stress testing (large volumes of data, bad data, etc.)
 +
 +
 +
==Week 6: June 25 - July 1, 2012==
 +
===Goals===
 +
*Add new executable of Annotate3D to be wrapped as a JABAWS web service to the binaries folder
 +
*Remove any dependencies of the executable - might not be straightforward if the executable has hard links to its dependencies (utilize buffer time if this is the case)
 +
*Update compilebin.sh and setexecflag.sh scripts if necessary
 +
*Describe the executable and its parameters by creating Annotate3DPresets.xml, Annotate3DParameters.xml, and Annotate3DLimit.xml file in conf.settings folder
 +
 +
 +
==Week 7: July 2 - 8, 2012==
 +
===Goals===
 +
*Create the Java wrapper class by extending SkeletalExecutable and implementing PipedExecutable. For examples, see compbio.runner.msa.
 +
*Create test cases for wrapper
 +
*Test wrapper
 +
 +
 +
==Week 8: July 9 - 15, 2012==
 +
===Goals===
 +
*Midterm Evaluation due July 13, 2012
 +
*Create parser to parse output files from Annotate3D (.rnaml files) into a form understood by JABAWS in SequenceUtil.java. A RNAML parser is already available in VARNA, so I will focus on exploiting this parser to deal with the data from Annotate3D.
 +
*Test parser
 +
 +
 +
==Week 9: July 16 - 22, 2012==
 +
===Goals===
 +
*Register web service in sun-jaxws.xml and web.xml
 +
*Add generated .wsdl file to wsbuild.xml ant script
 +
*Run build-server task in wsbuild file
 +
*Test the full implementation of Annotate3D using the command line version of JABAWS (input: data files and parameters, output: to stdout)
 +
 +
==Week 10: July 23 - 29, 2012==
 +
===Goals===
 +
*Update JABAWS client in Jalview
 +
*Integrate Annotate3D with Jalview - might not be straightforward if a new archetype is necessary (utilize buffer time if necessary)
 +
*Test Annotate3D in Jalview
 +
*Perform additional stress testing (large volumes of data, bad data, etc.)
 +
 +
==Week 11: July 30 - August 5, 2012==
 +
===Goals===
 +
*Document code
 +
*Produce a guide for adding web services to Jalview via JABAWS to speed up integration of new web services
 +
 +
 +
==Weeks 12 - 13: August 6 - 20, 2012==
 +
These two weeks will be used as a buffer. It is never realistic to assume that a plan will be executed without any hitches. For some reason (development of a new archetype, incorrect data forms, debugging, testing, etc.) some of these tasks might take longer than expected. On the other hand, integrating two web services might not take an entire ten weeks, especially after I become familiar with the JABAWS and Jalview environments from implementing one web service. If time allows, I will try to implement another RNA web service like Infer3D.
 +
 +
==After Coding==
 +
*August 24, 2012 - Final Evaluations Due
 +
*August 31, 2012 - Submit Code Samples to Google
 +
*Continue to work with NESCent on open source projects

Revision as of 04:37, 7 May 2012

Abstract

Jalview is an alignment editor, originally developed for protein sequences, that is used in a variety of web pages and is also available as a stand-alone project. Jalview also includes a client that interacts with web services via JABAWS. In previous Google Summers of Code, students have worked to extend the functionality of Jalview to handle non-coding RNA sequences. Many web services already exist that are related to RNA, but they are not yet available to the Jalview client. During this Google Summer of Code, I will integrate the Annotate3D and RNAfold web services with Jalview using the JABAWS system.

Student

Tori Arendt

Mentors

Yann Ponty
Jim Procter

Important Links

Jalview and JABAWS Source
Jan Engelhardt's 2011 GSoC Project: PhyloSoC: Extending Jalview support for handling RNA
Lauren Liu's 2010 GSoC Project: PhyloSoC:Extending Jalview to Support RNA Alignment Annotation and Secondary Structure Visualization
Jalview
JABAWS
VARNA
RNAfold
Annotate3D

Timeline

Community Bonding Period: Until May 20, 2012

Goals

  • Obtain and understand the source code for Jalview, JABAWS, Annotate3D, and RNAfold
  • Look at bug reports for Jalview related to RNA and attempt to fix some of these bugs
  • Read and understand the code, blogs, and projects of previous Google Summers of Code related to Jalview.
  • Read about web services and SOAP - Possible beginner’s guide: Java Web Services: Up and Running by Martin Kalin
  • Read literature realted to Jalview, JABAWS, Annotate3D, and RNAfold
  • Join all appropriate mailing lists and keep in touch with mentors

Tasks Completed

Week 1: May 21 - 27, 2012

Goals

  • Add new executable of RNAfold to be wrapped as a JABAWS web service to the binaries folder
  • Remove any dependencies of the executable - might not be straightforward if the executable has hard links to its dependencies (utilize buffer time if this is the case)
  • Update compilebin.sh and setexecflag.sh scripts if necessary
  • Describe the executable and its parameters by creating RNAfoldPresets.xml, RNAfoldParameters.xml, and RNAfoldLimit.xml file in conf.settings folder


Week 2: May 28 - June 3, 2012

Goals

  • Create the Java wrapper class by extending SkeletalExecutable and implementing PipedExecutable. For examples, see compbio.runner.msa.
  • Create test cases for wrapper
  • Test wrapper


Week 3: June 4 - 10, 2012

Goals

  • Create parser to parse output files from RNAfold into a form understood by JABAWS, focusing on interpreting the dot-bracket notation, in SequenceUtil.java. A parser for this format was implemented in Jalview by Lauren Liu during the 2010 Google Summer of Codes. I will need to add it to the JABAWS SequenceUtil file and ensure that it is robust enough to deal with the entire RNAfold output.
  • Test parser


Week 4: June 11 - 17, 2012

Goals

  • Register web service in sun-jaxws.xml and web.xml
  • Add generated .wsdl file to wsbuild.xml ant script
  • Run build-server task in wsbuild file
  • Test the full implementation of RNAfold using the command line version of JABAWS (input: data files and parameters, output: to stdout)


Week 5: June 18 - 24, 2012

Goals

  • Update JABAWS client in Jalview
  • Integrate RNAfold with Jalview - might not be straightforward if a new archetype is necessary (utilize buffer time if necessary)
  • Test RNAfold in Jalview
  • Perform additional stress testing (large volumes of data, bad data, etc.)


Week 6: June 25 - July 1, 2012

Goals

  • Add new executable of Annotate3D to be wrapped as a JABAWS web service to the binaries folder
  • Remove any dependencies of the executable - might not be straightforward if the executable has hard links to its dependencies (utilize buffer time if this is the case)
  • Update compilebin.sh and setexecflag.sh scripts if necessary
  • Describe the executable and its parameters by creating Annotate3DPresets.xml, Annotate3DParameters.xml, and Annotate3DLimit.xml file in conf.settings folder


Week 7: July 2 - 8, 2012

Goals

  • Create the Java wrapper class by extending SkeletalExecutable and implementing PipedExecutable. For examples, see compbio.runner.msa.
  • Create test cases for wrapper
  • Test wrapper


Week 8: July 9 - 15, 2012

Goals

  • Midterm Evaluation due July 13, 2012
  • Create parser to parse output files from Annotate3D (.rnaml files) into a form understood by JABAWS in SequenceUtil.java. A RNAML parser is already available in VARNA, so I will focus on exploiting this parser to deal with the data from Annotate3D.
  • Test parser


Week 9: July 16 - 22, 2012

Goals

  • Register web service in sun-jaxws.xml and web.xml
  • Add generated .wsdl file to wsbuild.xml ant script
  • Run build-server task in wsbuild file
  • Test the full implementation of Annotate3D using the command line version of JABAWS (input: data files and parameters, output: to stdout)

Week 10: July 23 - 29, 2012

Goals

  • Update JABAWS client in Jalview
  • Integrate Annotate3D with Jalview - might not be straightforward if a new archetype is necessary (utilize buffer time if necessary)
  • Test Annotate3D in Jalview
  • Perform additional stress testing (large volumes of data, bad data, etc.)

Week 11: July 30 - August 5, 2012

Goals

  • Document code
  • Produce a guide for adding web services to Jalview via JABAWS to speed up integration of new web services


Weeks 12 - 13: August 6 - 20, 2012

These two weeks will be used as a buffer. It is never realistic to assume that a plan will be executed without any hitches. For some reason (development of a new archetype, incorrect data forms, debugging, testing, etc.) some of these tasks might take longer than expected. On the other hand, integrating two web services might not take an entire ten weeks, especially after I become familiar with the JABAWS and Jalview environments from implementing one web service. If time allows, I will try to implement another RNA web service like Infer3D.

After Coding

  • August 24, 2012 - Final Evaluations Due
  • August 31, 2012 - Submit Code Samples to Google
  • Continue to work with NESCent on open source projects