The Aquarium Lab Operating System
Clone or download
Failed to load latest commit information.
app Merge branch 'master' of Sep 28, 2018
config item history tracks collection + item/collection methods Sep 17, 2018
db Migrated dump.sql to collections2.0 Aug 22, 2018
docker Add new pcr protocol to dump Sep 14, 2018
docs Remove beginning of protocols documentation org Oct 10, 2018
lib Fix incorrect uses of @option tag Sep 28, 2018
log This should not be tracked Aug 9, 2017
public Cute 404, 422, and 500 pages Aug 26, 2018
script Remove freeze string literal pragma May 31, 2018
spec Apply blockalignment auto correct Oct 4, 2018
test Remove freeze string literal pragma May 31, 2018
ui fix and test for when you delete an item associated with an operation Sep 27, 2018
vendor deleted old useless stuff Mar 13, 2017
.bowerrc typo Mar 19, 2017
.dockerignore Add Docker configuration for development mode Jun 27, 2018
.gitignore Front end testing with cyprus Aug 24, 2018
.rspec rspec, ispec, and part Jun 29, 2015
.rubocop.yml Rubocop style (#290) May 29, 2018
.rubocop_todo.yml Apply blockalignment auto correct Oct 4, 2018
.ruby-gemset add ruby versioning Dec 24, 2015
.ruby-version Update ruby version to 2.3.7 Jul 12, 2018
.solargraph.yml Add solargraph config file Jun 11, 2018
.yardopts Force yardoc to use markdown Jun 27, 2018
Dockerfile Install npm seperately from nodejs Oct 3, 2018
Gemfile Update mysql2 version to 0.4.10 Oct 3, 2018 Update (#320) Sep 21, 2018
Rakefile Remove freeze string literal pragma May 31, 2018
bower.json Front end testing with cyprus Aug 24, 2018 Remove freeze string literal pragma May 31, 2018 Remove unecessary command from Aug 22, 2018 Update license dates Mar 19, 2018

AQUARIUM : The Laboratory Operating System

Aquarium allows a researcher to specify precisely how to perform an experimental protocol so that lab personnel will run the protocol the same way, every time.

Protocols, written in a Ruby DSL called Krill, encode how to manipulate Aquarium's inventory system (LIMS), compute formulae such as volumes, molarities, temperatures, and timing, as well as present lab technicians with images and detailed instructions. Protocols define formal unit operation types with typed inputs and outputs – allowing the researcher to construct a complex workflow by linking an output sample of one protocol to an input of another using the Aquarium graphical workflow designer.

Protocols and processes are scheduled and presented to technicians on touchscreen monitors placed throughout the lab. Every step is logged: who performed the step, which items were used, what data was gathered by which instruments, and how long it took -- data that can be used to debug and improve the experiment. More importantly, Aquarium provides a complete, executable description of the results obtained – one that could be used by another lab running Aquarium to reproduce the result.

Aquarium is the operating system of the UW BIOFAB, a service of the Klavins Lab at the University of Washington.

Versions and Releases

  • The latest version is available here. If you would like to stay current with bug fixes, the master branch should always be stable and only a few commits ahead of the latest version. If you would like to play with the latest new features or help develop Aquarium, check out the staging branch.


Aquarium is a Klavins Lab project.