One Python interface for every lab robot

PyLabRobot is an open-source, hardware-agnostic library for liquid handlers, plate readers, centrifuges, pumps, scales, heater shakers and more. Write a protocol once, run it on any supported machine, on any operating system.

pip install pylabrobot

Used by

PyLabRobot runs experiments in academic labs, startups and pharma.

MIT Retro Biosciences T-Therapeutics Duke Cheshire Labs Pioneer Labs Google X Constructive Bio UKM Biofoundry Sanofi Bio-Techne Adaptyv Bio

Supported by

Companies that support the development of PyLabRobot.

Inheco Tek-Matic Byonoy Nugget Scientific Alpaqua Brooks QInstruments

Same protocol, different robot

Protocols are written against a universal API. Switching from a Hamilton STAR to an Opentrons or Tecan is a one-line change to the backend. Run commands interactively in Jupyter or the Python REPL and iterate in seconds instead of minutes.

Liquid handling guide →
from pylabrobot.liquid_handling import LiquidHandler
from pylabrobot.liquid_handling.backends import STARBackend
from pylabrobot.resources import Deck

deck = Deck.load_from_json_file("hamilton-layout.json")
lh = LiquidHandler(backend=STARBackend(), deck=deck)
await lh.setup()

# move 100 uL from A1 to A2
await lh.pick_up_tips(deck.get_resource("tip_rack")["A1"])
await lh.aspirate(deck.get_resource("plate")["A1"], vols=100)
await lh.dispense(deck.get_resource("plate")["A2"], vols=100)
await lh.return_tips()

Why PyLabRobot

An alternative to proprietary vendor software that gives you full control over your lab.

Hardware agnostic

A single interface for liquid handlers, plate readers, pumps, scales, heater shakers and dozens of other devices.

Cross-platform

Runs on Windows, macOS and Linux, where most vendor software is Windows-only.

Interactive

Send atomic commands from a Jupyter notebook and see the result immediately. No compile-and-run cycle.

Just Python

Write Turing-complete protocols with loops, feedback and any Python package: data analysis, ML, your LIMS.

Open source

MIT licensed and free to use. Read the code, fix what you need, and share protocols with others.

Active community

Get help on the forum, and contribute. Most pull requests are reviewed and merged within a day.

Supported machines

PyLabRobot talks directly to devices from over 30 manufacturers, often at the firmware level.

80+devices
30+manufacturers
25+device types
3operating systems
HamiltonTecanOpentronsBeckman CoulterAgilentBioTekBMG LabtechMolecular DevicesThermo FisherInhecoLiconicAzentaBrooksHighRes BiosolutionsMettler ToledoRevvitySartoriusQInstrumentsCole ParmerByonoyKeyenceUFACTORY…

See the full list of machines →

Develop without a robot

The browser-based Visualizer shows the state of the deck as your protocol runs. Use the simulator backend to develop and test protocols before touching real hardware.

Read the docs →
PyLabRobot Visualizer showing a liquid handler deck

Cite PyLabRobot

If PyLabRobot helps your research, please cite the paper.

PyLabRobot: An open-source, hardware-agnostic interface for liquid-handling robots and accessories

Wierenga, R., Golas, S., Ho, W., Coley, C., & Esvelt, K. (2023). Device, 1(4), 100111.