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 documentation 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!