Skip to content

Commit 333648d

Browse files
committed
test(analyses snapshots): partial tip protocols
1 parent 8ce3880 commit 333648d

5 files changed

+653
-0
lines changed
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
from opentrons.protocol_api import COLUMN
2+
3+
metadata = {
4+
"protocolName": "96Channel COLUMN Happy Path",
5+
"description": "96 channel pipette and a COLUMN partial tip configuration.",
6+
}
7+
8+
requirements = {
9+
"robotType": "Flex",
10+
"apiLevel": "2.20",
11+
}
12+
13+
14+
def run(protocol):
15+
16+
trash = protocol.load_trash_bin("A3") # must load trash bin
17+
18+
partial_tip_rack = protocol.load_labware(
19+
load_name="opentrons_flex_96_tiprack_1000ul",
20+
label="Partial Tip Rack",
21+
location="B2",
22+
)
23+
24+
pipette = protocol.load_instrument(instrument_name="flex_96channel_1000")
25+
26+
# Which nozzle to use on the pipette
27+
# Think of the nozzles from above like you are looking down on a 96-well plate
28+
# start="A1" Means the West most nozzle column will pickup from the East most column of the tip rack
29+
# start="A12" Means the East most nozzle column will pickup from the West most column of the tip rack
30+
pipette.configure_nozzle_layout(
31+
style=COLUMN,
32+
start="A1",
33+
tip_racks=[partial_tip_rack],
34+
)
35+
36+
source_labware = protocol.load_labware(
37+
load_name="nest_96_wellplate_100ul_pcr_full_skirt",
38+
label="Liquid Transfer - Source Labware",
39+
location="C2",
40+
)
41+
42+
destination_labware = protocol.load_labware(
43+
load_name="nest_96_wellplate_100ul_pcr_full_skirt",
44+
label="Liquid Transfer - Destination Labware",
45+
location="C3",
46+
)
47+
48+
volume = 10 # Default volume for actions that require it
49+
50+
#############################
51+
# Pipette do work
52+
53+
# consolidate does not work with the COLUMN configuration
54+
# consolidate only has a single well as a destination
55+
56+
# transfer the row
57+
pipette.transfer(volume, source_labware["A1"], destination_labware["A1"])
58+
59+
# distribute does not work with the COLUMN configuration
60+
# distribute only has a single well as a source
61+
62+
pipette.pick_up_tip()
63+
pipette.touch_tip(source_labware["A2"])
64+
pipette.drop_tip()
65+
pipette.pick_up_tip()
66+
pipette.home()
67+
pipette.drop_tip()
68+
69+
pipette.pick_up_tip()
70+
well = source_labware["A3"]
71+
# directly from docs http://sandbox.docs.opentrons.com/edge/v2/new_protocol_api.html#opentrons.protocol_api.InstrumentContext.prepare_to_aspirate
72+
pipette.move_to(well.bottom(z=2))
73+
pipette.mix(10, 10)
74+
pipette.move_to(well.top(z=5))
75+
pipette.blow_out()
76+
pipette.prepare_to_aspirate()
77+
pipette.move_to(well.bottom(z=2))
78+
pipette.aspirate(10, well.bottom(z=2))
79+
pipette.dispense(10)
80+
pipette.drop_tip()
81+
82+
#############################
83+
# Change the pipette configuration
84+
85+
pipette.configure_nozzle_layout(
86+
style=COLUMN,
87+
start="A12", # Which nozzle to start with
88+
tip_racks=[partial_tip_rack],
89+
)
90+
91+
#############################
92+
# Pipette do work
93+
94+
# consolidate does not work with the COLUMN configuration
95+
# consolidate only has a single well as a destination
96+
97+
# transfer the row
98+
pipette.transfer(volume, source_labware["A5"], destination_labware["A5"])
99+
100+
# distribute does not work with the COLUMN configuration
101+
# distribute only has a single well as a source
102+
103+
pipette.pick_up_tip()
104+
pipette.touch_tip(source_labware["A6"])
105+
pipette.drop_tip()
106+
pipette.pick_up_tip()
107+
pipette.home()
108+
pipette.drop_tip()
109+
110+
pipette.pick_up_tip()
111+
well = source_labware["A7"]
112+
# directly from docs http://sandbox.docs.opentrons.com/edge/v2/new_protocol_api.html#opentrons.protocol_api.InstrumentContext.prepare_to_aspirate
113+
pipette.move_to(well.bottom(z=2))
114+
pipette.mix(10, 10)
115+
pipette.move_to(well.top(z=5))
116+
pipette.blow_out()
117+
pipette.prepare_to_aspirate()
118+
pipette.move_to(well.bottom(z=2))
119+
pipette.aspirate(10, well.bottom(z=2))
120+
pipette.dispense(10)
121+
pipette.drop_tip()
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
from opentrons.protocol_api import PARTIAL_COLUMN
2+
3+
metadata = {
4+
"protocolName": "96Channel PARTIAL_COLUMN Happy Path",
5+
"description": "96 channel pipette and a PARTIAL_COLUMN partial tip configuration.",
6+
}
7+
8+
requirements = {
9+
"robotType": "Flex",
10+
"apiLevel": "2.20",
11+
}
12+
13+
14+
def run(protocol):
15+
16+
trash = protocol.load_trash_bin("A3") # must load trash bin
17+
18+
partial_tip_rack = protocol.load_labware(
19+
load_name="opentrons_flex_96_tiprack_1000ul",
20+
label="Partial Tip Rack",
21+
location="D2",
22+
)
23+
24+
pipette = protocol.load_instrument(instrument_name="flex_96channel_1000")
25+
26+
# Which nozzle to use on the pipette
27+
# Think of the nozzles from above like you are looking down on a 96-well plate
28+
# Picking up partial columns with the backmost nozzles is currently not supported. Setting
29+
# ``style=PARTIAL_COLUMN`` and either ``start="A1"`` or ``start="A12"`` will raise an error.
30+
# H1 means pipette overhang NE
31+
# H12 means pipette overhang NW
32+
pipette.configure_nozzle_layout(
33+
style=PARTIAL_COLUMN,
34+
start="H1",
35+
end="D1", # pick up the first 5
36+
tip_racks=[partial_tip_rack],
37+
)
38+
39+
source_labware = protocol.load_labware(
40+
load_name="nest_96_wellplate_100ul_pcr_full_skirt",
41+
label="Liquid Transfer - Source Labware",
42+
location="C2",
43+
)
44+
45+
destination_labware = protocol.load_labware(
46+
load_name="nest_96_wellplate_100ul_pcr_full_skirt",
47+
label="Liquid Transfer - Destination Labware",
48+
location="C3",
49+
)
50+
51+
volume = 10 # Default volume for actions that require it
52+
53+
#############################
54+
# Pipette do work
55+
56+
# consolidate does not work with the PARTIAL_COLUMN configuration
57+
# consolidate only has a single well as a destination
58+
59+
# transfer the row
60+
pipette.transfer(volume, source_labware["D1"], destination_labware["D1"])
61+
62+
# distribute does not work with the PARTIAL_COLUMN configuration
63+
# distribute only has a single well as a source
64+
65+
pipette.pick_up_tip()
66+
pipette.touch_tip(source_labware["D2"])
67+
pipette.drop_tip()
68+
pipette.pick_up_tip()
69+
pipette.home()
70+
pipette.drop_tip()
71+
72+
pipette.pick_up_tip()
73+
well = source_labware["D3"]
74+
# directly from docs http://sandbox.docs.opentrons.com/edge/v2/new_protocol_api.html#opentrons.protocol_api.InstrumentContext.prepare_to_aspirate
75+
pipette.move_to(well.bottom(z=2))
76+
pipette.mix(10, 10)
77+
pipette.move_to(well.top(z=5))
78+
pipette.blow_out()
79+
pipette.prepare_to_aspirate()
80+
pipette.move_to(well.bottom(z=2))
81+
pipette.aspirate(10, well.bottom(z=2))
82+
pipette.dispense(10)
83+
pipette.drop_tip()
84+
85+
#############################
86+
# Change the pipette configuration
87+
88+
pipette.configure_nozzle_layout(
89+
style=PARTIAL_COLUMN,
90+
start="H1", # Which nozzle to start with
91+
end="G1", # 2 - the remaining 2 in the column
92+
tip_racks=[partial_tip_rack],
93+
)
94+
95+
#############################
96+
# Pipette do work
97+
98+
# consolidate does not work with the PARTIAL_COLUMN configuration
99+
# consolidate only has a single well as a destination
100+
101+
# transfer the row
102+
pipette.transfer(volume, source_labware["B5"], destination_labware["B5"])
103+
104+
# distribute does not work with the PARTIAL_COLUMN configuration
105+
# distribute only has a single well as a source
106+
107+
pipette.pick_up_tip()
108+
pipette.touch_tip(source_labware["B6"])
109+
pipette.drop_tip()
110+
pipette.pick_up_tip()
111+
pipette.home()
112+
pipette.drop_tip()
113+
114+
pipette.pick_up_tip()
115+
well = source_labware["B7"]
116+
# directly from docs http://sandbox.docs.opentrons.com/edge/v2/new_protocol_api.html#opentrons.protocol_api.InstrumentContext.prepare_to_aspirate
117+
pipette.move_to(well.bottom(z=2))
118+
pipette.mix(10, 10)
119+
pipette.move_to(well.top(z=5))
120+
pipette.blow_out()
121+
pipette.prepare_to_aspirate()
122+
pipette.move_to(well.bottom(z=2))
123+
pipette.aspirate(10, well.bottom(z=2))
124+
pipette.dispense(10)
125+
pipette.drop_tip()
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
from opentrons.protocol_api import ROW
2+
3+
metadata = {
4+
"protocolName": "96Channel ROW Happy Path",
5+
"description": "96 channel pipette and a ROW partial tip configuration.",
6+
}
7+
8+
requirements = {
9+
"robotType": "Flex",
10+
"apiLevel": "2.20",
11+
}
12+
13+
14+
def run(protocol):
15+
16+
trash = protocol.load_trash_bin("A3") # must load trash bin
17+
18+
partial_tip_rack = protocol.load_labware(
19+
load_name="opentrons_flex_96_tiprack_1000ul",
20+
label="Partial Tip Rack",
21+
location="B1",
22+
)
23+
24+
pipette = protocol.load_instrument(instrument_name="flex_96channel_1000")
25+
26+
# Which nozzle to use on the pipette
27+
# Think of the nozzles from above like you are looking down on a 96-well plate
28+
# start="A1" Means the North most nozzle row will pickup from the South most row of the tip rack
29+
# start="H1" Means the South most nozzle row will pickup from the North most row of the tip rack
30+
pipette.configure_nozzle_layout(
31+
style=ROW,
32+
start="A1",
33+
tip_racks=[partial_tip_rack],
34+
)
35+
36+
source_labware = protocol.load_labware(
37+
load_name="nest_96_wellplate_100ul_pcr_full_skirt",
38+
label="Liquid Transfer - Source Labware",
39+
location="C2",
40+
)
41+
42+
destination_labware = protocol.load_labware(
43+
load_name="nest_96_wellplate_100ul_pcr_full_skirt",
44+
label="Liquid Transfer - Destination Labware",
45+
location="C3",
46+
)
47+
48+
volume = 10 # Default volume for actions that require it
49+
50+
#############################
51+
# Pipette do work
52+
53+
# consolidate is does not work with the ROW configuration
54+
# consolidate only has a single well as a destination
55+
56+
# transfer the row
57+
pipette.transfer(volume, source_labware["A1"], destination_labware["A1"])
58+
59+
# distribute does not work with the ROW configuration
60+
# distribute only has a single well as a source
61+
62+
pipette.pick_up_tip()
63+
pipette.touch_tip(source_labware["B1"])
64+
pipette.drop_tip()
65+
pipette.pick_up_tip()
66+
pipette.home()
67+
pipette.drop_tip()
68+
69+
pipette.pick_up_tip()
70+
well = source_labware["D1"]
71+
# directly from docs http://sandbox.docs.opentrons.com/edge/v2/new_protocol_api.html#opentrons.protocol_api.InstrumentContext.prepare_to_aspirate
72+
pipette.move_to(well.bottom(z=2))
73+
pipette.mix(10, 10)
74+
pipette.move_to(well.top(z=5))
75+
pipette.blow_out()
76+
pipette.prepare_to_aspirate()
77+
pipette.move_to(well.bottom(z=2))
78+
pipette.aspirate(10, well.bottom(z=2))
79+
pipette.dispense(10)
80+
pipette.drop_tip()
81+
82+
#############################
83+
# Change the pipette configuration
84+
85+
pipette.configure_nozzle_layout(
86+
style=ROW,
87+
start="H1", # Which nozzle to start with
88+
tip_racks=[partial_tip_rack],
89+
)
90+
91+
#############################
92+
# Pipette do work
93+
94+
# consolidate is does not work with the ROW configuration
95+
# consolidate only has a single well as a destination
96+
97+
# transfer the row
98+
pipette.transfer(volume, source_labware["E1"], destination_labware["E1"])
99+
100+
# distribute does not work with the ROW configuration
101+
# distribute only has a single well as a source
102+
103+
pipette.pick_up_tip()
104+
pipette.touch_tip(source_labware["F1"])
105+
pipette.drop_tip()
106+
pipette.pick_up_tip()
107+
pipette.home()
108+
pipette.drop_tip()
109+
110+
pipette.pick_up_tip()
111+
well = source_labware["G1"]
112+
# directly from docs http://sandbox.docs.opentrons.com/edge/v2/new_protocol_api.html#opentrons.protocol_api.InstrumentContext.prepare_to_aspirate
113+
pipette.move_to(well.bottom(z=2))
114+
pipette.mix(10, 10)
115+
pipette.move_to(well.top(z=5))
116+
pipette.blow_out()
117+
pipette.prepare_to_aspirate()
118+
pipette.move_to(well.bottom(z=2))
119+
pipette.aspirate(10, well.bottom(z=2))
120+
pipette.dispense(10)
121+
pipette.drop_tip()

0 commit comments

Comments
 (0)