Skip to content

Commit c0f1bbf

Browse files
committed
clean up plate function, longer pvt1abr9
1 parent afb6f35 commit c0f1bbf

16 files changed

+318
-179
lines changed

abr-testing/abr_testing/protocols/active_protocols/10_ZymoBIOMICS_Magbead_DNA_Cells_Flex.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ def run(ctx: protocol_api.ProtocolContext) -> None:
114114
magblock: MagneticBlockContext = ctx.load_module(
115115
helpers.mag_str, "C1"
116116
) # type: ignore[assignment]
117-
waste_reservoir = ctx.load_labware("nest_1_reservoir_195ml", "B3", "Liquid Waste")
117+
waste_reservoir = ctx.load_labware("nest_1_reservoir_290ml", "B3", "Liquid Waste")
118118
waste = waste_reservoir.wells()[0].top()
119119
res1 = ctx.load_labware(res_type, "D2", "reagent reservoir 1")
120120
res2 = ctx.load_labware(res_type, "C2", "reagent reservoir 2")

abr-testing/abr_testing/protocols/active_protocols/12_KAPA HyperPlus Library Prep.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ def run(ctx: ProtocolContext) -> None:
143143
)
144144
samples_2 = sample_plate_2.rows()[0][:num_cols]
145145
samples = sample_plate.rows()[0][:num_cols]
146-
reservoir = ctx.load_labware("nest_96_wellplate_2ml_deep", "C2")
146+
reservoir = ctx.load_labware("nest_96_wellplate_2ml_deep", "C2", "Liquid Waste")
147147
# Load tipracks
148148
tiprack_50_1 = ctx.load_labware("opentrons_flex_96_tiprack_50ul", "A3")
149149
tiprack_50_2 = ctx.load_labware("opentrons_flex_96_tiprack_50ul", "A2")
@@ -205,8 +205,8 @@ def run(ctx: ProtocolContext) -> None:
205205
"Adapters": [{"well": adapters, "volume": adapter_vol * 2.0}],
206206
"End Repair Mix": [
207207
{
208-
"well": end_repair_cols,
209-
"volume": (end_repair_vol * num_cols) + (0.1 * end_repair_vol),
208+
"well": temp_plate.wells()[: 8 * num_cols],
209+
"volume": 10.0,
210210
}
211211
],
212212
"Fragmentation Mix": [
@@ -981,7 +981,6 @@ def lib_cleanup_2() -> None:
981981
lib_cleanup_2()
982982

983983
# Probe liquid waste
984-
reservoir.label = "Liquid Waste" # type: ignore[attr-defined]
985984
waste1 = reservoir.columns()[6]
986985
waste1_res = waste1[0]
987986

abr-testing/abr_testing/protocols/active_protocols/1_Simple Normalize Long Right.py

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
def add_parameters(parameters: ParameterContext) -> None:
2424
"""Parameters."""
2525
helpers.create_single_pipette_mount_parameter(parameters)
26-
helpers.create_tip_size_parameter(parameters)
2726
helpers.create_csv_parameter(parameters)
27+
helpers.create_dot_bottom_parameter(parameters)
2828

2929

3030
def get_next_tip_by_row(tip_rack: Labware, pipette: InstrumentContext) -> Well | None:
@@ -79,15 +79,15 @@ def get_next_tip_by_row(tip_rack: Labware, pipette: InstrumentContext) -> Well |
7979

8080
def run(protocol: ProtocolContext) -> None:
8181
"""Protocol."""
82-
tip_type = protocol.params.tip_size # type: ignore[attr-defined]
82+
dot_bottom = protocol.params.dot_bottom # type: ignore[attr-defined]
8383
mount_pos = protocol.params.pipette_mount # type: ignore[attr-defined]
8484
all_data = protocol.params.parameters_csv.parse_as_csv() # type: ignore[attr-defined]
8585
data = all_data[1:]
8686
# DECK SETUP AND LABWARE
8787
protocol.comment("THIS IS A NO MODULE RUN")
88-
tiprack_x_1 = protocol.load_labware(tip_type, "D1")
89-
tiprack_x_2 = protocol.load_labware(tip_type, "D2")
90-
tiprack_x_3 = protocol.load_labware(tip_type, "A1")
88+
tiprack_x_1 = protocol.load_labware("opentrons_flex_96_tiprack_200ul", "D1")
89+
tiprack_x_2 = protocol.load_labware("opentrons_flex_96_tiprack_200ul", "D2")
90+
tiprack_x_3 = protocol.load_labware("opentrons_flex_96_tiprack_200ul", "A1")
9191
sample_plate_1 = protocol.load_labware(
9292
"armadillo_96_wellplate_200ul_pcr_full_skirt", "D3"
9393
)
@@ -178,7 +178,7 @@ def run(protocol: ProtocolContext) -> None:
178178
if DilutionVol != 0 and DilutionVol < 100:
179179
well = get_next_tip_by_row(current_rack, p1000)
180180
p1000.pick_up_tip(well)
181-
p1000.aspirate(DilutionVol, Diluent_1.bottom(z=2))
181+
p1000.aspirate(DilutionVol, Diluent_1.bottom(z=dot_bottom))
182182
p1000.dispense(
183183
DilutionVol, sample_plate_1.wells_by_name()[CurrentWell].top(z=0.2)
184184
)
@@ -223,7 +223,7 @@ def run(protocol: ProtocolContext) -> None:
223223
DilutionVol = float(data[current][2])
224224
if DilutionVol != 0 and DilutionVol < 100:
225225
p1000_single.pick_up_tip()
226-
p1000_single.aspirate(DilutionVol, Diluent_2.bottom(z=2))
226+
p1000_single.aspirate(DilutionVol, Diluent_2.bottom(z=dot_bottom))
227227
p1000_single.dispense(
228228
DilutionVol, sample_plate_2.wells_by_name()[CurrentWell].top(z=0.2)
229229
)
@@ -269,7 +269,7 @@ def run(protocol: ProtocolContext) -> None:
269269
DilutionVol = float(data[current][2])
270270
if DilutionVol != 0 and DilutionVol < 100:
271271
p1000_single.pick_up_tip()
272-
p1000_single.aspirate(DilutionVol, Diluent_2.bottom(z=2))
272+
p1000_single.aspirate(DilutionVol, Diluent_2.bottom(z=dot_bottom))
273273
p1000_single.dispense(
274274
DilutionVol, sample_plate_3.wells_by_name()[CurrentWell].top(z=0.2)
275275
)
@@ -315,7 +315,7 @@ def run(protocol: ProtocolContext) -> None:
315315
DilutionVol = float(data[current][2])
316316
if DilutionVol != 0 and DilutionVol < 100:
317317
p1000_single.pick_up_tip()
318-
p1000_single.aspirate(DilutionVol, Diluent_2.bottom(z=2))
318+
p1000_single.aspirate(DilutionVol, Diluent_2.bottom(z=dot_bottom))
319319
p1000_single.dispense(
320320
DilutionVol, sample_plate_4.wells_by_name()[CurrentWell].top(z=0.2)
321321
)
@@ -327,5 +327,14 @@ def run(protocol: ProtocolContext) -> None:
327327
current += 1
328328

329329
current = 0
330-
# Probe heights
331-
helpers.find_liquid_height_of_all_wells(protocol, p1000_single, wells)
330+
# Probe heights
331+
p1000.configure_nozzle_layout(style=ALL, tip_racks=[tiprack_x_3])
332+
helpers.clean_up_plates(
333+
p1000,
334+
[sample_plate_1, sample_plate_2, sample_plate_3, sample_plate_4],
335+
waste_reservoir["A1"],
336+
200,
337+
)
338+
helpers.find_liquid_height_of_all_wells(
339+
protocol, p1000_single, [waste_reservoir["A1"]]
340+
)

abr-testing/abr_testing/protocols/active_protocols/2_BMS_PCR_Protocol.py

Lines changed: 7 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
ThermocyclerContext,
66
TemperatureModuleContext,
77
)
8-
from opentrons.protocol_api import SINGLE, Well, ALL
8+
from opentrons.protocol_api import SINGLE, Well
99
from abr_testing.protocols import helpers
1010
from typing import List, Dict
1111

