Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
pip_name = pipette_type.split('-')[1]
if pipette_type == 'p300-Single':
pipette = instruments.P300_Single(
mount='left',
tip_racks=tiprack)
elif pipette_type == 'p50-Single':
pipette = instruments.P50_Single(
mount='left',
tip_racks=tiprack)
elif pipette_type == 'p300-Multi':
pipette = instruments.P300_Multi(
mount='left',
tip_racks=tiprack)
elif pipette_type == 'p50-Multi':
pipette = instruments.P50_Multi(
mount='left',
tip_racks=tiprack)
new_tip = 'never' if tip_use_strategy == 'use one tip' else 'always'
transfer_volume = total_mixing_volume/dilution_factor
diluent_volume = total_mixing_volume - transfer_volume
if pip_name == 'Multi':
# Distribute diluent across the plate to the the number of samples
# And add diluent to one column after the number of samples for a blank
pipette.distribute(diluent_volume, trough['A1'], plate.cols(
'2', length=(num_of_dilutions)))
# Dilution of samples across the 96-well flat bottom plate
def run_custom_protocol(
p50_multi_mount: StringSelection('right', 'left') = 'right',
p300_multi_mount: StringSelection('left', 'right') = 'left',
HB_CSV: FileInput = example_hb_csv,
replicate_CSV: FileInput = example_csv
):
# check
if p50_multi_mount == p300_multi_mount:
raise Exception('Pipette mount selections must be distinct.')
# pipettes
m50 = instruments.P50_Multi(mount=p50_multi_mount)
m300 = instruments.P300_Multi(mount=p300_multi_mount)
# parse
[rep_sets_m, rep_sets_t] = [
[[plate.rows('A')[int(col)-1] for col in line.split(',')]
for line in replicate_CSV.splitlines() if line]
for plate in [magplate, temp_plate]
]
# samples
mag_samples_m = [col for set in rep_sets_m for col in set]
mix_sets_m = []
mix_sets_t = []
for line in replicate_CSV.splitlines()[1:]:
if line:
set_m = []
set_t = []
elif pipette_type == 'p10_Single':
tipracks = [labware.load('tiprack-10ul', slot) for slot in slots]
pipette = instruments.P10_Single(
mount=pipette_mount,
tip_racks=tipracks)
elif pipette_type == 'p10_Multi':
tipracks = [labware.load('tiprack-10ul', slot) for slot in slots]
pipette = instruments.P10_Multi(
mount=pipette_mount,
tip_racks=tipracks)
elif pipette_type == 'p50_Multi':
tipracks = [labware.load('tiprack-200ul', slot) for slot in slots]
pipette = instruments.P50_Multi(
mount=pipette_mount,
tip_racks=tipracks)
elif pipette_type == 'p300_Multi':
tipracks = [labware.load('tiprack-200ul', slot) for slot in slots]
pipette = instruments.P300_Multi(
mount=pipette_mount,
tip_racks=tipracks)
mode = pipette_type.split('_')[1]
if mode == 'Single':
if sample_number <= 5:
reagent_container = labware.load('tube-rack-2ml', '7')
liquid_waste = labware.load('trough-12row', '5').wells('A12')
else:
num_sample_cols = math.ceil(number_of_samples/8)
rxn_samples = rxn_plate.rows('A')[:num_sample_cols]
elution_samples = elution_plate.rows('A')[:num_sample_cols]
# pipettes
tips300 = [labware.load('opentrons_96_tiprack_300ul', slot)
for slot in ['4', '5', '6', '7']]
tips50 = [labware.load('opentrons_96_tiprack_300ul', slot)
for slot in ['8', '9', '10', '11']]
m300 = instruments.P300_Multi(
mount='left',
tip_racks=tips300
)
m50 = instruments.P50_Multi(
mount='right',
tip_racks=tips50
)
tip50_count = 0
tip300_count = 0
tip50_max = len(tips50)*12
tip300_max = len(tips300)*12
def pick_up(pip):
nonlocal tip50_count
nonlocal tip300_count
if pip == m50:
if tip50_count == tip50_max:
robot.pause('Replace 300ul tipracks before resuming.')
def run_custom_protocol(
columns_to_process: StringSelection('1', '2', '3', '4',
'5', '6', '7', '8',
'9', '10', '11',
'12') = '12',
pipettes_type: StringSelection('single', 'multi') = 'multi'):
num_columns = int(columns_to_process)
if pipettes_type == 'single':
pipette50 = instruments.P50_Single(mount='right', tip_racks=[tips50])
pipette300 = instruments.P300_Single(mount='left', tip_racks=tips300)
bacteria_samples = bacteria_plate.wells('A1', length=8*num_columns)
mag_samples = mag_plate.wells('A1', length=8*num_columns)
else:
pipette50 = instruments.P50_Multi(mount='right', tip_racks=[tips50])
pipette300 = instruments.P300_Multi(mount='left', tip_racks=tips300)
bacteria_samples = bacteria_plate.rows('A')[0:num_columns]
mag_samples = mag_plate.rows('A')[0:num_columns]
# distribute RE1 and mix
for s in bacteria_samples:
pipette300.pick_up_tip()
pipette300.transfer(100, RE1_1, s, new_tip='never')
pipette300.mix(20, 80, s)
pipette300.blow_out(s.top())
pipette300.drop_tip()
# distribute L2 and mix
for s in bacteria_samples:
pipette300.pick_up_tip()
pipette300.transfer(100, L2, s, new_tip='never')
mastermix_volume: float=80,
reagent_volume: float=15,
number_of_plates_to_fill: int=8,
number_of_columns_to_fill: int=3):
# labware setup
pcr_plates = [labware.load('PCR-strip-tall', slot)
for slot in ['1', '2', '4', '5', '7', '8', '10', '11']][
:number_of_plates_to_fill]
deep_well3 = labware.load(custom_deep_plate, '3')
deep_well6 = labware.load(custom_deep_plate, '6')
tiprack = labware.load('tiprack-200ul', '9')
# instrument setup
m50 = instruments.P50_Multi(
mount='right',
tip_racks=[tiprack])
for index in range(number_of_columns_to_fill):
m50.pick_up_tip()
m50.transfer(
mastermix_volume,
deep_well6.cols(index),
deep_well3.cols(index)[0].top(),
new_tip='never')
m50.mix(10, 50, deep_well3.cols(index))
dest = [plate.cols(index) for plate in pcr_plates]
m50.distribute(
reagent_volume, deep_well3.cols(index), dest, new_tip='never')
m50.drop_tip()
waste_rack = labware.load('PCR-strip-tall', '3')
# set up tip rack to accommodate single transfers with multi-channel pipette
tip_rack300 = labware.load('opentrons-tiprack-300ul', '7')
tips_temp = []
for row in range(7, -1, -1):
tips_temp.append(tip_rack300.rows()[row])
tips = [well for row in tips_temp for well in row]
tip_counter = 0
# modules
magdeck = modules.load('magdeck', '6')
mag_plate = labware.load('biorad-hardshell-96-PCR', '6', share=True)
# pipettes:
m50 = instruments.P50_Multi(
mount='right'
)
m300 = instruments.P300_Multi(
mount='left'
)
def run_custom_protocol(
number_of_samples: StringSelection('3', '4', '6', '8',
'9', '12', '16') = '4'):
global tip_counter
number_of_samples = int(number_of_samples)
samples = samples_rack.wells('A4', length=number_of_samples)
mag_samples = mag_plate.wells('A4', length=number_of_samples)
etanol = [well for row in tubes.rows()
labware.create(
dest_name,
grid=(12, 8),
spacing=(9, 9),
diameter=7,
depth=17,
volume=50
)
# load labware
tips300 = labware.load('opentrons-tiprack-300ul', '3')
tips50 = labware.load('opentrons-tiprack-300ul', '6')
# pipettes
m300 = instruments.P300_Multi(mount='right', tip_racks=[tips300])
m50 = instruments.P50_Multi(mount='left', tip_racks=[tips50])
def run_custom_protocol(
tempdeck_temperature_in_degrees_C: float = 4,
number_of_protein_samples: int = 48
):
# checks
if number_of_protein_samples > 48 or number_of_protein_samples < 1:
raise Exception('Invalid number of protein samples.')
# load tempdeck and plate
tempdeck = modules.load('tempdeck', '1')
source_plate = labware.load(source_name, '1', share=True)
tempdeck.set_temperature(tempdeck_temperature_in_degrees_C)
tempdeck.wait_for_temp()
}
# labware
wash_rack = labware.load('96-PCR-tall', '1')
tube_rack = labware.load('opentrons-tuberack-2ml-eppendorf', '2')
# set up tip rack to accommodate single transfers with multi-channel pipette
tip_rack50 = labware.load('opentrons-tiprack-300ul', '7')
tips_temp = []
for row in range(7, -1, -1):
tips_temp.append(tip_rack50.rows()[row])
tips = [well for row in tips_temp for well in row]
tip_counter = 0
# pipettes
m50 = instruments.P50_Multi(
mount='right',
)
def run_custom_protocol(
number_of_samples: StringSelection('1', '2', '3', '4') = '4'):
global tip_counter
# reagent setup
number_of_samples = int(number_of_samples)
samples = wash_rack.wells('E6', length=number_of_samples)
primers = tube_rack.wells('A1')
NEM_mix = tube_rack.wells('A2')
# distribute primers to samples
m50.pick_up_tip(tips[tip_counter])
p10_multi_mount: StringSelection('right', 'left') = 'right',
p50_multi_mount: StringSelection('left', 'right') = 'left',
dual_index: StringSelection('yes', 'no') = 'yes',
reagent_starting_column: int = 1
):
# checks
if number_of_samples > 96 or number_of_samples < 1:
raise Exception('Invalid number of samples')
if p10_multi_mount == p50_multi_mount:
raise Exception('Invalid pipette mount combination')
if reagent_starting_column > 7:
raise Exception('Invlaid reagent starting column')
# pipettes
m10 = instruments.P10_Multi(mount=p10_multi_mount, tip_racks=tips10)
m50 = instruments.P50_Multi(mount=p50_multi_mount, tip_racks=tips50)
# reagent setup
[fs2e1, fs1, rs, ss1, ss2e2, pcre3] = [
reagent_plate.rows('A')[ind]
for ind in range(reagent_starting_column-1, reagent_starting_column+5)
]
[pb, eb, ps] = [trough.wells(ind) for ind in range(3)]
etoh = [chan for chan in trough.wells('A4', length=4)]
etoh_waste = [chan for chan in trough.wells('A8', length=4)]
liquid_waste = trough.wells('A12')
# sample setup
num_cols = math.ceil(number_of_samples/8)
samples_TM = plate_TM.rows('A')[:num_cols]
samples_2 = plate_2.rows('A')[:num_cols]
samples_mag = magplate.rows('A')[:num_cols]