Skip to content

Software for writing protocols and running them on the Opentrons Flex and Opentrons OT-2

License

Notifications You must be signed in to change notification settings

Opentrons/opentrons

Repository files navigation

Opentrons Platform

Travis CI AppVeyor Codecov

Overview

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!

Opentrons API

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:

Opentrons App

Easily upload a protocol, calibrate positions, and run your experiment from your computer.

ot-app

Contributing

We love contributors! Here is the best way to work with us:

  1. Filing a bug report. We will fix these as quickly as we can, and appreciate your help uncovering bugs in our code.

  2. 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 launching it into our product!

For more information, please read the contributing guide.

Using BETA versions

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:

Set up your development environment

Your computer will need the following tools installed to be able to develop with the Opentrons platform:

  • 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
  • yarn - JavaScript package manager

  • GNU Make - we use Makefiles to manage our builds

Once you're set up, clone the repository, install all project dependencies, and run the tests to get started:

git clone https://github.com/Opentrons/opentrons.git
cd opentrons
make install
make test

Start the Opentrons API

To run the Opentrons API in development mode:

Install the dependencies and API itself.

# change into the API directory
$ cd api

# verify API is working by printing the version
python -c 'import opentrons; print(opentrons.__version__)'

# run API with virtual robot
ENABLE_VIRTUAL_SMOOTHIE=true make dev
# run API with robot's motor driver connected via USB to UART cable
make dev

You may also test and lint the API code:

make test

If you'd like to test your code on a real robot, you can push and run your current API code to that robot with:

make push

Start the Opentrons App

See the App README for instructions.

Enjoy!