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): 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 __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
##################### # import standard modules from collections import OrderedDict import time import numpy as np # import Opentrons modules from opentrons import labware, instruments, modules, robot, types # magnetic module magdeck = modules.load('magdeck', '9') magdeck.disengage() # Deep well plate plate_name = 'fischerbrand_96_wellplate_2000ul' 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=(8.96, 8.96), # distances (mm) between each (column, row) diameter=8.5, # diameter (mm) of each well on the plate depth=41, # depth (mm) of each well on the plate volume=2000) # PCR plate axy_plate = 'axygen_96_wellplate_400ul' if axy_plate not in labware.list(): custom_2_plate = labware.create( axy_plate, # name of you labware grid=(12, 8), # specify amount of (columns, rows) spacing=(9, 9), # distances (mm) between each (column, row)
destination_slot = '3' destination_type = '48-well-plate-sarsted' destination_DMSO_rows = ['A','B','C'] 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)
''' 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)
for c in robot.commands(): if 'Picking up tip wells' in c: tc += 8 elif 'Picking up tip well' in c: tc += 1 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]
if destVector is not None: plan[i]["dispense"]["location"] = (plan[i]["dispense"]["location"], destVector) _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],
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),
'source' : 'https://github.com/Zildj1an/SELEX' } # [0] Our design for the three modules # X,Y,Z,A speeds for lateral,front and vertical motion for left and right # B,C plunger speed for motor #max_speed_per_axis = {'x': 600,'y': 400,'z': 125,'a': 125,'b': 40,'c': 40} max_speed_per_axis = {'x': 600,'y': 400,'z': 125,'a': 125,'b': 40,'c': 40} robot.head_speed(**max_speed_per_axis) ''' database.delete_container('Falcon_Samples') database.delete_container('Eppendorf_Samples') ''' plate_falcon = 'Falcon_Samples' if plate_falcon not in labware.list(): Falcon = labware.create( plate_falcon, grid = (3,2), spacing = (35,43), diameter = 10, depth = 110, volume = 800) plate_eppendorf = 'Eppendorf_Samples' if plate_eppendorf not in labware.list(): Eppendorf = labware.create( plate_eppendorf, grid = (8,4), spacing = (15,20), diameter = 10,
from opentrons import labware, instruments, modules, robot metadata = { 'protocolName': 'NGS Library Prep Part 2', 'author': 'Alise <*****@*****.**>', 'source': 'Custom Protocol Request' } # custom labware creation mag_plate_name = 'framestar-96-semi-skirted-PCR' if mag_plate_name not in labware.list(): labware.create(mag_plate_name, grid=(12, 8), spacing=(9, 9), diameter=5.5, depth=20.2) temp_plate_name = 'aluminum-block-framestar-96-semi-skited-PCR' if temp_plate_name not in labware.list(): labware.create(temp_plate_name, grid=(12, 8), spacing=(9, 9), diameter=5.5, depth=20.2) # labware setup reagent_plate = labware.load('PCR-strip-tall', '1') trough = labware.load('trough-12row', '2') mag_module = modules.load('magdeck', '4') mag_plate = labware.load(mag_plate_name, '4', share=True) temp_module = modules.load('tempdeck', '7')
''' from opentrons import labware, instruments, modules, robot from opentrons.data_storage import database from time import sleep metadata = { 'protocolName': 'ELONA', 'description': 'Aptamer binding', 'source': 'https://github.com/Zildj1an/SELEX' } # [1] Labware storage_name = 'Storage_Module' if storage_name not in labware.list(): Storage = labware.create(storage_name, grid=(10, 1), spacing=(12.5, 0), diameter=9, depth=40, volume=200000) Storage = labware.load(storage_name, slot=5) plate_samples = labware.load('96-flat', slot=2) plate_buffers = labware.load('96-flat', slot=3) trash_liquid = labware.load('corning_384_wellplate_112ul_flat', slot=4) Eppendorf = labware.load('Eppendorf_Samples', slot=10) tiprack_l = labware.load('opentrons-tiprack-300ul', slot=9) tiprack_r = labware.load('opentrons-tiprack-10ul', slot=6)
URL_PCR = "http://ninjapcr.local/command" URL_AUX = "http://thermaux.local/command" # [1] Labware # X,Y,Z,A speeds for lateral,front and vertical motion for left and right # B,C plunger speed for motor max_speed_per_axis = {'X': 600,'Y': 400,'Z': 125,'A': 125,'B': 40,'C': 40} robot.head_speed(**max_speed_per_axis) database.delete_container('Thermic_Module') thermic_name = 'Thermic_Module' #TODO check if thermic_name not in labware.list(): thermic = labware.create( thermic_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 = 10, # Depth (mm) of each well on the plate volume = 50) plate_samples = labware.load('96-flat', slot ='11') # Samples TODO Eppendorf 1.5 tiprack = labware.load('tiprack-10ul', slot ='6') # Tipracks magnetic = modules.load('magdeck', slot ='4') # Magnetic Deck plate_magnet = labware.load('96-flat', slot ='4', share = True) # Magnetic Deck plate thermocycler = NinjaPCR(slot='10', simulating = robot.is_simulating()) # Ninja-PCR thermic_module = labware.load(thermic_name, slot ='1') # Auxiliar thermic module trash = labware.load('trash-box', slot = '12', share = True) # Trash
destination_slot = '3' destination_type = '48-well-plate-sarsted' destination_drug_wells = [ 'A1', 'A3', 'A5', 'A7', 'B2', 'B4', 'B6', 'B8', 'C1', 'C3', 'C5', 'C7', 'D2', 'D4', 'D6', 'D8', 'E1', 'E3', 'E5', 'E7', 'F2', 'F4', 'F6', 'F8' ] destination_dmso_wells = [ 'A2', 'A4', 'A6', 'A8', 'B1', 'B3', 'B5', 'B7', 'C2', 'C4', 'C6', 'C8', 'D1', 'D3', 'D5', 'D7', 'E2', 'E4', 'E6', 'E8', 'F1', 'F3', 'F5', 'F7' ] agar_thickness = +3 # mm from the bottom of the well ############################# define custom 48wellplate if source_type not in labware.list(): custom_plate = labware.create( source_type, # 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)
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)
# Attach correct pipettors (P300 Multi on left mount) # Set OT-2 to calibrate to the bottom of wells # Calibrate OT-2 # Fill 12-row trough based on lines 57-59, prepare claseek kit end-conversion and adapter ligation mixes. from opentrons import labware, instruments, modules, robot #set robot gantry speed robot.head_speed(x=50, y=50, z=60, a=60, b=40, c=40) #To enable debug mode (all wait peroiods run for 1 min only) change debug value to 1 debug = 0 #import custom labware enzrack = 'coolrack-96' if enzrack not in labware.list(): enzrack = labware.create(enzrack, grid=(12, 8), spacing=(9, 9), diameter=5, depth=20, volume=200) #deepwell = 'deepwell-plate-96' #if deepwell not in labware.list(): #deepwell = labware.create( #deepwell, #grid=(12, 8), #spacing=(9, 9), #diameter=5, #depth=20,
'temp': 65, 'name': 'Heat', 'ramp': 0 }] } 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'
metadata = { 'protocolName' : 'Separation of cells', 'description' : 'Separation of cells', 'source' : 'https://github.com/Zildj1an/SELEX' } 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) # FUNCTIONS ························································································ def robot_wait(): if not robot.is_simulating(): robot.comment("Waiting...") robot._driver.turn_on_red_button_light()
#If false, ignores any labware that is already defined in robot 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])
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 plate holders (E2396-1641) with cuttable nonskirted cuttable PCR plates (E1403-0100) on top plate_name = 'starlab-E1403-0100' 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.5, # diameter (mm) of each well on the plate depth=21, # depth (mm) of each well on the plate volume=350) # Starlab fully skirted PCR plates (E1403-5200) (no holder needed) plate_name = 'starlab-E1403-5200' if plate_name not in labware.list(): labware.create(plate_name, grid=(12, 8), spacing=(8.9, 8.9), diameter=5.6,
dispensing_volume = 10 # M9 trough M9_source_slot = '7' M9_source_type = 'trough-12row' M9_source_well = 'A2' M9_volume = 10 # destination plates agar_thickness = +5 # mm from the bottom of the well destination_slots = ['3'] destination_type = '96-well-plate-sqfb-whatman' ############################# 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
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 """
#tubeRack9 = labware.load( # 'opentrons_24_tuberack_eppendorf_1.5ml_safelock_snapcap', slot='11' #) #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']
for ds in destination_slots: # create entry in dict dst_cols = src_cols.copy() # array of column numbers to be shuffled np.random.shuffle(dst_cols) # shuffle columns in destination. This acts in place!! 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
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'
engage() # (44) Store 300ul at 4ºC 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),
dst_cols = src_cols.copy() # array of column numbers to be shuffled np.random.shuffle( dst_cols) # shuffle columns in destination. This acts in place!! drugs_mapping[(ss, 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 '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
import logging metadata = { 'protocolName': 'ELONA', 'description': 'Aptamer binding', 'author': 'Carlos Bilbao, Pablo Villalobos', 'source': 'https://github.com/Zildj1an/SELEX' } logging.basicConfig(filename='/root/elona') log = logging.getLogger('elona') # [1] Labware storage_name = 'Storage_Module' if storage_name not in labware.list(): Storage = labware.create(storage_name, grid=(10, 1), spacing=(12.5, 0), diameter=9, depth=40, volume=200000) ninja_name = "NinjaTempDeck" if ninja_name not in labware.list(): labware.create( ninja_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