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:
For installation instructions and how to use SequenceServer please see https://sequenceserver.com/
If you want to run SequenceServer 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 (see below).
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 will log verbosely.
# Run SequenceServer in development mode bundle exec bin/sequenceserver -D
If you want to modify and build frontend code, you will additionally need Node and npm. You can then run a watch server that will automatically build any changes you make the frontend code:
# Install frontend dependencies npm install # Run watch server to automatically build changes to the frontend code npm run-script watch
Alternatively, you can manually build the frontend code after you have made your changes:
# Build minified JS and CSS bundles npm run-script build
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. Tests are run automatically when you open a pull-request (see Getting code merged section below) but 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
We use CodeClimate for static code analysis. CodeClimate is run automatically when you open a pull-request (see Getting code merged section below) but it may be desirable sometimes to run it locally.
For this, first install CodeClimate following the instructions at https://github.com/codeclimate/codeclimate.
Once CodeClimate is installed, install the required codeclimate 'engines':
To run all the style checkers:
To run eslint:
codeclimate analyze -e eslint
To run rubocop:
codeclimate analyze -e rubocop
stylelint is used for CSS:
codeclimate analyze -e stylelint
The above commands respect the respective style checker's config files, e.g., .rubocopy.yml for Rubocop and so on.
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.