@@ -83,9 +83,9 @@ def run(ctx: ProtocolContext) -> None:
8383
mmx_pic: List[Well] = reagent_rack.rows()[0]
8484
dna_pic: List[Well] = source_plate_1.wells()
8585
liquid_vols_and_wells: Dict[str, List[Dict[str, Well | List[Well] | float]]] = {
86-
"Water": [{"well": water, "volume": 1500.0}],
87-
"Mastermix": [{"well": mmx_pic, "volume": 1500.0}],
88-
"DNA": [{"well": dna_pic, "volume": 50.0}],
86+
"Water": [{"well": water, "volume": 500.0}],
87+
"Mastermix": [{"well": mmx_pic, "volume": 500.0}],
88+
"DNA": [{"well": dna_pic, "volume": 100.0}],
8989
}
9090
helpers.find_liquid_height_of_loaded_liquids(ctx, liquid_vols_and_wells, p50)
9191
# adding water
@@ -205,33 +205,7 @@ def run(ctx: ProtocolContext) -> None:
205205
p50.drop_tip()
206206
p50.configure_nozzle_layout(style=SINGLE, start="A1", tip_racks=tiprack_50)
207207
mmx_pic.append(water)
208-
helpers.find_liquid_height_of_all_wells(ctx, p50, mmx_pic)
209-
# Empty Destination plate
210-
p50.configure_nozzle_layout(ALL, tip_racks=[tiprack_50[1]])
211-
first_row = [
212-
"A1",
213-
"A2",
214-
"A3",
215-
"A4",
216-
"A5",
217-
"A6",
218-
"A7",
219-
"A8",
220-
"A9",
221-
"A10",
222-
"A11",
223-
"A12",
224-
]
225-
p50.pick_up_tip()
226-
for row in first_row:
227-
p50.aspirate(50, dest_plate_1[row])
228-
p50.dispense(50, liquid_waste.top())
229-
p50.aspirate(50, dest_plate_1[row])
230-
p50.dispense(50, liquid_waste.top())
231-
p50.aspirate(50, dest_plate_1[row])
232-
p50.dispense(50, liquid_waste.top())
233-
p50.aspirate(50, dest_plate_1[row])
234-
p50.dispense(50, liquid_waste.top())
235-
p50.return_tip()
236-
208+
# Empty plates into liquid waste
209+
helpers.clean_up_plates(p50, [source_plate_1, dest_plate_1], liquid_waste, 50)
210+
# Probe liquid waste
237211
helpers.find_liquid_height_of_all_wells(ctx, p50, [liquid_waste])

