Skip to content

pipettor

Pipettor module exposing the Pipettor class for multi-channel tip-based liquid handling.

Pipettor

Bases: AspirateMixin, DispenseMixin, MixMixin, TipHandlingMixin, PressureOverLiquidControl

Festo multi-channel pressure-over-liquid pipettor.

Composes the full set of fluid-handling capabilities onto the PressureOverLiquidControl engine:

Construction is handled entirely by PressureOverLiquidControl; component_id defaults to "pipettor_1" (derived from component_type).

Examples:

Aspirate, mix, then dispense on a mounted pipettor:

1
2
3
4
5
6
7
8
>>> import json
>>> from fluid_control import Pipettor
>>> with open("pipettor-config.json") as fh:
...     config = json.load(fh)
>>> pipettor = Pipettor(config=config, component_id="pipettor")
>>> pipettor.aspirate({1: {"volume": 50.0, "liquid_class": "water"}})
>>> pipettor.mix({1: {"volume": 20.0, "liquid_class": "water"}}, cycles=3)
>>> pipettor.dispense({1: {"volume": 50.0, "liquid_class": "water"}})
Source code in src/fluid_control/pipettor.py
class Pipettor(AspirateMixin, DispenseMixin, MixMixin, TipHandlingMixin, PressureOverLiquidControl):
    """
    Festo multi-channel pressure-over-liquid pipettor.

    Composes the full set of fluid-handling capabilities onto the
    [`PressureOverLiquidControl`][fluid_control.fluid_control.PressureOverLiquidControl] engine:

    - ``aspirate`` from [`AspirateMixin`][fluid_control.capabilities.AspirateMixin]
    - ``dispense`` from [`DispenseMixin`][fluid_control.capabilities.DispenseMixin]
    - ``mix`` from [`MixMixin`][fluid_control.capabilities.MixMixin]
    - ``pickup_tips`` / ``eject_tips`` from [`TipHandlingMixin`][fluid_control.capabilities.TipHandlingMixin]

    Construction is handled entirely by
    [`PressureOverLiquidControl`][fluid_control.fluid_control.PressureOverLiquidControl]; ``component_id``
    defaults to ``"pipettor_1"`` (derived from ``component_type``).

    Examples:
        Aspirate, mix, then dispense on a mounted pipettor:

        >>> import json
        >>> from fluid_control import Pipettor
        >>> with open("pipettor-config.json") as fh:
        ...     config = json.load(fh)
        >>> pipettor = Pipettor(config=config, component_id="pipettor")
        >>> pipettor.aspirate({1: {"volume": 50.0, "liquid_class": "water"}})
        >>> pipettor.mix({1: {"volume": 20.0, "liquid_class": "water"}}, cycles=3)
        >>> pipettor.dispense({1: {"volume": 50.0, "liquid_class": "water"}})

    """

    component_type: str = "pipettor"