pylabrobot.liquid_handling.liquid_handler.LiquidHandler.aspirate#

async LiquidHandler.aspirate(resources: Sequence[Container], vols: List[float], use_channels: List[int] | None = None, flow_rates: List[float | None] | None = None, offsets: List[Coordinate] | None = None, liquid_height: List[float | None] | None = None, blow_out_air_volume: List[float | None] | None = None, spread: Literal['wide', 'tight', 'custom'] = 'wide', **backend_kwargs)#

Aspirate liquid from the specified wells.

Examples

Aspirate a constant amount of liquid from the first column:

>>> await lh.aspirate(plate["A1:H1"], 50)

Aspirate an linearly increasing amount of liquid from the first column:

>>> await lh.aspirate(plate["A1:H1"], range(0, 500, 50))

Aspirate arbitrary amounts of liquid from the first column:

>>> await lh.aspirate(plate["A1:H1"], [0, 40, 10, 50, 100, 200, 300, 400])

Aspirate liquid from wells in different plates:

>>> await lh.aspirate(plate["A1"] + plate2["A1"] + plate3["A1"], 50)

Aspirating with a 10mm z-offset:

>>> await 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):

>>> await lh.aspirate(blue_bucket, vols=50, use_channels=[0, 1, 2, 3])
Parameters:
  • resources (Sequence[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 (List[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 (List[int] | None) – List of channels to use. Index from front to back. If None, the first len(wells) channels will be used.

  • flow_rates (List[float | None] | None) – the aspiration speed. In ul/s. If None, the backend default will be used.

  • offsets (List[Coordinate] | None) – List of offsets for each channel, a translation that will be applied to the aspiration location.

  • liquid_height (List[float | None] | None) – The height of the liquid in the well wrt the bottom, in mm.

  • blow_out_air_volume (List[float | None] | None) – The volume of air to aspirate after the liquid, in ul. If None, the backend default will be used.

  • spread (Literal['wide', 'tight', 'custom']) – Used if aspirating from a single resource with multiple channels. If “tight”, the channels will be spaced as close as possible. If “wide”, the channels will be spaced as far apart as possible. If “custom”, the user must specify the offsets wrt the center of the resource.

  • backend_kwargs – Additional keyword arguments for the backend, optional.

Raises: