Mixing#
Mixing in PLR is hardware agnostic. You can currently mix before an aspiration or after a dispense by passing the mix
parameter to the corresponding method call.
A standalone mixing operation will be added in the future.
# Example deck setup for STAR. This can be any robot.
from pylabrobot.liquid_handling import LiquidHandler, LiquidHandlerChatterboxBackend
from pylabrobot.resources import STARDeck # as an example
lh = LiquidHandler(backend=LiquidHandlerChatterboxBackend(), deck=STARDeck())
await lh.setup()
from pylabrobot.resources import TIP_CAR_480_A00, hamilton_96_tiprack_1000uL_filter
tip_carrier = TIP_CAR_480_A00(name="tiprack_1")
tip_carrier[0] = tr0 = hamilton_96_tiprack_1000uL_filter(name="tiprack_1_0")
lh.deck.assign_child_resource(tip_carrier, rails=1)
from pylabrobot.resources import PLT_CAR_L5AC_A00, Cor_96_wellplate_360ul_Fb
plate_carrier = PLT_CAR_L5AC_A00(name="plate_carrier_1")
plate_carrier[0] = plate = Cor_96_wellplate_360ul_Fb(name="plate_1")
lh.deck.assign_child_resource(plate_carrier, rails=10)
Setting up the liquid handler.
Resource deck was assigned to the liquid handler.
Resource trash was assigned to the liquid handler.
Resource trash_core96 was assigned to the liquid handler.
Resource waste_block was assigned to the liquid handler.
Resource tiprack_1 was assigned to the liquid handler.
Resource plate_carrier_1 was assigned to the liquid handler.
Mixing#
Import the Mix
object, and pass it to the mix
parameter of LiquidHandler.aspirate and LiquidHandler.dispense as a list, with one object per channel.
await lh.pick_up_tips(tr0["A1"])
Picking up tips:
pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter
p0: tiprack_1_0_tipspot_0_0 0,0,0 HamiltonTip 1065 8 95.1 Yes
from pylabrobot.liquid_handling.standard import Mix
await lh.aspirate(plate["A1"], vols=[100], mix=[Mix(volume=50, repetitions=3, flow_rate=100)])
Aspirating:
pip# vol(ul) resource offset flow rate blowout lld_z
p0: 100.0 plate_1_well_0_0 0,0,0 None None None
await lh.dispense(plate["A1"], vols=[100], mix=[Mix(volume=50, repetitions=3, flow_rate=100)])
Dispensing:
pip# vol(ul) resource offset flow rate blowout lld_z
p0: 100.0 plate_1_well_0_0 0,0,0 None None None
await lh.return_tips()
Dropping tips:
pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter
p0: tiprack_1_0_tipspot_0_0 0,0,0 HamiltonTip 1065 8 95.1 Yes
await lh.stop()
Stopping the liquid handler.