Skip to content

Blast+ web interface: source code available

by A. Bretaudeau on September 14, 2011

Hi there!Blast interface

It’s been a while, but today I come with some good news!

As you may remember, I have developed a web interface for Blast+. Some of you asked me if I could publish the source code. So today I’m releasing it to the world!

Now, you can download an almost ready-to-use web interface and install it on your web server to make it available to your users. I tried to make it as flexible as possible, so you can adapt it to your needs.

Requirements

To install this web interface, you’ll need a web server (Apache for example) with PHP >= 5.3.2 and a SQL database.

For better performances, you also need a cluster with SGE job scheduler. Computing nodes should run on linux.

The code is based on the new Symfony 2 framework, and it is available as “bundles” (which are a sort of Symfony plugins).

The installation requires some PHP skills, but it shouldn’t be too hard if you follow the instructions below.

Installation

Getting the code

The first step is to get the Symfony 2 code. Go to the official download page and get the latest “Symfony Standard (.tgz)”. Extract it somewhere on your server and open a terminal in the symfony directory.

Now you need to install some bundles. All our code is available on our github account.

First install the GenouestBioinfoBundle following the instructions in the installation section of the corresponding documentation.

You also need to install and configure GenouestSchedulerBundle (doc) and GenouestBlastBundle (doc). Follow the installation and configuration sections in the corresponding documentations.

Additionally, if you have a Biomaj server and you want to use it within the blast interface, install GenouestBiomajBundle (doc). If you have no idea what is a Biomaj server, just skip this optional step!

Preparing the database

Before testing your installation, you need to prepare the database that will store informations about each blast job that will be launched using the web interface.

First, create an empty database on your SQL server. Then configure the connection of your blast interface. Briefly, open the ‘app/config/parameters.ini’ file and fill the different connection parameters (database driver, hostname, user, password, database name).

Now we need to create the SQL tables in the database. To do so, just launch the following command from the symfony root directory:

php app/console doctrine:schema:update --force

And that’s it! The database is ready to be used.

Getting the web interface online

To test your application, just make sure that the ‘web’ directory is accessible from the internet. You can have a look at the SymfoNy dosuíentation for more help. Personally, I prefer to install symfony in any directory, and then create a symbolic link in the apache www directory pointing to the Symfony “web/” dir.

Suppose your Symfony is installed in /opt/myblastapp/ and the apache root directory is /apache/www/. You can create a symbolic link like this:

ln -s /opt/myblastapp/ /apache/www/blast

And now access your application using http://example.org/blast/

Getting help & contributing

As you see, there are some manipulations to install the web interface on your server, but it shouldn’t too hard to do if you have some PHP skills. As it is based on the Symfony 2 framework, it is really customizable. In case of problem, the Symfony documentation can help you: it is well written and covers most of the things you can do with this framework.

The code is released under the French CeCILL license which is a GPL-like license. Don’t hesitate to submit bug or patches to our github repositories. Any comments are welcome!

2 Comments
  1. Mahesh permalink

    Hi, I am trying to follow the guide to install this interface but when trying to install the GenouestBioinfoBundle using the instructions provided I encounter the following error “fatal: Not a git repository (or any parent up to mount parent /home)”

    Searching the web seems to suggest a corrupt repository… Can you help please as I would like to deploy this.

    Many Thanks

  2. Hi,
    You get this error because ‘git submodule add…’ only works if your symfony project is managed with git.
    For more information on how to set up a git repository for a symfony project, have a look at the Symfony documentation.
    If you don’t want to manage your project with git, you can also use the ‘deps’ file as explained in the Symfony documentation, or use ‘git clone’ to download the bundle code.
    Tell me if you need more help!

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS