RATON

From Biowiki
Jump to: navigation, search

Raton RNA Alignment Tool

This page describes the Raton AJAX web application for viewing RNA alignments.

If you came here looking for one of our other RNA alignment colorizing tools, i.e. colorstock (which uses ANSI terminal color) or sscolor (which generates static HTML), please try the RNAAlignmentViewers page.

A prototype for the Raton RNA Alignment Tool can now be found at http://harmony.biowiki.org/raton/

This application was derived from the DartPerl:sscolor.pl script. It also is inspired by the RALEE package for Emacs, the PFOLD server and the UCSC EvoFold track.

Table of Contents

Application Design

  • On the client side, this application uses Javascript to create menus and perform tasks such as coloring the uploaded RNA alignment, aiming to offload as much processing as possible from the server.
  • To perform tasks such as computing a consensus secondary structure, the client makes asynchronous AJAX-type calls to the server, thereby allowing the user to continue interacting with the application without having to wait for the result.
  • To aid development and cross-browser compatibility, the application uses the Dojo Javascript toolkit.
  • On the server, Python modules receive the client requests and call external programs. The modules run within the mod_python extension to the Apache web server, which gives the capability to create user sessions.

Feature Wish List

  • Wrap xrate functionality.
    • Load grammar file
      • Give the ability to choose a file or input via a textbox.
      • Display in a scrollable textbox.
      • This becomes the active grammar, overriding any previously loaded grammar.
    • Build tree for active alignment using active grammar.
      • Alignment is updated to display tree in Newick format in "#=GF NH" line.
    • Train the active grammar using the active alignment.
      • The trained grammar becomes the active grammar.
      • Create "Save Grammar to File" menu option.
    • Annotate current alignment using active grammar.
      • New SS_cons annotation triggers recoloring of the alignment.
    • Store, retrieve, update, delete grammars on the server
      • "Save Grammar to Server" menu options.

* Verify name of files are unique. * Look into if a generic Ajax framework exists for server filesystem browsing, maybe with directory hierarchies. * Or store files in a database.

      • "Select Grammar" menu option which allows the ability to switch the active grammar.
      • "Delete Grammar" menu option.

* This will probably require user login so that users can only delete their own files.

    • Store, retrieve, update, delete alignments on the server
      • "Save Alignment to Server" menu option.

* Same considerations as grammar files regarding storage.

      • "Select Alignment" menu option which allows the ability to switch the active alignment.
      • "Delete Alignment" menu option.
  • Highlight basepairing columns on mouseover.
  • Select any individual sequence and call external program (eg, mfold) to fold it.
    • This updates alignment with a "#=GR SS" line
  • Coloring alignment (similar to the Colour menu in Ralee)
    • Color whole columns if the number of distinct strongly-bonded basepairs (AU,GC,GU) > 1.
      • Similar to "by compensatory mutations" in Ralee.
      • Can set the background color of the columns like Rfam.
    • By any consensus annotation of the form "#=GC".
    • By selected by-sequence structure("#=GR SS" line).
    • By conservation
    • By base identity
  • Call external program like Phylodendron to display tree image.
  • Display 2-D structure image (eg, using Vienna package). This is similar to Ralee "Show structure" option.
  • Render bubbleplot for active grammar.
  • Ability to collapse alignment columns to hide ones which are very gappy.
  • Ability to toggle sequences on/off.
    • After toggling off, any 100% gappy columns should collapse automatically.
  • Ability to switch order of sequences.
  • Use progress bar widget to show Xrate processing status.
    • If you run with "-log ECFGDP", the logfile (or stderr if no logfile is specified) will contain progress messages. There are two percentages reported, e.g.:
      • CYK: finished 221478 of 1059240 subseqs (20.9%) and 1.76003e+07 of 5.14438e+08 bifurcations (3.4%)
    • The second percentage (bifurcations) is likely to be the most "linear" estimate of actual time remaining.
  • Handling large alignments
    • Cap on alignment size?
    • Use two scrollable windows (overflow property = scrollable) so can view basepairs.
    • DOM tree may get too large because of so many <span> elements. How to optimize it?

Setting up Development Environment on Mac

This outlines a basic install for OS 10.4.9.

  • Install MacPorts.
  • Install mod_python
    • sudo port install mod_python (will install/upgrade Python and Apache if needed)
  • Checkout BiowikiCvsDir:rnaav
    • Copy/link this directory to ApacheDocumentRoot/rnaav (TBD: create deploy script)
  • Place these directories under /usr/local/biowiki
  • Configure Apache to use mod_python.
    • Copy the configuration file rnaav/conf/httpd.conf to APACHEDIR/conf. Restart Apache anytime you change this file.
    • Test: Install the mod_python psp_site example in ApacheDocumentRoot. Then go to http://localhost/psp_site.
  • Install Cheetah templating engine.
    • sudo port install py-cheetah
  • Install latest version of Firefox browser (currently 2.0.0.1)
    • Install browser debugging extensions such as Firebug, Web Developer, Venkman Debugger
    • During development it may be helpful to set the browser cache to 0.
  • Install simplejson JSON encoder/decoder
    • sudo port install py-simplejson
  • Install Dojo javascript toolkit in /usr/local/js
    • Put a link from /usr/local/js/dojo to the current version
    • For development, use the dojo-src version. For deployment can use one of the compressed versions, like dojo-ajax.
  • Setup Dart Python
  • Link to DART and BiowikiCvsDir:python from /usr/local/biowiki. Compile xgram.

Setting up a Test environment on Debian

  • Similar setup to above. Use aptitude to install the packages:
    • aptitude install libapache2-mod-python (will install/upgrade Python and Apache if needed)
    • aptitude install python-cheetah python-simplejson
    • Setup Dart Python
    • Install DART at /usr/local/biowiki
    • Checkout BiowikiCvsDir:python in /usr/local/biowiki

Other RNA Visualization Tools

Comments

-- Yuri Bendana - 16 Jan 2007