from opentrons import protocol_api metadata = { 'protocolName': 'My Protocol', 'author': 'Your Name', 'description': 'Description of the protocol', 'apiLevel': '2.12' } def run(protocol: protocol_api.ProtocolContext): # Labware plate = protocol.load_labware('corning_96_wellplate_360ul_flat', '1') tiprack = protocol.load_labware('opentrons_96_tiprack_300ul', '2') pipette = protocol.load_instrument('p300_single_gen2', 'right', tip_racks=[tiprack]) # Parameters num_samples = 96 sample_volume = 200 reagent_volume = 50 # Reagent reservoirs reagent_reservoir = protocol.load_labware('usascientific_12_reservoir_22ml', '3') # Transfer reagent to samples for well in plate.wells()[:num_samples]: pipette.pick_up_tip() pipette.aspirate(reagent_volume, reagent_reservoir.wells()[0]) pipette.dispense(reagent_volume, well) pipette.blow_out(well.top()) pipette.drop_tip() # Mix samples for well in plate.wells()[:num_samples]: pipette.pick_up_tip() pipette.mix(5, sample_volume, well) pipette.drop_tip() # Incubate samples protocol.delay(minutes=30) # Incubate for 30 minutes # Transfer samples to a new plate output_plate = protocol.load_labware('corning_96_wellplate_360ul_flat', '4') for src_well, dest_well in zip(plate.wells()[:num_samples], output_plate.wells()[:num_samples]): pipette.pick_up_tip() pipette.aspirate(sample_volume, src_well) pipette.dispense(sample_volume, dest_well) pipette.blow_out(dest_well.top()) pipette.drop_tip()