A hardware agnostic platform for lab automation
Project description
PyLabRobot
Docs | Forum | Installation | Getting started
What is PyLabRobot?
PyLabRobot is a hardware agnostic, pure Python library for liquid handling robots and other lab automation equipment. Read the paper in Device.
Liquid handling robots
PyLabRobot provides a layer of general-purpose abstractions over robot functions, with various device drivers for communicating with different kinds of robots. Right now we only have drivers for Hamilton, Tecan and Opentrons liquid handling robots, but we will soon have drivers for many more. The Hamiton and Tecan backends provide an interactive firmware interface that works on Windows, macOS and Linux. The Opentrons driver is based on the Opentrons HTTP API. We also provide a browser-based Visualizer which can visualize the state of the deck during a run, and testing backends which do not require access to a robot.
Here's a quick example showing how to move 100uL of liquid from well A1 to A2 using firmware on Hamilton STAR (this will work on any operating system!):
from pylabrobot import LiquidHandler
from pylabrobot.liquid_handling.backends import STAR
from pylabrobot.resources import Deck
deck = Deck.load_from_json_file("hamilton-layout.json")
lh = LiquidHandler(backend=STAR(), deck=deck)
await lh.setup()
await lh.pick_up_tips(lh.deck.get_resource("tip_rack")["A1"])
await lh.aspirate(lh.deck.get_resource("plate")["A1"], vols=100)
await lh.dispense(lh.deck.get_resource("plate")["A2"], vols=100)
await lh.return_tips()
To run the same procedure on an Opentrons, change the following lines:
- from pylabrobot.liquid_handling.backends import STAR
+ from pylabrobot.liquid_handling.backends import OpentronsBackend
- deck = Deck.load_from_json_file("hamilton-layout.json")
+ deck = Deck.load_from_json_file("opentrons-layout.json")
- lh = LiquidHandler(backend=STAR(), deck=deck)
+ lh = LiquidHandler(backend=OpentronsBackend(host="x.x.x.x"), deck=deck)
Or Tecan (also works on any operating system!):
- from pylabrobot.liquid_handling.backends import STAR
+ from pylabrobot.liquid_handling.backends import EVO
- deck = Deck.load_from_json_file("hamilton-layout.json")
+ deck = Deck.load_from_json_file("tecan-layout.json")
- lh = LiquidHandler(backend=STAR(), deck=deck)
+ lh = LiquidHandler(backend=EVO(), deck=deck)
Plate readers
PyLabRobot also provides a layer of general-purpose abstractions for plate readers, currently with just a driver for the ClarioStar. This driver works on Windows, macOS and Linux. Here's a quick example showing how to read a plate using the ClarioStar:
from pylabrobot.plate_reading import PlateReader, ClarioStar
pr = PlateReader(name="plate reader", backend=ClarioStar())
await pr.setup()
# Use in combination with a liquid handler
lh.assign_child_resource(pr, location=Coordinate(x, y, z))
lh.move_plate(lh.deck.get_resource("plate"), pr)
data = await pr.read_luminescence()
Resources
Documentation
Support
- forums.pylabrobot.org for questions and discussions.
- GitHub Issues for bug reports and feature requests.
Citing
If you use PyLabRobot in your research, please cite the following:
@article{WIERENGA2023100111,
title = {PyLabRobot: An open-source, hardware-agnostic interface for liquid-handling robots and accessories},
journal = {Device},
volume = {1},
number = {4},
pages = {100111},
year = {2023},
issn = {2666-9986},
doi = {https://doi.org/10.1016/j.device.2023.100111},
url = {https://www.sciencedirect.com/science/article/pii/S2666998623001709},
author = {Rick P. Wierenga and Stefan M. Golas and Wilson Ho and Connor W. Coley and Kevin M. Esvelt},
keywords = {laboratory automation, open source, standardization, liquid-handling robots},
}
Disclaimer: PyLabRobot is not officially endorsed or supported by any robot manufacturer. If you use a firmware driver such as the STAR driver provided here, you do so at your own risk. Usage of a firmware driver such as STAR may invalidate your warranty. Please contact us with any questions.
Developed for the Sculpting Evolution Group at the MIT Media Lab
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file PyLabRobot-0.1.6.tar.gz
.
File metadata
- Download URL: PyLabRobot-0.1.6.tar.gz
- Upload date:
- Size: 286.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9cf81ad2b16512d9be99cbbb445eff7787c5875337af64849731e51ec40cb9dd |
|
MD5 | 3351e11095b5ea4a621174271e35e46a |
|
BLAKE2b-256 | 07f7dae6de0a3d8f7736078a18d04f1df8ff326da316ea4fddb75bc849e97b81 |
File details
Details for the file PyLabRobot-0.1.6-py3-none-any.whl
.
File metadata
- Download URL: PyLabRobot-0.1.6-py3-none-any.whl
- Upload date:
- Size: 338.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47ed7d92d90551df14721befbb6ee7a9e528f6a21a270f73118e8a87ab23f93a |
|
MD5 | 2fd7e1f135d164d26f6170386c2ed9d6 |
|
BLAKE2b-256 | a193b97ad819fe9d59a5dcc2a7116db7e3492bd7fdc167a389bf76b8662aee5a |