Skip to content

Liquidmover

This module provides a high-level interface for liquid handling operations, including aspirating, dispensing, and tip management.

CLASS DESCRIPTION
LiquidMover

High-level interface for liquid handling operations

Documentation last updated: 2025-06-11

LiquidMover

LiquidMover(
    *args,
    parts: dict[str, Part],
    speed_factor_lateral: float | None = None,
    speed_factor_up: float = 0.2,
    speed_factor_down: float = 0.2,
    speed_factor_pick_tip: float = 0.01,
    tip_approach_distance: float = 20,
    verbose=False,
    **kwargs,
)

Bases: Compound

LiquidMover provides a high-level interface for liquid handling operations

ATTRIBUTE DESCRIPTION
speed_factor_lateral

speed factor for lateral movement

TYPE: float

speed_factor_up

speed factor for upward movement

TYPE: float

speed_factor_down

speed factor for downward movement

TYPE: float

liquid

liquid transfer tool

TYPE: Liquid

mover

movement / translation robot

TYPE: Mover

connection_details

connection details of each part

TYPE: dict

parts

namespace of parts

TYPE: SimpleNamespace[str, Part]

flags

flags of class

TYPE: SimpleNamespace[str, bool]

is_busy

whether any part is busy

TYPE: bool

is_connected

whether all parts are connected

TYPE: bool

verbose

verbosity of class

TYPE: bool

bin_slots

dictionary of bin slots

TYPE: dict[int, Labware]

current_tip_detail

dictionary of current tip details

TYPE: dict[str, str | ndarray]

speed_factor_pick_tip

speed factor to pick up tip

TYPE: float

tip_approach_distance

distance in mm from top to travel down to pick tip

TYPE: float

tip_racks

dictionary of tip racks

TYPE: dict[int, Labware]

tip_lists

dictionary of tip lists

TYPE: dict[int, list[str]]

METHOD DESCRIPTION
align

align the tool tip to the target coordinates, while also considering any additional offset

aspirateAt

aspirate specified volume at target location, at desired speed

dispenseAt

dispense specified volume at target location, at desired speed

touchTip

touch the tip against the inner walls of the well

assignBin

assign a bin by its slot

assignTipRack

assign a tip rack by its slot

attachTip

attach new pipette tip from next available rack position

attachTipAt

attach new pipette tip from specified location

ejectTip

eject the pipette tip at the bin

ejectTipAt

eject the pipette tip at the specified location

findTipRacks

find all tip racks on the deck

resetTips

reset (i.e. clear) all tip racks

returnTip

return current tip to its original rack position

updateStartTip

set the name of the first available pipette tip

Initialize LiquidMover class

PARAMETER DESCRIPTION
parts

dictionary of parts

TYPE: dict[str, Part]

speed_factor_lateral

speed factor for lateral movement. Defaults to None.

TYPE: float DEFAULT: None

speed_factor_up

speed factor for upward movement. Defaults to 0.2.

TYPE: float DEFAULT: 0.2

speed_factor_down

speed factor for downward movement. Defaults to 0.2.

TYPE: float DEFAULT: 0.2

speed_factor_pick_tip

speed factor to pick up tip. Defaults to 0.01.

TYPE: float DEFAULT: 0.01

tip_approach_distance

distance in mm from top to travel down to pick tip. Defaults to 20.

TYPE: float DEFAULT: 20

verbose

verbosity of output. Defaults to False.

TYPE: bool DEFAULT: False

liquid property

liquid: Liquid

Liquid transfer tool

mover property

mover: Mover

Movement / translation robot

align

align(
    coordinates: Sequence[float] | ndarray,
    offset: Sequence[float] = (0, 0, 0),
) -> Position

Align the tool tip to the target coordinates, while also considering any additional offset

PARAMETER DESCRIPTION
coordinates

target coordinates

TYPE: Sequence[float] | ndarray

offset

additional x,y,z offset from tool tip. Defaults to (0,0,0).

TYPE: Sequence[float] DEFAULT: (0, 0, 0)

RETURNS DESCRIPTION
Position

final coordinates of tool tip

TYPE: Position

aspirateAt

aspirateAt(
    coordinates: Sequence[float] | ndarray,
    volume: float,
    speed: float | None = None,
    *,
    channel: int | None = None,
)

Aspirate specified volume at target location, at desired speed

PARAMETER DESCRIPTION
coordinates

target coordinates

