SequenceServer lets you rapidly set up a BLAST+ server with an intuitive user interface for use locally or over the web.
Sequence data is generated at increasing rates. However it is challenging to effectively share and query such data. Deploying complex solutions such as GMOD is often overkill and publicly available front ends for BLAST are difficult to use or install.
SequenceServer is an efficient and elegant alternative. Sequenceserver is still being developed yet is fully functional and has already been deployed for multiple databases.
-task blastn-short -evalue 1.0e-20) like you would in the command line.
Linux and MacOS are officially supported. While we would like to also support Windows, our resources are limited and we prefer to first concentrate on making SequenceServer great on fewer platforms.
Run the following from a command line to get the latest release of SequenceServer.
$ gem install sequenceserver
If that doesn't work, try
sudo gem instead of
gem. And subsequently follow the instructions on
SequenceServer needs to know the location of the BLAST+ binaries,
and the BLAST database. This is accomplished by providing a
.sequenceserver.conf in the user's home directory.
# .sequenceserver.conf bin: ~/ncbi-blast-2.2.25+/bin/ database: /Users/me/blast_databases/
SequenceServer automatically generates a fully commented
configuration file (
.sequenceserver.conf) in the user's
home directory if it can't find one. Uncomment the relevant lines
(i.e remove the
# signs), edit the values, and run
If you you already have databases, jump ahead to launch SequenceServer. If not, set up databases as follows.
To set up BLAST databases from a directory of FASTA sequence
$ sequenceserver format-databases
It will automatically pick up the database directory from the configuration file. Or pass the database directory from command line:
$ sequenceserver format-databases directory_with_fasta_files
The script will assist you by:
directory_with_fasta_files(and in subdirectories too)
Alternatively, manually set up BLAST databases from single FASTA sequence files. In the directory containing the FASTA file, run:
$ makeblastdb -dbtype <db type> -title <db title> -in <db> -parse_seqids
<db type>is either
nucldepending on the type of sequence
<db title>is what users will see
<db>is the path to the FASTA file
-parse_seqidsis required to generate links for downloading search hits (yes, it's a bit slow on large files).
SequenceServer will start up a webserver on http://localhost:4567/ (by default). Port number can be changed in the config file.
For most people, simply running the SequenceServer as above is more than enough. But if you need to deploy SequenceServer BLAST as part of a standard website, and have it show up as a normal webdirectory, SequenceServer can be deployed on Apache or Nginx with Phusion Passenger™ (a.k.a mod_rails or mod_rack).
gem install passenger
Install passenger module for Apache/Nginx module
# for apache2 passenger-install-apache2-module # for nginx passenger-install-nginx-module
Follow instructions on screen. The installer will let you know of
any missing software that is required to setup passenger, and also
how to install them. Towards the end of installation, after the
installer has finished building modules corresponding to your
webserver, it will ask you to edit your webserver configuration files
and some lines, so that your webserver knows how to load
For Apache, you can do something like this:
/etc/apache2/mods-available, and add the lines there.
a2enmod passenger. This will ask you to restart apache2 with instructions on how to do the same. On my machine, I had to run
Apache Root URI (eg:antgenomes.org or localhost).
<VirtualHost *:80> ServerName localhost DocumentRoot /home/yeban/src/sequenceserver/public <Directory /home/yeban/src/sequenceserver/public> Allow from all Options -MultiViews </Directory> </VirtualHost>
Apache Sub URI (e.g.: antgenomes.org/blast or localhost/sequenceserver).
<VirtualHost *:80> ServerName localhost DocumentRoot /var/www/ <Directory /var/www> Allow from all </Directory> RackBaseURI /sequenceserver <Directory /var/www/sequenceserver> Options -MultiViews </Directory> </VirtualHost>
Have an issue in deploying SequenceServer? Something is not working as expected? Have a tip? A feature request? Or just want to encourage further development? Post it to SequenceServer Google Group and we will work something out.
makeblastdbtool that reformats FASTA into the optimized BLAST-friendly format. Use
sequenceserver format-databasesto create a custom BLAST database.
.palBLAST database alias file, and copy this alias file as well as the linked databases into SequenceServer's
dbdirectory, SequenceServer will display both the alias and the linked databases. If you want to display only the alias, remove the linked databases from
db, then edit the
DBLISTline in the
.nalfile so that it contains the complete path of each of the database files (e.g:
DBLIST species1_custom_blast_db species2_custom_blast_databasemay become:
DBLIST /Users/blastuser/mydbs/species1_custom_blast_db /Users/blastuser/mydbs/species2_custom_blast_database)
formatdb. The programs in BLAST+ have names like
-parse_seqidsargument when running
makeblastdb(or they were formatted using legacy
formatdb). Blast+ 2.2.24 and later indicate that when
-parse_seqidswas not used by leaving a space between
>and hit identifiers (eg:
> db_sequence001instead of
customisation.rbfile and read the examples it provides. To add a single link, uncomment and edit the
construct_custom_sequence_hyperlinkmethod; to add multiple links edit the
--configcommand line switch. For example:
$ sequenceserver --config sequenceserver_ants.confYou will need to set it in
config.rufor Rack based deployment:
SequenceServer::App.config_file = 'sequenceserver_ants.conf'The above line should be added before
SequenceServer::App.init, so the
config.rulooks something like this:
require 'rubygems' require 'bundler/setup' require 'sequenceserver' SequenceServer::App.config_file = '/absolute/path/to/configuration_file' SequenceServer::App.init run SequenceServer::App
gem install thin), or Mongrel (
gem install mongrel) can improve performance. SequenceServer will automatically use these if installed.
sudo gem update.
As well as:
Parts of this software are © 2011 University of Lausanne