示例#1
0
    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'
示例#3
0
    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)
示例#4
0
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)
示例#7
0
'''

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)
示例#8
0
    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]
示例#9
0
        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),
示例#11
0
   '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,
示例#12
0
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')
示例#13
0
'''

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)
示例#14
0
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
示例#15
0
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)
示例#16
0
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,
示例#18
0
            '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'
示例#19
0







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()
示例#20
0
#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])
示例#21
0
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,
示例#22
0
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
示例#23
0
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

"""
示例#24
0
#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'
示例#27
0
        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
示例#29
0
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