TYPE: Sequence[float] | ndarray

volume

volume in uL

TYPE: float

speed

speed to aspirate at (uL/s). Defaults to None.

TYPE: float | None DEFAULT: None

channel

channel to use. Defaults to None.

TYPE: int | None DEFAULT: None

assignBin

assignBin(slot: str, zone: str | None = None)

Assign a bin by its slot

PARAMETER DESCRIPTION
slot

name of slot with bin

TYPE: str

zone

name of zone. Defaults to None.

TYPE: str | None DEFAULT: None

assignTipRack

assignTipRack(
    slot: str,
    zone: str | None = None,
    *,
    use_by_columns: bool = True,
    start_tip: str | None = None,
)

Assign a tip rack by its slot

PARAMETER DESCRIPTION
slot

name of slot with tip rack

TYPE: str

zone

name of zone. Defaults to None.

TYPE: str | None DEFAULT: None

use_by_columns

whether to use tips by columns. Defaults to True.

TYPE: bool DEFAULT: True

start_tip

name of start tip. Defaults to None.

TYPE: str | None DEFAULT: None

attachTip

attachTip() -> ndarray

Attach new pipette tip from next available rack position

RETURNS DESCRIPTION
ndarray

np.ndarray: coordinates of attach tip location

attachTipAt

attachTipAt(
    coordinates: Sequence[float] | ndarray,
    tip_length: float,
) -> ndarray

Attach new pipette tip from specified location

PARAMETER DESCRIPTION
coordinates

coordinates of pipette tip

TYPE: Sequence[float] | ndarray

tip_length

length of pipette tip

TYPE: float

RETURNS DESCRIPTION
ndarray

np.ndarray: coordinates of attach tip location

dispenseAt

dispenseAt(
    coordinates: Sequence[float] | ndarray,
    volume: float,
    speed: float | None = None,
    *,
    channel: int | None = None,
)

Dispense specified volume at target location, at desired speed

PARAMETER DESCRIPTION
coordinates

target coordinates

TYPE: Sequence[float] | ndarray

volume

volume in uL

TYPE: float

speed

speed to dispense at (uL/s). Defaults to None.

TYPE: float | None DEFAULT: None

channel

channel to use. Defaults to None.

TYPE: int | None DEFAULT: None

ejectTip

ejectTip() -> ndarray

Eject the pipette tip at the bin

RETURNS DESCRIPTION
ndarray

np.ndarray: coordinates of eject tip location

ejectTipAt

ejectTipAt(
    coordinates: Sequence[float] | ndarray,
) -> ndarray

Eject the pipette tip at the specified location

PARAMETER DESCRIPTION
coordinates

coordinate of where to eject tip

TYPE: Sequence[float] | ndarray

RETURNS DESCRIPTION
ndarray

np.ndarray: coordinates of eject tip location

findTipRacks

findTipRacks()

Find all tip racks on the deck

resetTips

resetTips()

Reset (i.e. clear) all tip racks

returnTip

returnTip(
    offset_from_top: Sequence[float] | ndarray = (
        0,
        0,
        -20,
    ),
) -> ndarray

Return current tip to its original rack position

PARAMETER DESCRIPTION
offset_from_top

offset from top to eject tip. Defaults to (0,0,-20).

TYPE: Sequence[float] | ndarray DEFAULT: (0, 0, -20)

RETURNS DESCRIPTION
ndarray

np.ndarray: coordinates of eject tip location

touchTip

touchTip(
    well: Well,
    fraction_depth_from_top: float = 0.05,
    safe_move: bool = False,
    speed_factor: float = 0.2,
) -> ndarray

Touch the tip against the inner walls of the well

PARAMETER DESCRIPTION
well

Well object

TYPE: Well

fraction_depth_from_top

fraction of well depth from top to travel down. Defaults to 0.05.

TYPE: float DEFAULT: 0.05

safe_move

whether to move safely (i.e. go back to safe height first). Defaults to False.

TYPE: bool DEFAULT: False

speed_factor

fraction of maximum speed to perform touch tip. Defaults to 0.2.

TYPE: float DEFAULT: 0.2

RETURNS DESCRIPTION
ndarray

np.ndarray: coordinates of top of well

updateStartTip

updateStartTip(start_tip: str)

Set the name of the first available pipette tip

PARAMETER DESCRIPTION
start_tip

well name of the first available pipette tip

TYPE: str