pylabrobot.liquid_handling.liquid_handler.LiquidHandler.aspirate
pylabrobot.liquid_handling.liquid_handler.LiquidHandler.aspirate#
- async LiquidHandler.aspirate(resources: Union[pylabrobot.resources.container.Container, Sequence[pylabrobot.resources.container.Container]], vols: Union[List[float], float], use_channels: Optional[List[int]] = None, flow_rates: Union[float, List[Union[float, pylabrobot.default._DefaultType]], pylabrobot.default._DefaultType] = Default, end_delay: float = 0, offsets: Union[pylabrobot.resources.coordinate.Coordinate, pylabrobot.default._DefaultType, Sequence[Union[pylabrobot.resources.coordinate.Coordinate, pylabrobot.default._DefaultType]]] = Default, liquid_height: Union[float, pylabrobot.default._DefaultType, List[Union[float, pylabrobot.default._DefaultType]]] = Default, **backend_kwargs)#
Aspirate liquid from the specified wells.
Examples
Aspirate a constant amount of liquid from the first column:
>>> lh.aspirate(plate["A1:H1"], 50)
Aspirate an linearly increasing amount of liquid from the first column:
>>> lh.aspirate(plate["A1:H1"], range(0, 500, 50))
Aspirate arbitrary amounts of liquid from the first column:
>>> lh.aspirate(plate["A1:H1"], [0, 40, 10, 50, 100, 200, 300, 400])
Aspirate liquid from wells in different plates:
>>> lh.aspirate(plate["A1"] + plate2["A1"] + plate3["A1"], 50)
Aspirating with a 10mm z-offset:
>>> lh.aspirate(plate["A1"], vols=50, offsets=[Coordinate(0, 0, 10)])
Aspirate from a blue bucket (big container), with the first 4 channels (which will be spaced equally apart):
>>> lh.aspirate(blue_bucket, vols=50, use_channels=[0, 1, 2, 3])
- Parameters
resources (Union[pylabrobot.resources.container.Container, Sequence[pylabrobot.resources.container.Container]]) – A list of wells to aspirate liquid from. Can be a single resource, or a list of resources. If a single resource is specified, all channels will aspirate from the same resource.
vols (Union[List[float], float]) – A list of volumes to aspirate, one for each channel. If
vols
is a single number, then all channels will aspirate that volume.use_channels (Optional[List[int]]) – List of channels to use. Index from front to back. If
None
, the firstlen(wells)
channels will be used.flow_rates (Union[float, List[Union[float, pylabrobot.default._DefaultType]], pylabrobot.default._DefaultType]) – the aspiration speed. In ul/s. If
Default
, the backend default will be used.end_delay (float) – The delay after the last aspiration in seconds, optional. This is useful for when the tips used in the aspiration are dripping.
offsets (Union[pylabrobot.resources.coordinate.Coordinate, pylabrobot.default._DefaultType, Sequence[Union[pylabrobot.resources.coordinate.Coordinate, pylabrobot.default._DefaultType]]]) – List of offsets for each channel, a translation that will be applied to the aspiration location. If
None
, no offset will be applied.liquid_height (Union[float, pylabrobot.default._DefaultType, List[Union[float, pylabrobot.default._DefaultType]]]) – The height of the liquid in the well, in mm.
backend_kwargs – Additional keyword arguments for the backend, optional.
- Raises
RuntimeError – If the setup has not been run. See
setup()
.ValueError – If all channels are
None
.