Difference between revisions of "JBio"

From Rost Lab Open
(jBio Presentation)
Line 13: Line 13:
== jBio Presentation ==
== jBio Presentation ==

Revision as of 16:34, 14 December 2010


jBio is a new solution to bioinformatics knowledge presentation. the jBio JavaScript library, offers bioinformatics knowledge the same sophistication in presentation (and therefore user satisfaction) that we see in our favourite on-line services: straightforward and familiar controls, rich user interactions, distributed content and methods, and themable look. For the developer our proposal is underlined by the use of well-established methodologies such as object-oriented programming with inheritance and polymorphism, asynchronous JavaScript + XML (AJAX), and jQuery, a leading JavaScript library that facilitates rapid development. In addition our methodology encourages the standardization of the look and feel of on-line bioinformatics resources by providing a customizable base set of presentation and interaction modules to build upon. Hence, by using jBio developers can rapidly design and deploy true web 2.0 applications.


What is the best way to give humans access to new bioinformatics resources? Of course it is to make them available in a web browser looking their most inviting. The task is repeated over and over again: after a stretch of method development and testing we make a web service and 'let people in'. Laying out the input form and applying an appealing style sheet to it may seem simple enough. Presenting the results, however, is a bigger challenge because an appealing presentation often involves detailed drawing and sophisticated user interactions requiring programming. Programming is made easy by using libraries, and indeed there are graphics modules in the open source BioPerl toolkit (cite) that address the first part of the problem, namely drawing features of biological sequences. But the result here is a (static) image with, possibly, an image map that enables a (clunky) interaction experience. In order to have a contemporary, finer control over the visualisation of our results and a more intimate interaction with the user viewing it, we would need a library just like the BioPerl graphics modules - within the web browser, extended to handle user interaction. A JavaScript (cite) library lends itself to providing the solution: in various state-of-the-art web services JavaScript proves itself to be capable of providing top user experience; its syntax is similar to Perl (cite), so it poses no serious problem to developers experienced with Perl – a fair expectation given the widespread use of BioPerl in bioinformatics.


There is no need to reinvent the wheel, it is much more profitable to simply combine it with – say – an axle. Looking through the above detailed goals it is apparent that most parts of the problem have already been tackled in one programming environment or another. In jBio we actively seek to reuse concepts and code as much as possible. From BioPerl we borrow all of the foundation classes for handling and visualising biological sequence data: Bio::SeqIO, Bio::SeqFeature::Generic, Bio::Graphics::Glyph, etc. From the open source Qt library (cite) we borrow graphical user interface (GUI) elements, e.g. the sequence cursor. We use jQuery to hide browser differences, access HTML and XML data through the document object model (DOM, cite) and facilitate JavaScript programming in general. And with the help of the JavaScript Perl module we provide documentation similar to that of the C++ standard template library (STL): documentation embedded in the source is automatically converted to an info document, a PDF and an HTML document.


To our best knowledge jBio is the only bioinformatics library that provides visualisation and user interactions in the web browser. It is also unique in its reach: it is not unreasonable to assume that almost all networked desktop computers have a graphical web browser capable of running JavaScript applications using jBio. Let us highlight a few of perhaps the most significant features: client side operation allowing intimate interaction with user and full control of the interface; specialised visualisation ('glyphs') for common features such as secondary structure elements and blast results; default visualisation for any biological sequence feature; detailed feature view glyphs; sequence cursor allowing focusing on a region of interest; methods to facilitate binding user interaction to actions; elegant sequence input-output as in BioPerl: Bio::SeqIO → jBio.SeqIO; live zooming of display area; appealing visual effects thanks to jQuery; completely modular, object oriented design with multiple inheritance and polymorphism; detailed documentation in many formats, automatically extracted from source.

jBio Presentation