What is PyHamilton?

PyHamilton is a Python interface for controlling Hamilton liquid-handling robots. We believe the flexibility of a modern programming interface provides tremendous benefits for automating diverse workflows in molecular and cell biology.

Get PyHamilton Here: GitHub - dgretton/pyhamilton: Python for Hamilton liquid handling robots

When/Can I dynamically load the deck file with scripting commands?

I’m not sure what you mean by dynamically here. We load references to deck resources at run-time in PyHamilton, which I’d consider dynamic but probably not what you are looking for. What is the corresponding Venus behavior (if any)?

I mean dynamically by, never having to create a deck layout in VENUS to gain value from the scripting capabilities*

Liquid handling is (especially on a Hamilton) is 80% good deck creation, on a Hamilton this means declaring labware and carriers and sequence that essentially reference labware on the carriers, and 20% execution of motion.

By “execution” I mean parameter tuning to achieve the intent and timing of the movements.

Hamilton and TECAN are almost the worst/best about this because the deck can be defined so specifically for a given workflow, unlike a Lynx or Biomek where deck spots are fixed, these other platforms literal value gain is the ability for labs to redefine where labware can be placed.

If all I want is a static deck I never change to load different labware on, why go Hamilton or TECAN at all?

Oh yes this is just about possible with some of the new features we’re working on (haven’t dropped yet).

Essentially you can define all of the resources on a deck in a hierarchical tree of parent-child relations where each relation entails a coordinate transformation. So, a plate carrier will be a child for a guiderail. This confers a specific coordinate transformation to the plate carrier. A plate will be a child of a plate carrier. A well is a child of a plate.

Labware is so uniform and regular that we can easily transform a command like aspirate from well A3 of plate 1 into aspirate from position (x,y,z). Once this calculation is possible we can discard the layfile entirely. All deck resources can be declared dynamically.


Need to keep in mind when doing this that a Hamilton can only barcode from certain types of plates from specific types of carriers