Opentrons makes robots for biologists.
Our mission is to provide the scientific community with a common platform to easily share protocols and reproduce each other's work. Our robots automate experiments that would otherwise be done by hand, allowing our users to spend more time pursuing answers to the 21st century’s most important questions, and less time pipetting.
This repository contains the source code for the Opentrons API and OT App. We'd love for you to to explore, hack, and build upon them!
The Opentrons API is a simple framework designed to make writing automated biology lab protocols easy.
We've designed it in a way we hope is accessible to anyone with basic computer and wetlab skills. As a bench scientist, you should be able to code your automated protocols in a way that reads like a lab notebook.
pipette.aspirate(tube_1).dispense(tube_2)
That is how you tell the Opentrons robot to pipette its max volume from one tube to another. Learn more here:
Easily upload a protocol, calibrate positions, and run your experiment from your computer.
We love contributors! Here is the best way to work with us:
-
Filing a bug report. We will fix these as quickly as we can, and appreciate your help uncovering bugs in our code.
-
Submit a pull request with any new features you've added to a branch of the API or App. We will reach out to talk with you about integration testing and launcing it into our product!
If you want to build the platform and play with the latest development version we are working on before it is launched, here are the steps:
- macOS 10.11+, Linux, or Windows 10 with Cygwin
- Python 3.5.3 (pyenv is optional, but recommended)
# pyenv on macOS: install with shared framework option
$ env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.5.3
# pyenv on Linux: install with shared library option
$ env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.5.3
- Node v8 LTS (Carbon) (nvm is optional, but recommended)
# nvm on macOS and Linux
# installs version from .nvmrc ("8")
$ nvm install && nvm use
- GNU Make: both the API and app manage their builds with Makefiles
Clone the repository to get started.
$ git clone https://github.com/OpenTrons/opentrons.git
Install the dependencies and API itself.
# change into the API directory
$ cd api
# install dependencies
$ make install
# verify
$ python -c 'import opentrons; print(opentrons.__version__)' # > prints version
# push API to a USB connected robot
$ make push
# run with a virtual robot
$ ENABLE_VIRTUAL_SMOOTHIE=true make dev
You may also test, lint, and build the API exectutable:
# test and lint the code
$ make test
# build the API executable
$ make exe
See the App README for instructions.
Enjoy!