Is There A Bio-Webdevelopment Framework?
7
5
Entering edit mode
13.7 years ago

There is bioperl, biojava, biophp, etc. But is there also a web development framework that fits bioinformaticians specifically? I have been developing webinterfaces with php/mysql for years now. Lately I have added jquery to the interface building. Through the grapevine more and more people tell me that I should move a way from Php, towards frameworks like grails/maven/ruby on rails, etc. Due to proficiency in php and a lack of time, I have stuck to my old toolbox of php/mysql/perl and even sometimes unix calls. I will look into grails soon, also because colleagues are quite positive about Grails. But more general I am wondering if there is a bio-webdevelopment framework?

web programming • 5.8k views
ADD COMMENT
0
Entering edit mode
ADD REPLY
0
Entering edit mode

I am always wondering: does someone know the distribution of web-dev frameworks among, say, databases published in an NAR issue?

ADD REPLY
6
Entering edit mode
13.7 years ago
User 5267 ▴ 110

There's an idea that Dijkstra was always harping on about, among the various other things he harped on about: separation of concerns. Libraries to help with web development have no reason to be bioinformatics specific. It is counterproductive to make them so, since then you only have the relatively small bioinformatics community, where the average level of programming ability is quite low, working on them.

If you specifically need to deploy a script as part of a workflow, then Taverna and Galaxy are great. If you actually need a web interface in a more general form, then don't look for something bioinformatics specific.

And if you can produce solid results with PHP, MySQL, and JQuery, just keep going. If you do feel the need to move to one of the newer tools, then look around you and find someone who is already using one of them. I don't mean someone who plays with them, but someone who deploys lots of good code on a regular basis using them and whose work impresses you. Then use what they're using and apprentice yourself to them. If you don't have such a person locally, then don't bother.

For example, we have a guy in my group who does Ruby on Rails. I'm probably a better programmer overall, but for web development, he deploys in that domain faster than I can hope to, and his sites are solid. The biologists love them. Therefore, if I were going to try a framework, I'd use Ruby on Rails and harass him to learn all his tricks.

ADD COMMENT
4
Entering edit mode
13.7 years ago

I guess you can find a web framework for any programming language. So your question is closely related to this previous thread: What Do Bioinformaticians Use To Make High Quality Web Sites?

However, is there a web framework that run out-of-the box ? My first thoughts are:

ADD COMMENT
2
Entering edit mode

For BioMart, it would be better to have a look at www.biomart.org and check out the BioMart 0.8 documentation. Ensembl is using the old BioMart 0.7, which is not as easy to set-up as the new 0.8 version.

ADD REPLY
3
Entering edit mode
13.7 years ago
Morris ▴ 30

Hi Andra,

We've met before. We have been developing an open source framework called MOLGENIS especially for these purposes in the past few years.

It is a stack based on Java (for logic), Mysql (for storage) and Freemarker (for user interface templating and scripting). We actually decided to not use a scripting language as the integrated development environment Eclipse now helps a lot in debugging at compile time. I suppose that is personal. The key feature is that you can model a data structure and user interface using a small XML config and then a full java application is auto-generated for you to use.

In order to support our bioinformatics users it includes an interface to the R language as well as to SOAP (Taverna) or REST web (jquery or other scriting languages). Don't hesitate to contact us to give you a tutorial. To get started it is best to check it out from subversion as to our shame the sourceforge version is not always up to date. See http://www.molgenis.org/wiki/MolgenisOnUbuntu

ADD COMMENT
3
Entering edit mode
13.7 years ago
Neilfws 49k

There are some tools around which make the process of creating web interfaces for bioinformatics applications somewhat easier. One of the earliest was named Pise, which has been succeeded by Mobyle. Another is Turnkey, which is used by GMODWeb.

However, I don't believe that there are "bio-specific" variants of the more modern frameworks (Rails, Django and so on). Most people would just combine their programming knowledge of both the framework and the Bio libraries to create a custom solution. In Rails for example, simply requiring the bio* gem (BioRuby) makes methods from that library available to your project.

ADD COMMENT
0
Entering edit mode

Turnkey and GMODWeb are currently unsupported and very difficult to install. A preferred approach would be using an established CMS like Drupal as outlined in the answer about Tripal.

ADD REPLY
0
Entering edit mode

+1 for bioruby. We're using the ultrafast http://www.sinatrarb.com/ web framework to develop a wrapper for blast (in progress at http://www.sequenceserver.com/ )

ADD REPLY
2
Entering edit mode
13.7 years ago
Stephen ▴ 20

Hi Andra,

Currently under active development is a tool called Tripal (http://tripal.sourceforge.net/) which combines the power of a content management system, Drupal (http://www.drupal.org) with that of the GMOD Chado database schema (http://gmod.org/wiki/Chado). Drupal is PHP-based so that would fit perfectly with what you are comfortable with and is widely supported, documented and has a very large user-community. It has has a repository of thousands of extensions for adding functionality not specific to biological databases, but which are also often desired. Non technical users can easily update content without coding experience.

Tripal is a GMOD tool and is still maturing but is already used in a quite a few online databases, and is completely customizable. Version 0.3 will be released soon with a published API and theming templates that are completely customizable, so if you don't like the defaults you can easily change them.

Perhaps, you'll find it useful!

ADD COMMENT
1
Entering edit mode
13.7 years ago
lh3 33k

I am answering my own question: what is the distribution of web-dev frameworks among databases published in NAR? I do not have an answer so far, but here is what I found.

I selected 15 websites from the 2011 NAR database issue (the top 15 ones excluding NCBI/EBI/DDBJ databases). I am using http://guess.scritch.org/ to detect web-dev frameworks. The results are given in the list at the end. Note that this website is unable to identify Grails, Maven and probably a lot of other frameworks. Neither can it identify PHP frameworks. The false negative rate is very high. Nonetheless, we can still learn the following:

  • PHP is the most popular among these 15 websites (in spite of the very small sample size).

  • None of the 15 websites is using RoR or django.

  • The 3 websites built with Java are not using Grails or Maven. Nonetheless, the 3 look quite sophisticated. They should be using something interesting.

  • The 3 unknown/unknown websites could be using Grails or Maven, but from their look-and-feel and the style, I guess they are not using any frameworks.

In conclusion, PHP is still widely used in bioinformatics web development, at least for now.

[?]

ADD COMMENT
0
Entering edit mode

they should develop one with web2py

ADD REPLY
0
Entering edit mode
13.7 years ago
Lee Katz ★ 3.2k

I started making a Bio-JS a couple of months ago. It's still early-on though.

  function textareaToTextArea(){
    fastaSequenceInput=$('test1').select('.input')[0];
    fastaSequenceOutput=$('test1').select('.output')[0];

    seqin=new Bio.SeqIO.fasta(fastaSequenceInput,{
      html:false
    });
    seqout=new Bio.SeqIO.fasta(fastaSequenceOutput,{
      mode:"w",
      html:false
    });
    while(seq=seqin.next_seq()){
      seqout.write_seq(seq);
    }
  }
ADD COMMENT

Login before adding your answer.

Traffic: 1951 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6