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

From Phyloinformatics
Jump to: navigation, search
(Week 9: July 16 - 22, 2012)
(Week 8: July 9 - 15, 2012)
Line 137: Line 137:
 
*Update JABAWS client in Jalview
 
*Update JABAWS client in Jalview
 
*Integrate RNAfold with Jalview - might not be straightforward if a new archetype is necessary (utilize buffer time if necessary)
 
*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.)
 
 
===Tasks Completed===
 
===Tasks Completed===
 
*Midterm Evaluation Completed
 
*Midterm Evaluation Completed

Revision as of 11:00, 11 July 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

  • Joined all mailing lists
  • Signed up for Jalview bug tracker
  • Read primary papers for Jalview and JABAWS
  • Had weekly meetings with mentors
  • Read Java Web Services: Up and Running
  • Watched videos to become acquainted with git flow and web services
  • Set up eclipse to work with JABAWS and Jalview git repositories

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

Tasks Completed

  • Added executable of RNAfold into binaries folder in JABAWS (no known hard dependencies)
  • Created RNAfoldPresets.xml and RNAfoldParameters.xml

Not Completed

  • Verify executable in implemented correctly
  • Update compilebin.sh
  • Add issues to bug tracker

Week 2: May 28 - June 3, 2012

Goals

  • Add issues to bug tracker
  • Discuss parameters and presets files with mentors
  • Discuss limits of RNAfold
  • Create the Java wrapper class by extending SkeletalExecutable and implementing PipedExecutable. For examples, see compbio.runner.msa.
  • Create test cases for wrapper
  • Test wrapper

Tasks Completed

  • Discussed parameters and presets files with mentors
  • Discussed limits of RNAfold
  • Updated XML files to reflect this change
  • Created wrapper file for RNAfold
  • Looked at other examples of test cases for wrapper

Not Completed

  • Make 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

Tasks Completed

  • Created Parser for RNAfold's WUSS format
  • Researched adding new web service type to JABAWS in order to wrap RNAfold properly
  • Began creating new web service type in JABAWS

Not Completed

  • Finish new web service type and wrapper for RNAfold
  • 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)

Tasks Completed

  • Finished Wrapper for RNAfold
  • Registered web service in sun-jaxws.xml
  • Ran build-server task in wsbuild file
  • Discussed and developed some tests for the wrapper and parser of RNAfold

Not Completed

  • Test wrapper and parser
  • Run full implementation of RNAfold using command line version of JABAWS

Week 5: June 18 - 24, 2012

Goals

  • Test wrapper and parser
  • Run full implementation of RNAfold using command line version of JABAWS

Tasks Completed

  • Considerable debugging of scripts and files to try to run RNAfold
  • More discussion of test types

Not Completed

  • Still not fully able to run RNAfold

Week 6: June 25 - July 1, 2012

Goals

  • Run RNAfold using command line version of JABAWS
  • Perform TestNG
  • Finish tests

Tasks Completed

  • Much more debugging, but finally got RNAfold working
  • More test discussion including tests for implementation, efficiency, and correctness

Not Completed

  • Testing - both of TestNG and wrapper/parser

Week 7: July 2 - 8, 2012

Goals

  • Test RNAfold in JABAWS (TestNG)
  • Test parser and wrapper
  • Begin integration with Jalview

Tasks Completed

  • Ran TestNG, but not correct results.
  • More debugging/testing - found many files that still needed to be updated
  • Began investigating running RNAfold in Jalview

Not Completed

  • Correct test results - both TestNG and wrapper/parser

Week 8: July 9 - 15, 2012

Goals

  • Midterm Evaluation due July 13, 2012
  • Finish testing in parser/wrapper to for implementation, accuracy, and efficiency
  • TestNG results!
  • Update JABAWS client in Jalview
  • Integrate RNAfold with Jalview - might not be straightforward if a new archetype is necessary (utilize buffer time if necessary)

Tasks Completed

  • Midterm Evaluation Completed

Week 9: July 16 - 22, 2012

Goals

  • Add new executable of RNAalifold 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 parameters, limits, and presets xml files for RNAalifold
  • 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 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