How to use the opentrons.instruments.P300_Multi function in opentrons

To help you get started, we’ve selected a few opentrons examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github Opentrons / Protocols / protocols / 599d38 / Sample_Prep_with_Mag.ot2.py View on Github external
if p50_type == 'multi':
        pip50 = instruments.P50_Multi(mount=p50_mount, tip_racks=tips50)
        [samples50, elution] = [
            plate.rows('A')[:num_cols] for plate in [
                sample_plate, elution_plate
            ]
        ]
    else:
        pip50 = instruments.P50_Single(mount=p50_mount, tip_racks=tips50)
        [samples50, elution] = [
            plate.wells()[:number_of_samples_to_process] for plate in [
                sample_plate, elution_plate
            ]
        ]
    if p300_type == 'multi':
        pip300 = instruments.P300_Multi(mount=p300_mount, tip_racks=tips300)
        [samples300, plate1, plate2A, plate2B] = [
            plate.rows('A')[:num_cols] for plate in [
                sample_plate, wash_plate1, wash_plate2A, wash_plate2B
            ]
        ]
    else:
        pip300 = instruments.P300_Single(mount=p300_mount, tip_racks=tips300)
        [samples300, plate1, plate2A, plate2B] = [
            plate.wells()[:number_of_samples_to_process] for plate in [
                sample_plate, wash_plate1, wash_plate2A, wash_plate2B
            ]
        ]

    def slot_parse(slots):
        slot_str = ''
        for i, s in enumerate(slots):
github Opentrons / Protocols / protocols / 64a0f9 / NGS_prep.ot2.py View on Github external
def run_custom_protocol(
        number_of_samples: int = 96,
        p10_single_mount: StringSelection('right', 'left') = 'right',
        p300_multi_mount: StringSelection('left', 'right') = 'left'
):
    # check
    if number_of_samples > 96 or number_of_samples < 1:
        raise Exception('Invalid sample number.')
    if p10_single_mount == p300_multi_mount:
        raise Exception('Input different mounts for pipettes.')

    # pipettes
    p10 = instruments.P10_Single(mount=p10_single_mount, tip_racks=tips10)
    m300 = instruments.P300_Multi(mount=p300_multi_mount, tip_racks=tips300)

    # reagents
    e_mm = reagent_rack.wells('A1')
    l_mm = [
        well
        for well in reagent_rack.wells()[2:2+math.ceil(number_of_samples/48)]
    ]
    pcr_mm = [
        well
        for well in reagent_rack.wells()[4:4+math.ceil(number_of_samples/48)]
    ]

    beads = reagent_res.wells('A1')
    etoh = [
        well for well in reagent_res.wells(
            'A2', length=math.ceil(number_of_samples/48)*2)
github Opentrons / Protocols / protocols / 1418-m-joey-lee-at-bioinformatics-institute-astar-part-1 / serial_dilution_A.ot2.py View on Github external
reagent_volume: int=100):

    if 'custom-resevoir' not in database.list_all_labware():
        labware.create(
             'custom-resevoir',
             grid=(1, 1),
             spacing=(63.88, 0),
             depth=25.5,
             diameter=2)
    initial_plate = labware.load('96-flat', '1')
    resevoir = labware.load('custom-resevoir', '4')
    tiprack = labware.load('opentrons-tiprack-300ul', '2')
    tiprack10 = labware.load('tiprack-10ul', '5')
    tuberack = labware.load('opentrons-tuberack-2ml-eppendorf', '3')

    m300 = instruments.P300_Multi(mount='left', tip_racks=[tiprack])
    p10 = instruments.P10_Single(mount='right', tip_racks=[tiprack10])
    # transfer sample
    p10.transfer(
        sample_volume,
        tuberack.wells(0, length=number_samples),
        initial_plate.columns('2'),
        new_tip='always')

    # perform serial dilution
    m300.pick_up_tip()
    m300.transfer(
        reagent_volume,
        resevoir,
        initial_plate.columns('2'),
        new_tip='never',
        mix_before=(3, 100)
github Opentrons / Protocols / protocols / 68b326-adapter-ligation / neb_next_ngs_prep_adaptor_ligation.ot2.py View on Github external
def run_custom_protocol(
        p300_multi_mount: StringSelection('right', 'left') = 'right',
        p10_multi_mount: StringSelection('left', 'right') = 'left',
        number_of_sample_to_process: int = 96
):
    # check
    if p300_multi_mount == p10_multi_mount:
        raise Exception('Input different mounts for P10 and P300 pipettes.')
    if number_of_sample_to_process > 96 or number_of_sample_to_process < 1:
        raise Exception('Invalid number of samples to process (should be \
between 1 and 96)')

    # pipettes
    m300 = instruments.P300_Multi(mount=p300_multi_mount, tip_racks=tips300)
    m10 = instruments.P10_Single(mount=p10_multi_mount, tip_racks=tips10)

    # setup
    num_cols = math.ceil(number_of_sample_to_process/8)
    mag_samples_multi = mag_plate.rows('A')[:num_cols]

    tip10_count = 0
    tip300_count = 0
    tip10_max = len(tips10)*12
    tip300_max = len(tips300)*12

    def pick_up(pip):
        nonlocal tip10_count
        nonlocal tip300_count

        if pip == m300:
github Opentrons / Protocols / protocols / qiaseq-pt-5 / pt5_cleanup_of_target_enrichment.ot2.py View on Github external
):
    # check
    if p10_mount == p300_mount:
        raise Exception('Input different mounts for pipettes.')

    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']]
    tips10 = [labware.load('opentrons_96_tiprack_10ul', slot)
              for slot in ['8', '9', '10', '11']]

    m300 = instruments.P300_Multi(
        mount='left',
        tip_racks=tips300
    )
    m10 = instruments.P10_Multi(
        mount='right',
        tip_racks=tips10
    )

    tip10_count = 0
    tip300_count = 0
    tip10_max = len(tips10)*12
    tip300_max = len(tips300)*12

    def pick_up(pip):
        nonlocal tip10_count
        nonlocal tip300_count
