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.
SequenceServer is free for academics. Its source code is available on GitHub.
-task blastn-short -evalue 1.0e-20
) like you would in the command line.
Ruby (>= 1.8.7), RubyGems (>= 1.3.6), and NCBI BLAST+ (>= 2.2.25+). That's it!
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.
Sure, check Ant genome BLAST or the sites of some of our users.
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
screen.
SequenceServer needs to know the location of the BLAST+ binaries
(NCBI
BLAST+ download directory or
brew tap homebrew/science; brew install blast
),
and the BLAST databases. 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
SequenceServer.
If you you already have databases, you're ready to launch SequenceServer. If not, set up databases as below.
Simply execute:
$ sequenceserver
SequencerServer will check your config file and start up a webserver on http://localhost:4567/. The port number can be changed in the config file.
You're done. BLAST away.
To set up BLAST databases from a directory of FASTA sequence
files, use sequenceserver
's
format-databases
subcommand:
$ 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)
makeblastdb
commands.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
Where,
<db type>
is either prot
, or nucl
depending on
the type of sequence<db title>
is what users will see<db>
is the path to the FASTA file-parse_seqids
is required to generate links for downloading search
hits (yes, it's a bit slow on large files).makeblastdb -help
.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).
Install passenger
gem:
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
passenger
.
For Apache, you can do something like this:
passenger.load
in
/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 /etc/init.d/apache2 restart
touch tmp/restart.txt
may required when changing configuration.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.
If you are completely overwhelmed and need more support that the mailing list can provide, we are available for consulting which can range from custom support to server deployment and administration to implementing specific features.
Custom licensing is also possible. Get in touch.
makeblastdb
tool that reformats FASTA
into the optimized BLAST-friendly format. Use makeblastdb
or
sequenceserver format-databases
to create a custom BLAST database.
.nal
or .pal
BLAST database alias file, and
copy this alias file as well as the linked databases into SequenceServer's db
directory, 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
DBLIST
line in the .pal
or .nal
file so that it
contains the complete path of each of the database files (e.g:
DBLIST species1_custom_blast_db species2_custom_blast_database
may become:
DBLIST /Users/blastuser/mydbs/species1_custom_blast_db /Users/blastuser/mydbs/species2_custom_blast_database
)
blastall
and formatdb
. The programs in
BLAST+ have names like makeblastdb
, blastn
,
tblastx
...
bin
directory, e.g.: /Users/stevejobs/software/ncbi-blast-2.2.25+/bin/
-parse_seqids
argument when running
makeblastdb
(or they were formatted using legacy formatdb
). Blast+
2.2.24 and later indicate that when -parse_seqids
was not used by leaving a
space between >
and hit identifiers (eg: > db_sequence001
instead of >db_sequence001
).
customisation.rb
file and read the examples it provides. To add
a single link, uncomment and edit the construct_custom_sequence_hyperlink
method; to add multiple links edit the
construct_custom_sequence_hyperlinking_line
method.
--config
command line switch. For example:
$ sequenceserver --config sequenceserver_ants.confYou will need to set it in
config.ru
for Rack based deployment:
SequenceServer::App.config_file = 'sequenceserver_ants.conf'The above line should be added before
SequenceServer::App.init
, so the config.ru
looks 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
~/.sequenceserver.conf
.
gem install thin
), or Mongrel
(gem install mongrel
)
can improve performance. SequenceServer will automatically
use these if installed.
gem update
or sudo gem update
. As well as:
and many additional private installations we don't know about...
Parts of this software are © 2011 University of Lausanne.
Please cite: "Priyam A., Woodcroft B.J., Wurm Y in prep. SequenceServer: BLAST
searching made easy http://sequenceserver.com
."