Liquid Handling
Basic pipetting
A tutorial on basic aspiration and dispense operations using liquid classes.
In this guide a deck with a plate, tips and a trough is created. Tips are picked up to aspirate liquid from the trough using a predefined liquid class and then dispensed into a plate well.
Prerequisites
- A switched on Microlab STAR device
- A tip carrier, standard tip rack, and standard tips
- A plate carrier, plate, a trough
- A running Microlab STAR connector
- Basic understanding of how labware is used (See Importing standard labware)
- Basic understanding of the liquid handler class (See Getting started with liquid handlers)
- Basic understanding of tip handling (See Tip handling)
Power On the System
Ensure that the Microlab STAR is powered on and ready for operation. Verify that the connector is running and connected to the UniteLabs platform.
from unitelabs.sdk import Client
from unitelabs.liquid_handling.hamilton import MicrolabSTAR
from unitelabs.inout import create_remote_connection
client = Client()
# Initialize the Hamilton Microlab STAR
hamilton = MicrolabSTAR(
transport_factory=create_remote_connection,
client=client,
name="Microlab STAR",
)
await hamilton.initialize()
Arrange the Deck
Arrange the deck layout using the components from the labware library. This guide uses
- a tip carrier with one tip rack filled with standard tips (300 μL) and
- a plate carrier with one standard 96 well microtiter plate and a standard 300 ml trough filled with water.
from unitelabs.labware import Liquid, Standard96Plate, StandardTrough, Vector
from unitelabs.labware.hamilton import PLT_CAR_L5MD_A00, TIP_CAR_480_A00, StandardTip, StandardTipRack
# Tip carrier
tip_carrier = TIP_CAR_480_A00()
tip_rack = StandardTipRack(filled_with=StandardTip)
tip_carrier[0] = tip_rack
hamilton.deck.add(tip_carrier, track=7)
# Plate carrier
plate_carrier = PLT_CAR_L5MD_A00()
plate = Standard96Plate()
trough = StandardTrough()
trough.container.add_liquid(Liquid.WATER, 150_000)
plate_carrier[0] = plate
plate_carrier[1] = trough
hamilton.deck.add(plate_carrier, track=1)
Aspirate
Make sure to pick up tips with the channels first:
await hamilton.pipettes.pick_up_tips_from(channels=range(8), rack=tip_rack)
Use the channels to each aspirate 100 µl of water from the trough.
from unitelabs.labware.hamilton import LiquidClass
liquid_class = LiquidClass.StandardVolume_Water_DispenseJet_Empty()
await hamilton.pipettes.aspirate(
fillables=trough,
channels=range(8),
volumes=100,
liquid_class=liquid_class
)
Check the current volume of a channel.
current_volume = await hamilton.pipettes[0].current_volume()
print(f"{current_volume} µl")
# 104.928380 µl
Dispense
Dispense the water from each channel into a well of the plate.
await hamilton.pipettes.dispense(
fillables=plate["A1":"I1"],
channels=range(8),
volumes=100,
liquid_class=liquid_class
)