abr-testing/abr_testing/protocols/active_protocols/3_Tartrazine Protocol.py

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
"""Tartrazine Protocol."""
2-
from opentrons.protocol_api import ProtocolContext, ParameterContext, Well
2+
from opentrons.protocol_api import (
3+
ProtocolContext,
4+
ParameterContext,
5+
Well,
6+
InstrumentContext,
7+
)
38
from abr_testing.protocols import helpers
49
from opentrons.protocol_api.module_contexts import (
510
AbsorbanceReaderContext,
@@ -41,7 +46,7 @@ def run(ctx: ProtocolContext) -> None:
4146
tube_rack = ctx.load_labware(
4247
"opentrons_10_tuberack_nest_4x50ml_6x15ml_conical", "C2", "Reagent Tube"
4348
)
44-
tartrazine_tube = tube_rack["A3"]
49+
tartrazine_tube = tube_rack["A1"]
4550
water_tube_1 = tube_rack["A4"]
4651
water_tube_2 = tube_rack["B3"]
4752
sample_plate_1 = ctx.load_labware(
@@ -61,18 +66,29 @@ def run(ctx: ProtocolContext) -> None:
6166
tiprack_50_1 = ctx.load_labware("opentrons_flex_96_tiprack_50ul", "D3")
6267
tiprack_50_2 = ctx.load_labware("opentrons_flex_96_tiprack_50ul", "C3")
6368
tiprack_50_3 = ctx.load_labware("opentrons_flex_96_tiprack_50ul", "B3")
69+
tiprack_50_4 = ctx.load_labware("opentrons_flex_96_tiprack_50ul", "B2")
70+
6471
tiprack_1000_1 = ctx.load_labware("opentrons_flex_96_tiprack_1000ul", "A2")
65-
tip_racks = [tiprack_50_1, tiprack_50_2, tiprack_50_3]
72+
tip_racks = [tiprack_50_1, tiprack_50_2, tiprack_50_3, tiprack_50_4]
6673

6774
# Pipette
6875
p50 = ctx.load_instrument("flex_1channel_50", "left", tip_racks=tip_racks)
6976
p1000 = ctx.load_instrument(
7077
"flex_1channel_1000", "right", tip_racks=[tiprack_1000_1]
7178
)
7279

80+
def _mix_tartrazine(pipette: InstrumentContext, well_to_probe: Well) -> None:
81+
"""Mix Tartrazine."""
82+
pipette.pick_up_tip()
83+
top_of_tartrazine = helpers.find_liquid_height(pipette, well_to_probe)
84+
for i in range(20):
85+
p50.aspirate(1, well_to_probe.bottom(z=1))
86+
p50.dispense(1, well_to_probe.bottom(z=top_of_tartrazine - 2))
87+
pipette.return_tip()
88+
7389
# Probe wells
7490
liquid_vols_and_wells: Dict[str, List[Dict[str, Well | List[Well] | float]]] = {
75-
"Tartrazine": [{"well": tartrazine_tube, "volume": 45.0}],
91+
"Tartrazine": [{"well": tartrazine_tube, "volume": 5.0}],
7692
"Water": [{"well": [water_tube_1, water_tube_2], "volume": 45.0}],
7793
}
7894
helpers.find_liquid_height_of_loaded_liquids(ctx, liquid_vols_and_wells, p50)
@@ -83,6 +99,8 @@ def run(ctx: ProtocolContext) -> None:
8399
vol = 0.0
84100
tip_count = 0
85101
for sample_plate in sample_plate_list[:number_of_plates]:
102+
_mix_tartrazine(p50, tartrazine_tube)
103+
tip_count += 1
86104
deck_locations = ["D1", "D2", "C1", "B1"]
87105
p1000.pick_up_tip()
88106
for well in sample_plate.wells():
@@ -92,19 +110,19 @@ def run(ctx: ProtocolContext) -> None:
92110
tube_of_choice = water_tube_2
93111
p50.pick_up_tip()
94112
p1000.aspirate(190, tube_of_choice)
95-
p1000.air_gap(5)
113+
p1000.air_gap(10)
96114
p1000.dispense(5, well.top())
97115
p1000.dispense(190, well)
98116
vol += 190
99117
height = helpers.find_liquid_height(p50, tartrazine_tube)
100-
p50.aspirate(10, tartrazine_tube.bottom(z=height))
118+
p50.aspirate(10, tartrazine_tube.bottom(z=height), rate=0.15)
101119
p50.air_gap(5)
102120
p50.dispense(5, well.top())
103-
p50.dispense(10, well.bottom(z=0.5))
121+
p50.dispense(10, well.bottom(z=0.5), rate=0.15)
104122
p50.blow_out()
105123
p50.return_tip()
106124
tip_count += 1
107-
if tip_count >= (96 * 3):
125+
if tip_count >= (96 * 4):
108126
p50.reset_tipracks()
109127
p1000.return_tip()
110128
helpers.move_labware_to_hs(ctx, sample_plate, hs, hs_adapter)
@@ -145,6 +163,7 @@ def run(ctx: ProtocolContext) -> None:
145163
"SD": standard_deviation,
146164
"Avg Percent Error": avg_percent_error,
147165
}
166+
ctx.comment(f"------plate {sample_plate}. {cv_dict[sample_plate_name]}------")
148167
all_percent_error_dict[sample_plate_name] = percent_error_dict
149168
plate_reader.open_lid()
150169
ctx.move_labware(sample_plate, deck_locations[i], use_gripper=True)

abr-testing/abr_testing/protocols/active_protocols/5_96ch complex protocol with single tip Pick Up.py

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,7 @@ def run(ctx: ProtocolContext) -> None:
7979
dest_pcr_plate = ctx.load_labware(PCR_PLATE_96_NAME, "C2")
8080
liquid_waste = ctx.load_labware("nest_1_reservoir_290ml", "B2", "Liquid Waste")
8181

82-
tip_rack_1 = ctx.load_labware(
83-
TIPRACK_96_NAME, "A4"
84-
)
82+
tip_rack_1 = ctx.load_labware(TIPRACK_96_NAME, "A4")
8583

8684
tip_rack_2 = ctx.load_labware(TIPRACK_96_NAME, "C3")
8785
tip_rack_3 = ctx.load_labware(TIPRACK_96_NAME, "C4")
@@ -293,28 +291,34 @@ def test_single_tip_pickup_usage() -> None:
293291
ctx.move_labware(tip_rack_2, waste_chute, use_gripper=USING_GRIPPER)
294292

295293
def test_column_tip_rack_usage() -> None:
296-
"""Full Tip Pick Up."""
297-
list_of_columns = list(range(1,13))
298-
not_reversed = list(range(1,13))
299-
list_of_columns.reverse()
294+
"""Column Tip Pick Up."""
295+
list_of_columns = list(range(1, 13))
300296
i = 0
301297
column_racks = [tip_rack_1, tip_rack_3]
298+
pipette_96_channel.configure_nozzle_layout(
299+
style=COLUMN, start="A12", tip_racks=column_racks
300+
)
301+
ctx.comment("------------------------------")
302+
ctx.comment(f"channels {pipette_96_channel.active_channels}")
302303
for rack in column_racks:
303-
ctx.move_labware(rack, "C3", use_gripper = USING_GRIPPER)
304-
for (column,well) in zip(list_of_columns, not_reversed):
305-
tiprack_well = "A" + str(column)
304+
ctx.move_labware(rack, "C3", use_gripper=USING_GRIPPER)
305+
for well in list_of_columns:
306+
tiprack_well = "A" + str(well)
306307
well_name = "A" + str(well)
307-
pipette_96_channel.configure_nozzle_layout(style=COLUMN, start="A12")
308+
308309
pipette_96_channel.liquid_presence_detection = True
309310
pipette_96_channel.pick_up_tip(rack[tiprack_well])
310311
pipette_96_channel.aspirate(45, source_reservoir[well_name])
311312
pipette_96_channel.liquid_presence_detection = False
312313
pipette_96_channel.air_gap(5)
313-
pipette_96_channel.dispense(25, dest_pcr_plate[tiprack_well].bottom(b))
314+
pipette_96_channel.dispense(
315+
25, dest_pcr_plate[tiprack_well].bottom(b)
316+
)
314317
pipette_96_channel.blow_out(location=liquid_waste["A1"])
315318
pipette_96_channel.drop_tip()
316319
ctx.move_labware(rack, waste_chute, use_gripper=USING_GRIPPER)
317-
i +=1
320+
i += 1
321+
318322
test_single_tip_pickup_usage()
319323
test_column_tip_rack_usage()
320324

abr-testing/abr_testing/protocols/active_protocols/7_HDQ_DNA_Bacteria_Flex.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,6 @@ def tiptrack(tipbox: List[Well]) -> None:
170170
drop_count = drop_count + 8
171171
if drop_count >= 150:
172172
drop_count = 0
173-
ctx.pause("Empty Waste Bin.")
174173

175174
def remove_supernatant(vol: float) -> None:
176175
"""Remove supernatants."""
@@ -503,7 +502,5 @@ def elute(vol: float) -> None:
503502
# Probe wells
504503
end_wells_with_liquid = [
505504
waste_reservoir.wells()[0],
506-
res1.wells()[0],
507-
elutionplate.wells()[0],
508505
]
509506
helpers.find_liquid_height_of_all_wells(ctx, m1000, end_wells_with_liquid)

abr-testing/abr_testing/protocols/active_protocols/8_Illumina and Plate Reader.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,9 @@ def run(protocol: ProtocolContext) -> None:
116116
tiprack_50_2 = protocol.load_labware("opentrons_flex_96_tiprack_50ul", "A3")
117117
# MODULES + LABWARE
118118
# Reservoir
119-
reservoir = protocol.load_labware("nest_96_wellplate_2ml_deep", "D2")
119+
reservoir = protocol.load_labware(
120+
"nest_96_wellplate_2ml_deep", "D2", "Liquid Waste"
121+
)
120122
# Heatershaker
121123
heatershaker: HeaterShakerContext = protocol.load_module(
122124
helpers.hs_str, "D1"
@@ -971,7 +973,6 @@ def tipcheck() -> None:
971973
p200_tips += 1
972974
tipcheck()
973975

974-
reservoir.label = "Liquid Waste" # type: ignore[attr-defined]
975976
Liquid_trash_well_1 = reservoir["A9"]
976977
Liquid_trash_well_2 = reservoir["A10"]
977978
Liquid_trash_well_4 = reservoir["A12"]

0 commit comments

Comments
 (0)