Skip to content

KatyTaylor/sequencescape

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo Sequencescape

Build Status Maintainability Test Coverage Yard Docs

Sequencescape is a cloud based and highly extensible LIMS system for use in labs with large numbers of samples.

  • Work order tracking
  • Sample and study management
  • Capacity management for pipelines
  • Accounting
  • Accessioning for samples and studies at the EBI ENA/EGA
  • Dynamically defined workflows for labs with support for custom processes
  • Labware and freezer tracking
  • API support for 3rd party applications

Current installation supports a million samples and 1.3 million pieces of labware and is used in a organisation of 900 people.

Contents

Documentation

In addition to the externally hosted YARD docs, you can also run a local server:

yard server -r --gems -m sequencescape .

You can then access the Sequencescape documentation through: http://localhost:8808/docs/sequencescape Yard will also try and document the installed gems: http://localhost:8808/docs

Requirements

The following tools are required for development:

  • ruby (version defined in the .ruby-version)
  • yarn
  • node (version defined in the .nvmrc)
  • mysql client libraries - if you do not want to install mysql server on your machine, consider using mysql-client: brew install mysql-client. Alternatively, to install the MySQL required by Sequencescape (currently 5.7) use this helpful link.

Getting started

Installing ruby

It is strongly recommended that you use a ruby version manager such as RVM or rbenv to manage the Ruby version you are using. The ruby version required should be found in .ruby-version.

RVM

...

rbenv

rbenv install <ruby_version>

Installing gems

Bundler is used to install the required gems:

    gem install bundler
    bundle install

Adjusting config

Copy the config/aker.example.yml file to config/aker.example.yml.

The config/database.yml file saves the list of databases.

Default setup

  1. Create the database tables

     bundle exec rake db:setup
    
  2. Create an admin user account and a few example studies and plates

     bundle exec rake working:setup
    
  3. Install webpacker and the required JS libraries

     bundle exec rails webpacker:install
    
  4. Start rails

     bundle exec rails server
    

Once setup, the default user/password is admin/admin.

Delayed job

For background processing Sequencescape uses delayed_job to ensure that the server is running. It is strongly recommended to start one for Sequencescape to behave as expected.

bundle exec rake jobs:work

OR

bundle exec ./script/delayed_job start

Testing

Testing is done in three ways; using rspec, rails test and feature tests.

  1. To run the rspec tests (found in rspec/ dir.):

     bundle exec rspec
    
  2. To run the rails tests (found in tests/ dir.):

     bundle exec rake test
    

Supporting applications

There are a number of services that are needed in certain parts of Sequencescape these are listed below.

Barcode printing

Barcode printing is carried out by a separate REST service, PrintMyBarcode. The source for this is also available on GitHub sanger/print_my_barcode

Plate barcode service

Due to DNA plate barcode series being stored in a legacy system in Sanger you are required to use a webservice for supplying numbers for plates with a simple service.

Data warehousing

There is a client application for building a data warehouse based on the information in Sequencescape. This is driven asynchronously via RabbitMQ.

See out various clients on GitHub:

sanger/unified_warehouse

sanger/event_warehouse

Miscellaneous

Ruby warnings and rake 11

Rake 11 enables ruby warnings by default when running the test suite. These can be disabled with RUBYOPT='-W0', (eg. RUBYOPT='-W0' bundle exec rake test).

Currently these warnings are excessive, covering both our own code and external dependencies. As it stands it makes the output of the test suite unusable in travis, as it fills the buffer. These warnings will need to be fixed, especially in our own code.

NPG - Illumina tracking software

For tracking illumina instruments you need the NPG systems. NPG is linked to Sequencescape via a cluster formation batch which represents a flowcell.

NPG Software

Troubleshooting

MySQL errors when installing

If you are using homebrew with rbenv and run into errors relating to SSL, have a look here

Updating the table of contents

To update the table of contents after adding things to this README you can use the markdown-toc node module. To install it, make sure you have install the dev dependencies from yarn. To update the table of contents, run:

./node_modules/.bin/markdown-toc -i README.md

CI

The Travis builds use the Knapsack gem to reduce build time by parallelizing the RSpec and Cucumber tests. When a Travis build runs, Knapsack uses the knapsack_rspec_report.json and knapsack_cucumber_report.json files, which list out test run times, to split the tests into equal length jobs. These report files don't need to be regenerated if tests are deleted or added unless the tests in question are particularly slow and will therefore impact the build times significantly. To regenerate a report file, run one of the following, and commit the resulting changes to the report files:

KNAPSACK_GENERATE_REPORT=true bundle exec rspec
KNAPSACK_GENERATE_REPORT=true bundle exec cucumber

Copyright (c) 2007, 2010-2019 Genome Research Ltd.

Packages

No packages published

Languages

  • Ruby 75.7%
  • Gherkin 11.4%
  • HTML 9.9%
  • JavaScript 2.0%
  • Other 1.0%