When using an 8-channel pipette (e.g., p1000_multi
) and switching between partial and complete tip pickup modes using the same tip rack — for example changing from p1000_multi.configure_nozzle_layout(style=SINGLE
, start=‘A1’, tip_racks=[tips_200]) to p1000_multi.configure_nozzle_layout(style=ALL
, tip_racks=[tips_200]) — is there a way to maintain unified tip tracking? Ideally, I’d like the robot to automatically use the next full column of tips after partial tips have been used, without needing to manage separate tip racks for partial and complete pickup modes. From the python api documentation, it sounds like configure_nozzle_layout() resets tip tracking…
I believe our support team was able to help with this. When switching back and forth between different nozzle configurations, you should still see a unified tip tracking throughout your protocol.
So others have visibility, here is the example provided:
Beginning Protocol
Picking up tip from A1 of Opentrons Flex 96 Filter Tip Rack 200 µL on slot B1
Aspirating 100.0 uL from A1 of Corning 96 Well Plate 360 µL Flat on slot A1 at 716.0 uL/sec
Dispensing 100.0 uL into A2 of Corning 96 Well Plate 360 µL Flat on slot A1 at 716.0 uL/sec
Dropping tip into Trash Bin on slot A3
Picking up tip from H2 of Opentrons Flex 96 Filter Tip Rack 200 µL on slot B1
Aspirating 100.0 uL from A1 of Corning 96 Well Plate 360 µL Flat on slot A1 at 716.0 uL/sec
Dispensing 100.0 uL into A2 of Corning 96 Well Plate 360 µL Flat on slot A1 at 716.0 uL/sec
Dropping tip into Trash Bin on slot A3
Picking up tip from A3 of Opentrons Flex 96 Filter Tip Rack 200 µL on slot B1
Aspirating 100.0 uL from A1 of Corning 96 Well Plate 360 µL Flat on slot A1 at 716.0 uL/sec
Dispensing 100.0 uL into A2 of Corning 96 Well Plate 360 µL Flat on slot A1 at 716.0 uL/sec
Dropping tip into Trash Bin on slot A3
Picking up tip from G2 of Opentrons Flex 96 Filter Tip Rack 200 µL on slot B1
Aspirating 100.0 uL from A1 of Corning 96 Well Plate 360 µL Flat on slot A1 at 716.0 uL/sec
Dispensing 100.0 uL into A2 of Corning 96 Well Plate 360 µL Flat on slot A1 at 716.0 uL/sec
Dropping tip into Trash Bin on slot A3
.py code:
from opentrons.protocol_api import ALL, SINGLE
metadata = {
“protocolName”:“Tip Tracking Test”,
}
requirements = {
“robotType”:“Flex”,
“apiLevel”:“2.21”
}
def run(ctx):
tips_200 = ctx.load_labware(‘opentrons_flex_96_filtertiprack_200ul’,‘B1’)
p1000 = ctx.load_instrument('flex_8channel_1000','right',tip_racks=[tips_200])
plate = ctx.load_labware('corning_96_wellplate_360ul_flat','A1')
trash = ctx.load_trash_bin('A3')
ctx.comment('\nBeginning Protocol\n')
p1000.pick_up_tip() #pick up A1
p1000.aspirate(100,plate.wells()[0])
p1000.dispense(100,plate.wells()[8])
p1000.drop_tip()
ctx.comment('\n\n')
p1000.configure_nozzle_layout(style=SINGLE, start='A1', tip_racks=[tips_200])
p1000.pick_up_tip() #pick up H2
p1000.aspirate(100,plate.wells()[0])
p1000.dispense(100,plate.wells()[8])
p1000.drop_tip()
ctx.comment('\n\n')
p1000.configure_nozzle_layout(style=ALL, tip_racks=[tips_200])
p1000.pick_up_tip() #pick up A3
p1000.aspirate(100,plate.wells()[0])
p1000.dispense(100,plate.wells()[8])
p1000.drop_tip()
ctx.comment('\n\n')
p1000.configure_nozzle_layout(style=SINGLE, start='A1', tip_racks=[tips_200])
p1000.pick_up_tip() #pick up G2
p1000.aspirate(100,plate.wells()[0])
p1000.dispense(100,plate.wells()[8])
p1000.drop_tip()