• Stars
    star
    268
  • Rank 152,296 (Top 4 %)
  • Language
    JavaScript
  • License
    GNU Affero Genera...
  • Created almost 14 years ago
  • Updated 24 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Intuitive graphical web interface for running BLAST bioinformatics tool (i.e. have your own custom NCBI BLAST site!)

gem version

coverage build status 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:

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/

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

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

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

More Repositories

1

flo

Same species annotation lift over pipeline.
Ruby
95
star
2

oswitch

Provides access to complex Bioinformatics software (even BioLinux!) in just one command.
Ruby
76
star
3

genevalidator

GeneValidator: Identify problems with predicted genes
Ruby
44
star
4

afra

Genome Annotation for the Masses
JavaScript
36
star
5

genevalidatorapp

A web wrapper for GeneValidator
JavaScript
11
star
6

genomicscourse

For QMUL's Genome Bioinformatics MSc module BIO721P & SIB's Spring school in bioinfo & population genomics
HTML
11
star
7

rubyscholar

Scrape Google Scholar Profile into a custom HTML using Ruby (Nokogiri)
Ruby
9
star
8

NpSearch

NpSearch: Search for Neuropeptides
Ruby
7
star
9

wurmlab.github.io

Wurm lab website
HTML
7
star
10

Bter_neonicotinoid_exposure_experiment

Caste- and pesticide-specific effects of neonicotinoid pesticide exposure on gene expression in bumblebees
R
5
star
11

CompareGenomeQualities

Reference free comparison of genome assemblies
Shell
5
star
12

SBC361-programming-in-R

QMUL's programming in R course
CSS
4
star
13

QMUL-MSc-Programming-in-R-and-Using-Linux

R
4
star
14

bibtexJournalConverter

Converts bibtex .bib journal entries from long to short journal title and vice-versa. Can also remove '.' from abbreviated journal titles.
Ruby
3
star
15

tidbits

Ruby
3
star
16

Dockerfiles

Dockerfiles
Shell
2
star
17

templates

Templates for applications and reports.
Makefile
2
star
18

bioinformaticianad

Hiring a genomicist for QM London
Ruby
1
star
19

2022-amel_bter_expression_nachrs

Comparative expression analysis of nAChR subunit genes in Apis mellifera and Bombus terrestris
Shell
1
star
20

Fire_ant_viral_load

Shell
1
star
21

2019-11-allelic_bias_in_fire_ant_supergene

HTML
1
star
22

2021-fire-ant-social-supergene-introgression

Introgression events analysis of Solenopsis sp. supergene.
Shell
1
star
23

genevalidatorappAPI

An API for GeneValidatorApp
HTML
1
star