pylabrobot.liquid_handling.liquid_handler.LiquidHandler.transfer#

async LiquidHandler.transfer(source: Well, targets: List[Well], source_vol: float | None = None, ratios: List[float] | None = None, target_vols: List[float] | None = None, aspiration_flow_rate: float | None = None, dispense_flow_rates: List[float | None] | None = None, **backend_kwargs)#

Transfer liquid from one well to another.

Examples

Transfer 50 uL of liquid from the first well to the second well:

>>> await lh.transfer(plate["A1"], plate["B1"], source_vol=50)

Transfer 80 uL of liquid from the first well equally to the first column:

>>> await lh.transfer(plate["A1"], plate["A1:H1"], source_vol=80)

Transfer 60 uL of liquid from the first well in a 1:2 ratio to 2 other wells:

>>> await lh.transfer(plate["A1"], plate["B1:C1"], source_vol=60, ratios=[2, 1])

Transfer arbitrary volumes to the first column:

>>> await lh.transfer(plate["A1"], plate["A1:H1"], target_vols=[3, 1, 4, 1, 5, 9, 6, 2])
Parameters:
  • source (Well) – The source well.

  • targets (List[Well]) – The target wells.

  • source_vol (float | None) – The volume to transfer from the source well.

  • ratios (List[float] | None) – The ratios to use when transferring liquid to the target wells. If not specified, then the volumes will be distributed equally.

  • target_vols (List[float] | None) – The volumes to transfer to the target wells. If specified, source_vols and ratios must be None.

  • aspiration_flow_rate (float | None) – The flow rate to use when aspirating, in ul/s. If None, the backend default will be used.

  • dispense_flow_rates (List[float | None] | None) – The flow rates to use when dispensing, in ul/s. If None, the backend default will be used. Either a single flow rate for all channels, or a list of flow rates, one for each target well.

Raises:

RuntimeError – If the setup has not been run. See setup().