Skip to content

Python API for writing protocols and running them on Opentrons robots

License

Notifications You must be signed in to change notification settings

Snewk/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 launcing it into our product!

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

  • 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

Start the Opentrons API

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

Start the Opentrons App

See the App README for instructions.

Enjoy!

About

Python API for writing protocols and running them on Opentrons robots

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 57.8%
  • JavaScript 32.6%
  • CSS 4.9%
  • HTML 1.6%
  • Makefile 1.4%
  • Shell 0.9%
  • Batchfile 0.8%