pylabrobot.agilent.biotek.el406.plate_washer.PlateWasher.wash#
- async PlateWasher.wash(cycles: int = 3, dispense_volume: float | None = None, buffer: Literal['A', 'B', 'C', 'D'] = 'A', dispense_flow_rate: int = 7, dispense_x: int = 0, dispense_y: int = 0, dispense_z: int | None = None, aspirate_travel_rate: int = 3, aspirate_z: int | None = None, pre_dispense_flow_rate: int = 9, aspirate_delay: float = 0.0, aspirate_x: int = 0, aspirate_y: int = 0, final_aspirate: bool = True, final_aspirate_z: int | None = None, final_aspirate_x: int = 0, final_aspirate_y: int = 0, final_aspirate_delay: float = 0.0, pre_dispense_volume: float = 0.0, vacuum_delay_volume: float = 0.0, soak_duration: int = 0, shake_duration: int = 0, shake_intensity: Literal['Variable', 'Slow', 'Medium', 'Fast'] = 'Medium', secondary_aspirate: bool = False, secondary_z: int | None = None, secondary_x: int = 0, secondary_y: int = 0, final_secondary_aspirate: bool = False, final_secondary_z: int | None = None, final_secondary_x: int = 0, final_secondary_y: int = 0, bottom_wash: bool = False, bottom_wash_volume: float = 0.0, bottom_wash_flow_rate: int = 5, pre_dispense_between_cycles_volume: float = 0.0, pre_dispense_between_cycles_flow_rate: int = 9, wash_format: Literal['Plate', 'Sector'] = 'Plate', sectors: list[int] | None = None, move_home_first: bool = False) None#
Perform manifold wash cycles.
Sends a 102-byte MANIFOLD_WASH (0xA4) command that performs repeated dispense-aspirate cycles. The wire format contains two dispense sections, two aspirate sections, and a final shake/soak section.
The wash command supports 4 independent coordinate sets: - Primary aspirate (aspirate_x/y/z): between-cycle aspirate position - Primary secondary (secondary_x/y/z): second aspirate position per cycle - Final aspirate (final_aspirate_x/y/z): aspirate after last cycle - Final secondary (final_secondary_x/y/z): second position for final aspirate
- Parameters:
cycles (int) – Number of wash cycles (1-250). Default 3. Encoded at header byte [6].
dispense_volume (float | None) – Volume to dispense per cycle in uL. Default None (plate-type-aware: 300 for 96-well, 100 for others).
buffer (Literal['A', 'B', 'C', 'D']) – Buffer valve selection (A, B, C, D).
dispense_flow_rate (int) – Flow rate for dispensing (1-9).
dispense_x (int) – Dispense X offset in steps (-60 to +60).
dispense_y (int) – Dispense Y offset in steps (-40 to +40).
dispense_z (int | None) – Z offset for dispense in 0.1mm units (1-210). None is plate-type-aware: 121 for 96-well, 120 for 384-well, etc.
aspirate_travel_rate (int) – Travel rate for aspiration (1-9).
aspirate_z (int | None) – Z offset for aspirate in 0.1mm units (1-210). None is plate-type-aware: 29 for 96-well, 22 for 384-well, etc.
pre_dispense_flow_rate (int) – Pre-dispense flow rate (3-11). Controls how fast the pre-dispense is delivered.
aspirate_delay (float) – Post-aspirate delay in seconds (0-65.535). Wire resolution: 1 ms.
aspirate_x (int) – Aspirate X offset in steps (-60 to +60).
aspirate_y (int) – Aspirate Y offset in steps (-40 to +40).
final_aspirate (bool) – Enable final aspirate after last cycle. Encoded in header config flags byte [2].
final_aspirate_z (int | None) – Z offset for final aspirate (1-210). None inherits from aspirate_z. Independent from primary aspirate Z.
final_aspirate_x (int) – X offset for final aspirate (-60 to +60).
final_aspirate_y (int) – Y offset for final aspirate (-40 to +40).
final_aspirate_delay (float) – Post-aspirate delay for final aspirate in seconds (0-65.535). Wire resolution: 1 ms.
pre_dispense_volume (float) – Pre-dispense volume in uL/tube (0 to disable, 25-3000 when enabled).
vacuum_delay_volume (float) – Vacuum delay volume in uL/well (0 to disable, 0-3000 when enabled). Cell wash operations only.
soak_duration (int) – Soak duration in seconds (0 to disable, 0-3599).
shake_duration (int) – Shake duration in seconds (0 to disable, 0-3599).
shake_intensity (Literal['Variable', 'Slow', 'Medium', 'Fast']) – Shake intensity (“Variable”, “Slow”, “Medium”, “Fast”).
secondary_aspirate (bool) – Enable secondary aspirate for primary (between-cycle) aspirate.
secondary_z (int | None) – Z offset for secondary aspirate in 0.1mm units (1-210). None is plate-type-aware, same as aspirate_z default.
secondary_x (int) – Secondary aspirate X offset (-60 to +60).
secondary_y (int) – Secondary aspirate Y offset (-40 to +40).
final_secondary_aspirate (bool) – Enable secondary aspirate for final aspirate.
final_secondary_z (int | None) – Z offset for final secondary aspirate (1-210). None is plate-type-aware, same as aspirate_z default.
final_secondary_x (int) – X offset for final secondary aspirate (-60 to +60).
final_secondary_y (int) – Y offset for final secondary aspirate (-40 to +40).
bottom_wash (bool) – Enable bottom wash. Encoded in header[1].
bottom_wash_volume (float) – Bottom wash volume in uL (25-3000).
bottom_wash_flow_rate (int) – Bottom wash flow rate (3-11).
pre_dispense_between_cycles_volume (float) – Pre-dispense volume between wash cycles in uL (0 to disable, 25-3000 when enabled).
pre_dispense_between_cycles_flow_rate (int) – Flow rate for pre-dispense between cycles (3-11).
wash_format (Literal['Plate', 'Sector']) – Wash format (“Plate” or “Sector”). Encoded at header[3]: Plate=0x00, Sector=0x01. 384-well plates typically use “Sector” for quadrant-based washing.
sectors (list[int] | None) – List of quadrant numbers to wash (1-4). None means all 4. Example:
sectors=[1, 2]washes quadrants 1 and 2. Only used when wash_format=”Sector”.move_home_first (bool) – Move carrier to home position before shake/soak. Same as in the standalone shake interface. Encoded at wire [87] (shake/soak section byte 0).
- Raises:
ValueError – If parameters are invalid.
- Return type:
None