SequenceServer - BLAST searching made easy!
SequenceServer lets you rapidly set up a BLAST+ server with an intuitive user interface for personal or group use.
If you use SequenceServer, please cite:
Stable (version 1.0.14)
- Release date: May 2020
- Works with BLAST 2.2.30 and higher
For installation instructions and how to use SequenceServer please see https://sequenceserver.com/#installation.
If you want to run SequenceServer directly from source code, please see 'Develop and contribute' section below.
Beta (version 2.0)
SequenceServer 2.0 includes three new visualisations to help interpret BLAST results, enables sharing of BLAST results and visualising of externally generated BLAST XML file (including from DIAMOND), removes the 30 hit limit for FASTA download and adds ability to download pairwise alignment, is better equipped to handle long-running BLAST jobs and rendering of large search results (thousands of hits), supports BLAST 2.10.0+ and the new database format (including migrating your old databases to the new format), contains additional hooks for integrating as part of other websites and several other enhancements under the hood.
Read more about SequenceServer 2.0 and extensive testing of the candidate releases by the community: https://groups.google.com/d/msg/sequenceserver/c98ePBzcuVE/lN-S35jVHgAJ.
We invite you to try out the latest candidate release and help us out by reporting any issues you may encounter with your setup (instructions below).
Install and configure
To get the latest 2.0 (beta) release, run:
gem install --pre sequenceserver
If you are new to the above command, please consult the 'Install or update' section on our website http://sequenceserver.com.
If you want to run SequenceServer beta directly from source code, please see 'Develop and contribute' section below.
Please report any issues here: https://github.com/wurmlab/sequenceserver/issues
Develop and contribute
To develop and contribute, you will need to run SequenceServer from source.
Run SequenceServer from source code
# Install bundler gem to install Ruby dependencies gem install bundler # Move to where you downloaded or cloned seqserv cd sequenceserver # Use bundler to install Ruby dependencies bundle install # Use bundler to run SequenceServer bundle exec bin/sequenceserver
If you do not plan to develop, you can skip installing development dependencies
bundle install --without=development.
Making changes to the code
During development, you should use
-D option to run SequenceServer in development mode. In this mode, SequenceServer logs verbosely and uses raw front-end files.
# Run SequenceServer in development mode bundle exec bin/sequenceserver -D
You will need Node and npm if you want to modify and build frontend code:
# Install frontend dependencies npm install # Build minified JS and CSS bundles npm run-script build
Or if you are using docker, you can build the frontend code and include it in the image by specifying '--target=minify' to the docker build command:
docker build . -t seqserv-with-customisations --target=minify
We use RSpec and Capybara for testing. Our test suite covers 87% of the codebase. Running all tests can take considerable time (~2 hrs). We recommend using Travis to automatically run all tests when you push your code to your fork. Tests are also run automatically when you open a pull-request (see Getting code merged section below). Although, it may be desirable sometimes to run a single test, whole file, or all tests locally:
To run a single test (a.k.a, scenario):
bundle exec rspec spec/foo_spec.rb -e 'bar'
To run all tests in a single file:
bundle exec rspec spec/foo_spec.rb
To run all tests:
bundle exec rspec
Getting code merged
Please open a pull-request on GitHub to get code merged. Our test suite and the CodeClimate static code analysis system will be automatically run on your pull-request. These should pass for your code to be merged. If you want to add a new feature to SequenceServer, please also add tests. In addition, code should be
eslint compliant, and hard-wrapped to 80 chars per line.
Both the old stable and new beta versions of SequenceServer are available as Docker images.
# With database fasta files inside a folder named db docker run --rm -ti -p 4567:4567 -v $(pwd)/db:/db wurmlab/sequenceserver
This will use the new beta release of SequenceServer. To use the old stable release, add the version tag to the command:
# With database fasta files inside a folder named db docker run --rm -ti -p 4567:4567 -v $(pwd)/db:/db wurmlab/sequenceserver:1.0.11