Sign inSign up

wurmlab/sequenceserver

By wurmlab

•Updated almost 2 years ago

Intuitive local web frontend for the BLAST bioinformatics tool http://www.sequenceserver.com

Image
Integration & delivery
Data science
Web servers
13

1M+

wurmlab/sequenceserver repository overview

gem version

coverage gitter chat

⁠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 our paper: Sequenceserver: A modern graphical user interface for custom BLAST databases. Molecular Biology and Evolution (2019).⁠

⁠Installation

For installation instructions and how to use SequenceServer please see https://sequenceserver.com/⁠ - instructions for independently installing open-source sequenceserver are linked from the footer.

If you want to run SequenceServer directly from source code, please see 'Develop and contribute' section below.

We also offer a hosted cloud blast service⁠ for those who prefer fully point-and-click installation and want to avoid the complexities and costs of running a server. Running the cloud service enables us to further support the development of SequenceServer.

⁠Referral scheme

Refer friends or colleagues⁠ to SequenceServer Cloud and earn up to $400 per person who signs up (as of 2023-10; exact terms may change).

⁠Release notes

New releases are announced on GitHub release page⁠ and on our Support Page⁠.

⁠Reporting issues

Please report any issues here: https://github.com/wurmlab/sequenceserver/issues⁠ or on the community support forum⁠

⁠Develop and contribute

To develop and contribute, you will need to run SequenceServer from source (see below).

⁠Run SequenceServer from source code

You will need Ruby⁠ and RubyGems⁠:

# 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 by running bundle install --without=development.

⁠Run SequenceServer from Docker

Having installed Docker⁠, to run SequenceServer locally as a Docker container, using the example database from the ncbi-blast+ debian package⁠:

  • Change from final at the end of the Dockerfile to from dev.
  • Build the image with:
docker build -t sequenceserver .
  • Run a container with...
docker run --rm -it -p 4567:4567 sequenceserver
  • then select the defaults when prompted.

Otherwise, a database will need to be copied to the db volume.

⁠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

⁠Testing

⁠Ruby

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

⁠Javascript

Unit tests for the React frontend are written using React Testing Library and jest.

One option for installing jest: npm install --save-dev jest

To run a single test :

npm run test -e "test name"

To run all tests in a single file:

npm run test file_name

To run all tests:

npm run test

⁠Linting

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':

codeclimate engines:install

To run all the style checkers:

codeclimate analyze

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.

⁠GitHub Workflows

To run workflows locally, ensure nektos/act⁠ is installed as a GitHub CLI extension⁠.

Then, for instance, .github/workflows/test.yml would be run by:

gh act -j test

action-validator⁠ is claimed as a yaml validator for GitHub workflows.

⁠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 rubocop and eslint compliant, and hard-wrapped to 80 chars per line.

If you change frontend code (JavaScript and CSS), please build (i.e., minify and compress) and commit the resulting JS and CSS bundles before opening a pull-request. This is because SequenceServer is run in production mode by the test suite.

⁠Contact

Tag summary

Content type

Image

Digest

sha256:0040a33e7…

Size

476 MB

Last updated

almost 2 years ago

docker pull wurmlab/sequenceserver