github Opentrons / Protocols / protocols / 1181-laboratory-specialists-inc / mic_dilution_prep.ot2.py View on Github external
plate = labware.load('96-flat', '1')
trough = labware.load('trough-12row', '5')
dilution_plate = labware.load('96-deep-well', '4')

# reagent setup
buffer = trough.wells('A1')
stock = trough.wells('A2')

tiprack10 = labware.load('tiprack-10ul', '6')
tiprack300 = labware.load('tiprack-200ul', '7')

m10 = instruments.P10_Multi(
    mount='right',
    tip_racks=[tiprack10])

m300 = instruments.P300_Multi(
    mount='left',
    tip_racks=[tiprack300])


def serial_dilution_calculations(
        stock_conc,
        first_conc,
        dilution_factor,
        dilution_loc,
        vol_per_well
        ):
    """
    Return the following lists:
    source_wells - locations of source well
    dil_wells - locations of dilution well
    source_vol - volumes of dilution source for each well
github Opentrons / Protocols / protocols / 1488-atlas-genomics / cherrypicking_serial_dilution.ot2.py View on Github external
depth=22,
        volume=500)

# labware setup
sample_plates = [labware.load(plate_name, str(slot))
                 for slot in range(1, 6)]
trough = labware.load(trough_name, '7')
trough_2 = labware.load(deep_plate_name, '9')
tiprack_10 = labware.load(tiprack_10_name, '8')
tiprack_300 = labware.load(tiprack_200_name, '11')

# instruments
m10 = instruments.P10_Multi(
    mount='left',
    tip_racks=[tiprack_10])
m300 = instruments.P300_Multi(
    mount='right',
    tip_racks=[tiprack_300])


dilution_csv_example = """
Buffer Volume,Sample Volume
45,5
45,5
45,5
90,10
"""


def transform_volumes(volume):
    if volume <= 200:
        return [volume]
github Opentrons / Protocols / protocols / nextera-flex-library-prep-amplify-tagmented-dna / nextera_flex_amplify_tagmented_dna.ot2.py View on Github external
# check:
    if p50_single_mount == p300_mount:
        raise Exception('Input different mounts for P50 and P300 multi-channel \
pipettes')
    if number_of_samples_to_process > 96 or number_of_samples_to_process < 1:
        raise Exception('Invalid number of samples to process (must be between \
1 and 96).')

    num_cols = math.ceil(number_of_samples_to_process/8)

    # pipettes
    p50 = instruments.P50_Single(mount=p50_single_mount, tip_racks=tips50)
    samples50 = mag_plate.wells()[:number_of_samples_to_process]

    if p300_type == 'multi':
        pip300 = instruments.P300_Multi(mount=p300_mount, tip_racks=tips300)
        samples300 = mag_plate.rows('A')[:num_cols]
    else:
        pip300 = instruments.P300_Single(mount=p300_mount, tip_racks=tips300)
        samples300 = mag_plate.wells()[:number_of_samples_to_process]

    magdeck.engage(height=18)

    # create mastermix
    if p300_type == 'multi':
        pip = p50
        num_transfers_each = math.ceil(22*number_of_samples_to_process/50)
        max_transfers = math.ceil(22*96/50)
    else:
        pip = pip300
        num_transfers_each = math.ceil(22*number_of_samples_to_process/300)
        max_transfers = math.ceil(22*96/300)
github Opentrons / Protocols / protocols / 1222-eurofins-genomics / filling_384_well_plate.ot2.py View on Github external
def run_custom_protocol(transfer_volume: float=300):

    if transfer_volume > 50:
        pipette = instruments.P300_Multi(
            mount='left',
            tip_racks=tipracks)
    else:
        pipette = instruments.P50_Multi(
            mount='right',
            tip_racks=tipracks)

    dest_1 = [well for well in output_384.rows(0)[::2]]
    for source, dest in zip(plate_1.cols(), dest_1):
        pipette.transfer(transfer_volume, source, dest)

    dest_2 = [well for well in output_384.rows(0)[1::2]]
    for source, dest in zip(plate_2.cols(), dest_2):
        pipette.transfer(transfer_volume, source, dest)

    dest_3 = [well for well in output_384.rows(1)[::2]]
github Opentrons / Protocols / protocols / 55f974-24samples / 55f974-24samples.ot2.py View on Github external
def run_custom_protocol(
        p300_mount: StringSelection('right', 'left') = 'right',
        incubation_time: int = 10,
        reservoir_height: int = 0,
        plate_height: int = 0
        ):

    # create pipettes
    p300 = instruments.P300_Multi(mount=p300_mount, tip_racks=tips_once)

    tip_count = 0
    tip_max = len(tips_once)*12

    rsht = 0-reservoir_height
    p_ht = 0-plate_height

    deep_blue = tr12.wells(0).bottom(rsht)
    mag_clear = tr12.wells(3).bottom(rsht)
    mag_bead = tr12.wells(5).bottom(rsht)
    endo_wash = tr12.wells(7).bottom(rsht)
    zyppy_el = tr12.wells(11).bottom(rsht)
    zyppy_wash = res1.wells(0).bottom(rsht)
    neu_buff = res2.wells(0).bottom(rsht)

    def pick_up():