def __init__(self, simulating = True, slot = '10', name = 'ninjapcr', connection_mode = 'external_wifi', ssid = None, psk = None, lw_name = None): if connection_mode not in CONNECTION_MODES: raise ValueError(f'Invalid connection mode: {connection_mode}') self.simulating = simulating self.local_url = f'http://{name}.local' self.net_ssid = ssid self.net_psk = psk self.connected = False self.connection_mode = connection_mode # Define and load associated labware if lw_name not in labware.list(): labware.create( lw_name, # Labware Name grid=(4, 4), # Amount of (columns, rows) spacing=(9, 9), # Distances (mm) between each (column, row) diameter=2, # Diameter (mm) of each well on the plate depth=20, # Depth (mm) of each well on the plate volume=50) self.labware = labware.load(lw_name, slot=slot)
def loadPlate(): if CUSTOM_PLATE not in labware.list(): labware.create( CUSTOM_PLATE, # name of labware grid=(12, 8), # number of (columns, rows) spacing=(9, 9), # distances (mm) between each (column, row) diameter=5.49, # diameter (mm) of each well depth=16.4, # depth (mm) of each well volume=100) # volume (µL) of each well
def test_labware_create(dummy_db): from opentrons import labware lw_name = '15-well-plate' if lw_name in labware.list(): database.delete_container(lw_name) n_cols = 5 n_rows = 3 col_space = 12 row_space = 18 diameter = 5 height = 20 volume = 3.14 * (diameter / 2.0)**2 res = labware.create(lw_name, (n_cols, n_rows), (col_space, row_space), diameter, height, volume) lw = database.load_container(lw_name) database.delete_container(lw_name) assert len(lw.wells()) is n_cols * n_rows for well in lw.wells(): name = well.get_name() assert res[name].coordinates() == well.coordinates() for prop in ['height', 'diameter']: assert res[name].properties[prop] == well.properties[prop] assert lw.well("B5").coordinates() == ((n_cols - 1) * col_space, row_space, 0) assert lw.well("C3").coordinates() == (2 * col_space, 0, 0) assert lw.well(2).get_name() == 'C1'
def default_setup(self): self.r_offset_cam = -0.1 self.t_offset_cam = 0 self.h_offset_cam = 2.5 self.trash = robot.fixed_trash() self.tiprack = labware.load('tiprack-1000ul', 11) plate_name = '3x2_plate_falcon' if plate_name not in labware.list(): hydra_plate = labware.create(plate_name, grid=(3, 2), spacing=(39.24, 39.24), diameter=35.71, depth=17.65, volume=3000) self.plate_1 = labware.load(plate_name, '1') self.plate_2 = labware.load(plate_name, '2') self.plate_3 = labware.load(plate_name, '3') self.plate_4 = labware.load(plate_name, '4') self.plate_5 = labware.load(plate_name, '5') self.plate_6 = labware.load(plate_name, '6') self.plate_7 = labware.load(plate_name, '7') self.plate_8 = labware.load(plate_name, '8') self.plate_9 = labware.load(plate_name, '9') self.plate_10 = labware.load(plate_name, '10') self.pipette = instruments.P1000_Single('right', tip_racks=[self.tiprack]) self.camera = instruments.P1000_Single('left')
def test_labware_create(dummy_db): n_cols = 6 n_rows = 4 x_dist = 19.6 y_dist = 19.6 radius = 5.65 depth = 84 lw = labware.create( 'testing-lw', grid=(n_cols, n_rows), spacing=(x_dist, y_dist), # distances (mm) between each (column, row) diameter=radius * 2, depth=depth) row_a_center = ((n_rows - 1) * y_dist) + radius col_1_center = radius row_d_center = radius col_6_center = ((n_cols - 1) * x_dist) + radius expected = { 'A1': (col_1_center, row_a_center, depth), 'D1': (col_1_center, row_d_center, depth), 'A6': (col_6_center, row_a_center, depth), 'D6': (col_6_center, row_d_center, depth) } labware_coords = lw.coordinates() # currently (0, 0, 0) def top(well): wc = well.coordinates() wt = well.top()[1] return labware_coords + wc + wt actual = {key: top(lw[key]) for key in expected.keys()} for key in expected.keys(): assert expected[key] == actual[key]
destination_OP50_rows = ['D','E','F'] compound_volumes = [3, 5, 10] water_volumes = [5, 10] destination_water_cols = [['1','2','3','4'], ['5','6','7','8']] agar_thickness = +3 # mm from the bottom of the well ############################# define custom multiwell plates if '48-well-plate-sarsted' not in labware.list(): custom_plate = labware.create( '48-well-plate-sarsted', # name of you labware grid=(8, 6), # specify amount of (columns, rows) spacing=(12.4, 12.4), # distances (mm) between each (column, row) diameter=10, # diameter (mm) of each well on the plate depth=17.05, # depth (mm) of each well on the plate volume=500) # Sarsted had a "volume of work" for well in custom_plate.wells(): print(well) ############################ define labware # pipette and tiprack if pipette_type == 'p10-Single': tiprack = labware.load(tiprack_type, tiprack_slot) pipette = instruments.P10_Single( mount=pipette_mount, tip_racks=[tiprack]) pipette.start_at_tip(tiprack.well(tip_start_from))
print("Load tiprack-1000ul at slot no. ", (tip_slot)) #load 1000ul tips tiprack1000ul = labware.load('tiprack-1000ul', str(tip_slot)) P1000 = instruments.P1000_Single(mount='right', tip_racks=[tiprack1000ul]) ####### ## create and load customized 20ml scintillation vials plate #for loop is written as if the plate cannot be found in the default labware list, the new labware will be created plate_name = 'glass_20ml_v2_In' if plate_name not in labware.list(): ## create if not found labware.create( plate_name, grid=( 3, 2 ), #specify dimensions of the dimensions of the plates(columns,rows) spacing=(33, 33), #distances (mm) between each (column, row) diameter=16, #diameter (mm) of each well on the plate depth=50, #height of each well (mm) volume=20000 #maximum volume that can be put for each well (um) ) for slot in range(max_src_slot): plate_containers[slot] = labware.load(plate_name, str(slot + 1)) print("Load experiment destination plate tuberack: ", plate_name, " for ", 10 - max_src_slot, " slot") dest_slot_start = max_src_slot + 1 #print out the slot no. so users know where to put plates in which slot for slot in range(dest_slot_start, 11): print("Load ", plate_name, " at slot no. ", (slot + 1)) plate_containers[slot] = labware.load(plate_name, str(slot + 1))
from opentrons import labware, instruments, robot from sqlite3 import IntegrityError ################################################################################### # CREATE YOUR LABWARE BELOW # TO LOAD LABWARE, RUN THIS CODE WITH YOUR SPECIFICATIONS # ONCE LOADED, LABWARE WILL BE SAVED TO THE OT-2 # LOAD YOUR PROTOCOL AND THE CUSTOM LABWARE WILL BE RECOGNISED ################################################################################### try: Universals_Cold_Box = labware.create( 'Universals_Cold_Box', grid=(5,3), spacing=(25,25), diameter=20, depth=105, volume=20000 ) except IntegrityError: pass ################################################################################### ################################################################################### # PASTE YOUR CREATED LABWARE BELOW ################################################################################### # This did not work when I tried, may work again with update (Matt) # Temp_96flat = Tempdeck + standard 96 well plate # TempDeck_96-flat = labware.create(
REPLACE = False #define a dict of custom plates. Can add as many as necessary custom_plates = dict() custom_plates['CCL_ARTBot_canvas'] = dict(grid=(1, 1), spacing=(0, 0), diameter=60, depth=13, volume=100) custom_plates['falcon_6_wellplate_15.5ml_flat'] = dict(grid=(3, 2), spacing=(39.3, 39.3), diameter=34.75, depth=18, volume=15500) custom_plates['nunc_8_wellplate_flat'] = dict(grid=(4, 2), spacing=(31, 40.5), diameter=31, depth=13.3, volume=13000) for plate_name in custom_plates: if plate_name in labware.list(): if REPLACE: database.delete_container(plate_name) else: continue labware.create(plate_name, **custom_plates[plate_name])
'mix_repetitions': MIX_REPETITIONS, 'new_tip': NEW_TIP } metadata = { 'protocolName': 'RNA Extraction v0.1', 'author': 'Neil MacKenzie, Eyal Kazin <*****@*****.**>', 'source': 'Testing' #'Custom Protocol Request' } # create custom labware plate_name = 'MidSci-96-Well' if plate_name not in labware.list(): labware.create(plate_name, grid=(12, 8), spacing=(9, 9), diameter=5, depth=21, volume=200) # labware trough = labware.load('trough-12row', '2', 'trough') fresh_plate = labware.load(plate_name, '3', 'fresh plate') tips = [ labware.load('opentrons-tiprack-300ul', str(slot)) for slot in range(4, 10) ] print('-' * 50) print('Make sure the `tips` make sense!') print(tips) print('-' * 50)
drugs_mapping[(drugs_source_slot, ds)] = (src_cols, dst_cols) # print out drugs_mapping: for key, value in drugs_mapping.items(): _src_slot, _dst_slot = key _src_cols, _dst_cols = value for _src_col, _dst_col in zip(_src_cols, _dst_cols): print('slot {0} col {1} --> slot {2} col {3}'.format(_src_slot, _src_col, _dst_slot, _dst_col)) ############################# define custom multiwell plates if '96-well-plate-pcr-thermofisher' not in labware.list(): custom_plate = labware.create( '96-well-plate-pcr-thermofisher', # name of you labware grid=(12, 8), # specify amount of (columns, rows) spacing=(9.00, 9.00), # distances (mm) between each (column, row) diameter=5.50, # diameter (mm) of each well on the plate (here width at top!!) depth=15.00, # depth (mm) of each well on the plate volume=200) # as per manufacturer's website print('Wells in 96WP PCR Thermo Fisher:') for well in custom_plate.wells(): print(well) ############################ define labware # i.e. translate user-friendly parameters into opentrons language # pipette and tiprack # multi channel if multi_pipette_type == 'p10-Multi':
redefine = False if redefine is True: from opentrons.data_storage import database database.delete_container('3x2_plate') database.delete_container('3x2_plate_eppendorf') database.delete_container('3x2_plate_corning') database.delete_container('3x2_plate_falcon') # 6-well plate custom entry plate_name = '3x2_plate_eppendorf' if plate_name not in labware.list(): hydra_plate = labware.create( plate_name, grid=(3, 2), spacing=(38, 40), diameter=35, depth=17, volume=3000 ) plate_name = '3x2_plate_corning' if plate_name not in labware.list(): hydra_plate = labware.create( plate_name, grid=(3, 2), spacing=(39.12, 39.12), diameter=34.8, depth=17.4, volume=16800 )
from opentrons import labware, instruments, robot from otcustomizers import FileInput, StringSelection reservoir_name = 'biotix-resevoir' if reservoir_name not in labware.list(): labware.create(reservoir_name, grid=(1, 1), spacing=(0, 0), diameter=72, depth=23) tiprack_slots = ['1', '4', '7', '10'] resevoir = labware.load(reservoir_name, '2') source = resevoir.wells('A1') trash = robot.fixed_trash[0] example_csv = """ 90,168,187,13,70,189,196,93 56,197,147,139,74,61,44,157 106,198,45,6,46,113,111,33 28,143,185,17,199,155,78,93 185,96,60,105,143,151,18,102 139,48,111,68,179,126,59,172 111,25,84,12,63,31,34,8 24,128,106,88,124,65,133,26 61,71,109,84,85,62,89,168 58,101,121,5,122,88,27,59 43,16,156,175,190,41,78,8 66,60,164,129,106,7,198,195 """
# plate layout by column: # column 1: PBS for equilibration volume: 1.0 mL # 2: sample containing Fc volume: ? >200 uL # 3: PBS wash volume: 1.0 mL # 4: acetate pH 6.0 wash volume: 1.0 mL # 5: acetate pH 3.5 elution buffer volume: 60 uL # 6: neutralization buffer volume: as needed to aspirate 6 uL # create custom plate custom_plate_name = 'VWR_SBS_96_well_1.2mL_plate' if custom_plate_name not in labware.list(): labware.create( custom_plate_name, # name of you labware grid=(12, 8), # number of (columns, rows) spacing=(9, 9), # distances (mm) between each (column, row) diameter=8.24, # x dimension of well ** crude hack to tell API that it is a round well since x-size throws error ** # y-size=8.24, # y dimension of well depth=24.63, # depth (mm) of each well volume=1200) # volume (µL) of each well plate = labware.load(custom_plate_name, slot='2') tiprack = labware.load('opentrons_96_tiprack_300ul', '3') # pipettes pipette = instruments.P300_Multi( mount='right', aspirate_flow_rate=8, dispense_flow_rate=8, blow_out_flow_rate=16, tip_racks=[tiprack]) # *** DO NOT CALL (tiprack) in pipette.pick_up_tip() command *** !!!
import time import math from opentrons import robot, instruments, labware, modules COLD_BLOCK = '96-PCR-tall-cold-block' try: labware.create(COLD_BLOCK, grid=(12, 8), spacing=(9, 9), diameter=5, depth=15.4, volume=200) except: print("Using existing labware definition for {0}".format(COLD_BLOCK)) # Up to 48 rxns per run (4 spots on agar per rxn) # Multichannel p300, single channel p10 # This protocol is optimized for maximum walkaway time num_rxns = len(combinations_to_make) num_plates = math.ceil(num_rxns / 24) # Load in 96-well PCR plate (96-PCR-flat) on temp deck for moclos, transformation, and outgrowth. temp_deck = modules.load('tempdeck', '10') reaction_plate = labware.load('96-PCR-tall', '10', share=True) available_deck_slots = ['11', '8', '7', '5', '4', '2', '1'] # Load in 1 10ul tiprack and 2 300ul tipracks tr_10 = [labware.load('tiprack-10ul', '3'), labware.load('tiprack-10ul', '6')]
from opentrons import labware metadata = { 'protocolName': 'Create_labware_Starlab', 'author': 'James Kitson <*****@*****.**>', 'description': 'A list of the labware create commands for standard ThermoFisher consumables' } ####################################### ############## Microplates ############ ####################################### # Black Thermo micro plates compatible with the Scorpion plate stacker and plate reader plate_name = 'Thermo-237108' if plate_name not in labware.list(): custom_plate = labware.create( plate_name, # name of you labware grid=(12, 8), # specify amount of (columns, rows) spacing=(9, 9), # distances (mm) between each (column, row) diameter=7.1, # diameter (mm) of each well on the plate depth=11.2, # depth (mm) of each well on the plate volume=250)
'author': 'Jacob Agerbo Rasmussen <*****@*****.**>', 'version': '1.0', 'date': '2019/07/04', 'description': 'End Repair of Automated single tube library preperation after Carøe et al. 2017', } #### LOADING CUSTOM LABWARE #### plate_name = 'chill_rack_96' if plate_name not in labware.list(): custom_plate = labware.create( plate_name, # name of you labware grid=(12, 8), # specify amount of (columns, rows) spacing=(12, 12), # distances (mm) between each (column, row) diameter=6.4, # diameter (mm) of each well on the plate depth=15, # depth (mm) of each well on the plate volume=200) plate_name = '1ml_Covaris' if plate_name not in labware.list(): custom_plate = labware.create( plate_name, # name of you labware grid=(12, 8), # specify amount of (columns, rows) spacing=(9, 9), # distances (mm) between each (column, row) diameter=5.2, # diameter (mm) of each well on the plate depth=18.6, # depth (mm) of each well on the plate volume=1000) plate_name = 'One-Column-reservoir'
pipette.transfer(100, md_well, td_lab.wells('B3')) pipette.blow_out(td_lab.wells('B3')) # (45) Repeat # (46) Add 600 ul from A1 to magdeck pipette.transfer(600, td_lab.wells('A1'), md_well) mix(5,300,md_well) magdeck.disengage() plate_eppendorf = 'Eppendorf_Samples' if plate_eppendorf not in labware.list(): Eppendorf = labware.create( plate_eppendorf, grid = (8,4), spacing = (15,20), diameter = 10, depth = 35, volume = 100) magdeck_plate = 'MagDeck_24' if magdeck_plate not in labware.list(): labware.create( magdeck_plate, grid = (6,4), spacing = (18, 18), diameter = 10, depth = 41, volume = 1500)
_new_fillvol = fillvol #save the updated fillvol as _new_fillvol to use further #cited from "pipette.transfer" pipette._run_transfer_plan(tips, plan, **kwargs) return (pipette) # =============================== Load labware =============================== tip_name = 'Biozym-tiprack-200ul' # Add Biozym 200 ul tiprack to labware library if tip_name not in labware.list(): custom_tip = labware.create( tip_name, # name of you labware grid=(12, 8), # specify amount of (columns, rows) spacing=(9, 9), # distances (mm) between each (column, row) diameter=5.23, # diameter (mm) of each well on the plate depth=50, # depth (mm) of each well on the plate volume=200) tiprack = labware.load(tip_name, '9') # Load tiprack trough = labware.load('opentrons_10_tuberack_falcon_4x50ml_6x15ml_conical', '6') # Load reservoir pipette = instruments.P300_Single(mount='right', tip_racks=[tiprack], max_volume=200) # Load pipette plate = labware.load("flowerplate_48_wellplate_3200ul", '3') # Load wellplate
assay_start = 2 #The start of the column of 384 well plates I want to dispense TE into. assay_end = 48 #The end of the column I want to disepnse TE assay_1_start = 2 assay_2_start = 22 sample_1_start = 0 #the column of 384 well plate where the sample was first dispensed into. sample_1_end = 11 #the column of 384 well plate where the sample was last dispensed into. sample_2_start = 0 #the column of 384 well plate where the sample from plate 2 was first dispensed into. sample_2_end = 11 #the column of 384 well plate where the sample from plate 2 was last dispensed into. plate_name = 'epMotion_10mL' if plate_name not in labware.list(): custom_plate = labware.create( plate_name, # name of you labware grid=(7, 1), # specify amount of (columns, rows) spacing=(17.5, 0), # distances (mm) between each (column, row) diameter=5, # diameter (mm) of each well on the plate depth=30, # depth (mm) of each well on the plate volume=10000) PG = labware.load('epMotion_10mL', '11', 'PG') plate_384 = labware.load('corning_384_wellplate_112ul_flat', '2', 'plate') sample_1 = labware.load('biorad_96_wellplate_200ul_pcr', '3') sample_2 = labware.load('biorad_96_wellplate_200ul_pcr', '6') tiprack_200 = labware.load('tiprack-200ul', '1', 'p200rack') tiprack_10_1 = labware.load('opentrons_96_tiprack_10ul', '4') tiprack_10_2 = labware.load('opentrons_96_tiprack_10ul', '7') P10_8 = instruments.P10_Multi(mount='left',
print('Tips used so far: %d' % tc) return #%% LABWARE # Source plate src_plate = labware.load(source_type, source_slot) # Destination plates if '96-well-plate-sqfb-whatman' not in labware.list(): # Define custom 96WP Whatman plates custom_plate = labware.create( '96-well-plate-sqfb-whatman', # Name of labware grid=(12, 8), # Specify number of (columns, rows) spacing=(8.99, 8.99), # Distance (mm) between each (column, row) diameter=7.57, # Diameter (mm) of each well on the plate depth=10.35, # Depth (mm) of each well on the plate volume=650) # Volume of well as per specs (not 'working volume') print('Wells in 96WP Whatman:') for well in custom_plate.wells(): print(well) dst_plates = [labware.load(destination_type, dst_slot) for dst_slot in\ destination_slots] #%% PIPETTES # Multi-channel pipette + tip rack if multi_pipette_type == 'p50-Multi': tipracks_multi = [labware.load(tiprack_type_multi, tiprack_slot)\
'opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap', slot='7' & '8' & '9') trashBox = labware.load('trash-box', slot='12') pipette10 = instruments.P10_Single(mount='left', tip_racks=[p10Rack], trash_container=trashBox) pipette300 = instruments.P300_Single(mount='right', tip_racks=[p200Rack], trash_container=trashBox) custom_plate_name = 'greiner_384' labware.create( custom_plate_name, grid=(24, 16), spacing=(4.5, 4.5), diameter=(4), depth=(5.5), volume=(20), ) greiner380 = labware.load(custom_plate_name, slot='1') # MMX (6.840 mL) was prepared by hand and split in to 6 tubes (1.14 mL) tubeOTDBMMx = ['A1', 'A2', 'A3', 'A4', 'A5', 'A6'] #tubeOTDB = ['A1'] #tubeNTPs = ['A2'] #tubeT7RNApol = ['A3'] #tubeDFHBI = ['A4'] tubeWater = ['B1', 'B2', 'B3'] #tubeCFSMG1655 = ['B1'] #tubeCFSCH34 = ['B2'] # metals to be used tubeCu = ['B4']
from opentrons import labware, instruments, modules, robot from time import sleep from subprocess import Popen import os metadata = { 'protocolName': 'Dar cera, pulir cera', 'description': 'Applies wax to paper sheets using a custom stamp', 'source': 'https://github.com/Zildj1an/SELEX' } stamp_tiprack = "wax-stamp-tiprack" if stamp_tiprack not in labware.list(): labware.create(stamp_tiprack, grid=(4, 1), spacing=(10, 10), diameter=5, depth=5) paper_sheet = "paper-sheet" if paper_sheet not in labware.list(): labware.create(paper_sheet, grid=(4, 1), spacing=(12, 30), diameter=5, depth=2) stamps = labware.load(stamp_tiprack, slot=7) wax = labware.load('agilent_1_reservoir_290ml', slot=4) paper = labware.load(paper_sheet, slot=1)
#Small volume condition (is the volume less than or equal to this value?) small_condition = 6 #ul ###### END OF USER INPUT ####### ###Settings from opentrons import containers, instruments, robot, labware from opentrons.data_storage import database from sqlite3 import IntegrityError import math #Creating P50 Tiprack try: custom_container = labware.create( 'tiprack-Fisher200ul', # name of your container. For a tiprack, must start with 'tiprack' grid=(12, 8), # specify amount of (columns, rows) spacing=(8.5, 8.5), # distances (mm) between each (column, row) diameter=6.0, depth=60) # depth (mm) of each tip on the rack except IntegrityError: pass #Creating aluminum plate container try: custom_container = labware.create( 'full_alumina', # name of your container grid=(8, 8), # specify amount of (columns, rows) spacing=(10, 12), # distances (mm) between each (column, row) diameter=0.5, # diameter (mm) of each well on the plate depth=25) # depth (mm) of each well on the plate except IntegrityError: pass
#trashBox = labware.load('trash-box', slot='12') pipette10 = instruments.P10_Single( mount='left', tip_racks=[p10Rack] #, trash_container=trashBox ) pipette300 = instruments.P300_Single( mount='right', #tip_racks=[p200Rack]#, trash_container=trashBox ) #Defining 384 well plate custom_plate_name = 'greiner_384' if custom_plate_name not in labware.list(): labware.create(custom_plate_name, grid=(24, 16), spacing=(4.5, 4.5), diameter=4, depth=5.5, volume=20) greiner380 = labware.load(custom_plate_name, slot='1') # MMX (6.840 mL) was prepared by hand and split in to 6 tubes (1.14 mL) tubeOTDBMMx = ['A1', 'A2', 'A3', 'A4', 'A5', 'A6'] #tubeOTDB = ['A1'] #tubeNTPs = ['A2'] #tubeT7RNApol = ['A3'] #tubeDFHBI = ['A4'] tubeWater = ['B1', 'B2', 'B3', 'B4'] #tubeCFSMG1655 = ['B1'] #tubeCFSCH34 = ['B2'] # metals to be used #tubeCu = ['B4']
from opentrons import labware, instruments, robot microplate_name = 'greiner-384-square-1' if microplate_name not in labware.list(): labware.create(microplate_name, grid=(24, 16), spacing=(4.5, 4.5), diameter=3.7, depth=11.5) # labware setup destination = protocol.load_labware(microplate_name, '2', 'Destination') destination.properties['height'] = 14.5 master = protocol.load_labware(microplate_name, '1', 'Master') master.properties['height'] = 14.5 control_1 = protocol.load_labware(microplate_name, '3', 'Control 1') control_1.properties['height'] = 14.5 control_2 = protocol.load_labware(microplate_name, '5', 'Control 2') control_2.properties['height'] = 14.5 tipracks = [ protocol.load_labware('tiprack-10ul', str(slot)) for slot in ['4', '6', '7', '8'] ] # instruments setup m10 = instruments.P10_Multi(mount='left', tip_racks=tipracks) m10.set_flow_rate(aspirate=10, dispense=200)
from opentrons import labware, instruments metadata = { 'protocolName': 'Create_labware_Starlab', 'author': 'James Kitson <*****@*****.**>', 'description': 'A list of the labware create commands for standard Starlab consumables' } ####################################### ######## PCR plates and strips ######## ####################################### # Starlab 1000ul RPT filter tips - cat no. S1182-1830 without tips - USED AS TRASH TROUGH plate_name = 'trash-starlab-S1182-1830' if plate_name not in labware.list(): custom_plate = labware.create( plate_name, # name of you labware grid=(12, 8), # specify amount of (columns, rows) spacing=(9, 9), # distances (mm) between each (column, row) diameter=8, # diameter (mm) of each well on the plate depth=90.3, # depth (mm) of tiprack and holder volume=100000) ### makes sure to remove trash-tiprack-starlab-S1182-1830'
from opentrons import labware, instruments, modules, robot if '4ti0131_trough-12' not in labware.list(): custom_plate = labware.create('4ti0131_trough-12', grid=(12, 1), spacing=(9, 0), diameter=8.25, depth=39.22, volume=21000) robot.comment('4ti0131_trough-12 added to labware database') else: robot.comment( '4ti0131_trough-12 already exists in the OT2 database and has not been updated. Refer to Opentrons API and Custom_labware.csv' ) if '4ti0136_96_deep-well' not in labware.list(): custom_plate = labware.create('4ti0136_96_deep-well', grid=(12, 8), spacing=(9, 9), diameter=8.2, depth=39.15, volume=2200) robot.comment('4ti0136_96_deep-well added to labware database') else: robot.comment( '4ti0136_96_deep-well already exists in the OT2 database and has not been updated. Refer to Opentrons API and Custom_labware.csv' ) if 'Nunc_Omnitray' not in labware.list(): custom_plate = labware.create('Nunc_Omnitray', grid=(12, 8),
# print out drugs_mapping: for key, value in drugs_mapping.items(): _src_slot, _dst_slot = key _src_cols, _dst_cols = value for _src_col, _dst_col in zip(_src_cols, _dst_cols): print('slot {0} col {1} --> slot {2} col {3}'.format( _src_slot, _src_col, _dst_slot, _dst_col)) ############################# define custom multiwell plates if '48-well-plate-sarsted' not in labware.list(): custom_plate = labware.create( '48-well-plate-sarsted', # name of you labware grid=(8, 6), # specify amount of (columns, rows) spacing=(12.4, 12.4), # distances (mm) between each (column, row) diameter=10, # diameter (mm) of each well on the plate depth=17.05, # depth (mm) of each well on the plate volume=500) # Sarsted had a "volume of work" print('Wells in 48WP Sarsted:') for well in custom_plate.wells(): print(well) if '96-well-plate-sqfb-whatman' not in labware.list(): custom_plate = labware.create( '96-well-plate-sqfb-whatman', # name of you labware grid=(12, 8), # specify amount of (columns, rows) spacing=(8.99, 8.99), # distances (mm) between each (column, row) diameter= 7.57, # diameter (mm) of each well on the plate (here width at bottom)
}] } robot._driver.turn_off_rail_lights() thermocycler.wait_for_program(PROGRAM) robot.home() # Run PCR as an independent protocol # Labware and module initialization if "eppendorf_rack" not in labware.list(): labware.create("eppendorf_rack", grid=(12, 8), spacing=(9, 9), diameter=5, depth=21, volume=50) plate = labware.load('eppendorf_rack', slot='8') tiprack = labware.load('opentrons-tiprack-300ul', slot='6') ninja = NinjaPCR(slot='10', simulating=robot.is_simulating()) primer_well = 'A2' mm_well = 'B2' dna_well = 'C2' water_well = 'D2' first_mix = 'A1' second_mix = 'B1' third_mix = 'C1'