From c449201bb37aec48f4abc71735d66dda3331b661 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cramifarawi=E2=80=9D?= <“rami.farawi@opentrons.com”> Date: Sun, 10 Dec 2023 21:22:07 -0500 Subject: [PATCH] fix --- data/data/fields.csv | 7 +- protoBuilds/0845ab/0845ab.ot2.apiv2.py.json | 1297 +++++++++++++++++ protoBuilds/0845ab/README.json | 36 + protoBuilds/0845ab/metadata.json | 20 + protocols/0845ab/0845ab.ot2.apiv2.py | 248 ++++ protocols/0845ab/README.md | 63 + protocols/0845ab/fields.json | 40 + .../0845ab/labware/tmtpro18_pcr_plate.json | 1128 ++++++++++++++ 8 files changed, 2836 insertions(+), 3 deletions(-) create mode 100644 protoBuilds/0845ab/0845ab.ot2.apiv2.py.json create mode 100644 protoBuilds/0845ab/README.json create mode 100644 protoBuilds/0845ab/metadata.json create mode 100644 protocols/0845ab/0845ab.ot2.apiv2.py create mode 100644 protocols/0845ab/README.md create mode 100644 protocols/0845ab/fields.json create mode 100644 protocols/0845ab/labware/tmtpro18_pcr_plate.json diff --git a/data/data/fields.csv b/data/data/fields.csv index 664104bd5..d17f62614 100644 --- a/data/data/fields.csv +++ b/data/data/fields.csv @@ -726,7 +726,7 @@ lysis_vol,1 m10_mount,2 m1k,1 m20_mount,79 -m300_mount,107 +m300_mount,108 m300_type,2 m_mount,1 mag_bead_mix_resuspend_reps,1 @@ -910,7 +910,7 @@ num_rounds,1 num_row,1 num_rows_a,1 num_rows_b,1 -num_samp,70 +num_samp,71 num_samp_p1,1 num_samp_p2,1 num_samp_plate1,1 @@ -986,7 +986,7 @@ p1kmnt,1 p1n,1 p1num,1 p20_blowout_height,1 -p20_mount,135 +p20_mount,136 p20_multi_mount,3 p20_rate,2 p20_reservoir_height,1 @@ -1191,6 +1191,7 @@ reagent_slot_scan,2 reagent_transfer_vol,2 reagent_type,1 reagents_csv,1 +real_mode,1 reduced_speed_limit,1 relative_height,1 remove_empty_racks,1 diff --git a/protoBuilds/0845ab/0845ab.ot2.apiv2.py.json b/protoBuilds/0845ab/0845ab.ot2.apiv2.py.json new file mode 100644 index 000000000..886f6e3bd --- /dev/null +++ b/protoBuilds/0845ab/0845ab.ot2.apiv2.py.json @@ -0,0 +1,1297 @@ +{ + "content": "import math\nfrom opentrons import protocol_api\n\nmetadata = {\n 'protocolName': 'Digestion and Bead Cleanup',\n 'author': 'Rami Farawi ',\n 'source': 'Custom Protocol Request',\n 'apiLevel': '2.14'\n}\n\n\ndef run(ctx):\n\n [num_samp, real_mode, p20_mount, m300_mount] = get_values( # noqa: F821\n \"num_samp\", \"real_mode\", \"p20_mount\", \"m300_mount\")\n\n # num_samp = 48\n num_col = math.ceil(num_samp/8)\n #\n # m300_mount = 'left'\n # p20_mount = 'right'\n #\n # real_mode = True\n\n # labware\n mag_mod = ctx.load_module(\"magnetic module gen2\", 1)\n try:\n mag_plate = mag_mod.load_labware('opentrons_96_wellplate_200ul_pcr_full_skirt') # noqa: E501\n\n except FileNotFoundError:\n mag_plate = mag_mod.load_labware('nest_96_wellplate_100ul_pcr_full_skirt') # noqa: E501\n\n try:\n old_plate = ctx.load_labware('opentrons_96_wellplate_200ul_pcr_full_skirt', 2) # noqa: E501\n except FileNotFoundError:\n old_plate = ctx.load_labware('nest_96_wellplate_100ul_pcr_full_skirt', 2)\n\n tuberack = ctx.load_labware('opentrons_24_tuberack_eppendorf_2ml_safelock_snapcap', 3) # noqa: E501\n\n reservoir = ctx.load_labware('nest_12_reservoir_15ml', 6)\n trash = ctx.load_labware('nest_1_reservoir_195ml', 8).wells()[0].top()\n tmt_plate = ctx.load_labware('tmtpro18_pcr_plate', 9)\n\n if not ctx.is_simulating:\n\n hs_mod = ctx.load_module('heaterShakerModuleV1', 10)\n hs_mod.close_labware_latch()\n else:\n dummy = ctx.load_labware('nest_12_reservoir_15ml', 10)\n dummy = dummy\n\n tips300 = [ctx.load_labware('opentrons_96_tiprack_300ul', slot)\n for slot in [4, 5]]\n tips20 = [ctx.load_labware('opentrons_96_tiprack_20ul', slot)\n for slot in [7, 11]]\n\n # pipettes\n p20 = ctx.load_instrument('p20_single_gen2', p20_mount, tip_racks=tips20)\n m300 = ctx.load_instrument('p300_multi_gen2', m300_mount,\n tip_racks=tips300)\n\n def slow_tip_withdrawal(pipette, well_location, to_center=False):\n pipette.default_speed = 10\n if to_center is False:\n pipette.move_to(well_location.top())\n else:\n pipette.move_to(well_location.center())\n pipette.default_speed = 400\n\n def pick_up(pip):\n try:\n pip.pick_up_tip()\n except protocol_api.labware.OutOfTipsError:\n ctx.pause(f\"Replace empty tip rack for {pip}\")\n pip.reset_tipracks()\n pip.pick_up_tip()\n\n # mapping\n sample_cols = old_plate.rows()[0][:num_col]\n dest_cols = mag_plate.rows()[0][:num_col]\n dest_wells = [well for well in mag_plate.wells()[:num_samp]]\n\n pool_well1 = tuberack['B1']\n pool_well2 = tuberack['B2']\n pool_well3 = tuberack['B3']\n\n num_pools = int(num_samp/16)\n\n all_pools = [pool_well1, pool_well2, pool_well3][:num_pools]\n\n acn = reservoir['A1']\n ethanol = reservoir['A2']\n\n beads = tuberack['A1']\n mm_teab = tuberack['A2']\n ha = tuberack['A3']\n formic_acid = tuberack['A4']\n\n digestion_solution = tmt_plate['A12']\n\n # protocol\n ctx.comment('\\n---------------ADDING BEADS TO PLATES----------------\\n\\n')\n\n pick_up(p20)\n p20.mix(20, 20, beads, rate=1.5)\n for well in dest_wells:\n p20.aspirate(4, beads)\n slow_tip_withdrawal(p20, beads)\n p20.dispense(4, well)\n slow_tip_withdrawal(p20, beads)\n p20.blow_out()\n p20.drop_tip() if real_mode else p20.return_tip()\n\n ctx.comment('\\n---------------Transferring Sample----------------\\n\\n')\n for s, d in zip(sample_cols, dest_cols):\n pick_up(m300)\n m300.aspirate(30, s)\n m300.dispense(30, d)\n m300.blow_out()\n m300.drop_tip() if real_mode else m300.return_tip()\n\n ctx.comment('\\n---------------Transferring ACN----------------\\n\\n')\n for col in dest_cols:\n pick_up(m300)\n m300.aspirate(70, acn)\n m300.dispense(70, col)\n m300.mix(3, 85, col, rate=0.7)\n m300.drop_tip() if real_mode else m300.return_tip()\n\n ctx.delay(minutes=2 if real_mode else 0.5)\n\n mag_mod.engage(height_from_base=1)\n\n ctx.delay(minutes=5 if real_mode else 0.5)\n\n ctx.comment('\\n---------------Removing Super----------------\\n\\n')\n pick_up(m300)\n for col in dest_cols:\n m300.aspirate(100, col, rate=0.1)\n m300.aspirate(10, col.bottom(z=0.5), rate=0.1)\n m300.dispense(110, trash)\n ctx.delay(seconds=1.5)\n m300.blow_out()\n m300.drop_tip() if real_mode else m300.return_tip()\n\n for _ in range(2):\n ctx.comment('\\n---------------Adding Ethanol----------------\\n\\n')\n pick_up(m300)\n for col in dest_cols:\n m300.aspirate(100, ethanol, rate=0.1)\n slow_tip_withdrawal(m300, ethanol)\n m300.dispense(100, col.top())\n m300.drop_tip() if real_mode else m300.return_tip()\n\n ctx.comment('\\n---------------Removing Ethanol----------------\\n\\n')\n pick_up(m300)\n for col in dest_cols:\n m300.aspirate(100, col, rate=0.1)\n m300.aspirate(10, col.bottom(z=0.5), rate=0.1)\n m300.dispense(110, trash)\n ctx.delay(seconds=1.5)\n m300.blow_out()\n m300.drop_tip() if real_mode else m300.return_tip()\n\n mag_mod.disengage()\n\n ctx.comment('\\n--------------ADDING Digestion Solution--------------\\n\\n')\n for col in dest_cols:\n pick_up(m300)\n m300.aspirate(20, digestion_solution)\n m300.dispense(20, col)\n m300.mix(2, 15, col)\n m300.blow_out()\n m300.drop_tip() if real_mode else m300.return_tip()\n\n if not ctx.is_simulating:\n hs_mod.open_labware_latch()\n ctx.pause('Move plate to heater shaker')\n if not ctx.is_simulating:\n hs_mod.close_labware_latch()\n hs_mod.set_and_wait_for_temperature(37)\n ctx.pause('Overnight Digestion')\n if not ctx.is_simulating:\n hs_mod.deactivate_heater()\n hs_mod.open_labware_latch()\n ctx.pause(\"Move plate to magnetic module\")\n\n mag_mod.engage(height_from_base=1)\n ctx.delay(minutes=2 if real_mode else 0.5)\n\n ctx.comment('\\n---------------Transferring Sample----------------\\n\\n')\n new_cols = mag_plate.rows()[0][num_col:num_col+num_col]\n new_wells = [well for col in mag_plate.columns()[num_col:num_col+num_col]\n for well in col]\n\n for s, d in zip(dest_cols, new_cols):\n pick_up(m300)\n m300.aspirate(20, s, rate=0.05)\n m300.dispense(20, d)\n m300.move_to(d.top())\n ctx.delay(seconds=1.5)\n m300.blow_out()\n m300.touch_tip()\n m300.drop_tip() if real_mode else m300.return_tip()\n\n tmt_wells = [well for col in tmt_plate.columns()[:num_col]\n for well in col]\n\n for well in tmt_wells:\n pick_up(p20)\n p20.aspirate(5, mm_teab)\n p20.dispense(5, well)\n p20.mix(3, 20, well)\n p20.drop_tip() if real_mode else p20.return_tip()\n\n ctx.comment('\\n-----From TMT Wells to Sample Wells----------\\n\\n')\n for s, d in zip(tmt_wells, new_wells):\n pick_up(p20)\n p20.aspirate(9, s)\n p20.dispense(9, d)\n p20.mix(3, 20, d)\n p20.drop_tip() if real_mode else p20.return_tip()\n\n ctx.delay(minutes=60 if real_mode else 0.5)\n\n for well in new_wells:\n pick_up(p20)\n p20.aspirate(5, ha)\n p20.dispense(5, well)\n p20.mix(1, 20, well)\n p20.drop_tip() if real_mode else p20.return_tip()\n\n ctx.delay(minutes=15 if real_mode else 0.5)\n # WHAT IS POOL VOLUME?\n for pool in all_pools:\n pick_up(p20)\n for well in new_wells:\n for _ in range(2):\n p20.aspirate(20, well)\n p20.dispense(20, pool)\n p20.drop_tip() if real_mode else p20.return_tip()\n\n for pool in all_pools:\n pick_up(p20)\n p20.aspirate(10, formic_acid)\n p20.dispense(10, pool)\n p20.mix(3, 20, pool)\n p20.drop_tip() if real_mode else p20.return_tip()\n", + "custom_labware_defs": [ + { + "brand": { + "brand": "Sarstedt, Opentrons", + "brandId": [ + "72.985.002", + "991-00076" + ] + }, + "cornerOffsetFromSlot": { + "x": 0, + "y": 0, + "z": 0 + }, + "dimensions": { + "xDimension": 127.76, + "yDimension": 85.48, + "zDimension": 25.06 + }, + "groups": [ + { + "metadata": { + "wellBottomShape": "v" + }, + "wells": [ + "A1", + "B1", + "C1", + "D1", + "E1", + "F1", + "G1", + "H1", + "A2", + "B2", + "C2", + "D2", + "E2", + "F2", + "G2", + "H2", + "A3", + "B3", + "C3", + "D3", + "E3", + "F3", + "G3", + "H3", + "A4", + "B4", + "C4", + "D4", + "E4", + "F4", + "G4", + "H4", + "A5", + "B5", + "C5", + "D5", + "E5", + "F5", + "G5", + "H5", + "A6", + "B6", + "C6", + "D6", + "E6", + "F6", + "G6", + "H6", + "A7", + "B7", + "C7", + "D7", + "E7", + "F7", + "G7", + "H7", + "A8", + "B8", + "C8", + "D8", + "E8", + "F8", + "G8", + "H8", + "A9", + "B9", + "C9", + "D9", + "E9", + "F9", + "G9", + "H9", + "A10", + "B10", + "C10", + "D10", + "E10", + "F10", + "G10", + "H10", + "A11", + "B11", + "C11", + "D11", + "E11", + "F11", + "G11", + "H11", + "A12", + "B12", + "C12", + "D12", + "E12", + "F12", + "G12", + "H12" + ] + } + ], + "metadata": { + "displayCategory": "wellPlate", + "displayName": "TMTpro18 PCR strip plate", + "displayVolumeUnits": "\u00b5L", + "tags": [] + }, + "namespace": "custom_beta", + "ordering": [ + [ + "A1", + "B1", + "C1", + "D1", + "E1", + "F1", + "G1", + "H1" + ], + [ + "A2", + "B2", + "C2", + "D2", + "E2", + "F2", + "G2", + "H2" + ], + [ + "A3", + "B3", + "C3", + "D3", + "E3", + "F3", + "G3", + "H3" + ], + [ + "A4", + "B4", + "C4", + "D4", + "E4", + "F4", + "G4", + "H4" + ], + [ + "A5", + "B5", + "C5", + "D5", + "E5", + "F5", + "G5", + "H5" + ], + [ + "A6", + "B6", + "C6", + "D6", + "E6", + "F6", + "G6", + "H6" + ], + [ + "A7", + "B7", + "C7", + "D7", + "E7", + "F7", + "G7", + "H7" + ], + [ + "A8", + "B8", + "C8", + "D8", + "E8", + "F8", + "G8", + "H8" + ], + [ + "A9", + "B9", + "C9", + "D9", + "E9", + "F9", + "G9", + "H9" + ], + [ + "A10", + "B10", + "C10", + "D10", + "E10", + "F10", + "G10", + "H10" + ], + [ + "A11", + "B11", + "C11", + "D11", + "E11", + "F11", + "G11", + "H11" + ], + [ + "A12", + "B12", + "C12", + "D12", + "E12", + "F12", + "G12", + "H12" + ] + ], + "parameters": { + "format": "irregular", + "isMagneticModuleCompatible": false, + "isTiprack": false, + "loadName": "tmtpro18_pcr_plate", + "quirks": [] + }, + "schemaVersion": 2, + "version": 1, + "wells": { + "A1": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 14.38, + "y": 74.24, + "z": 5.43 + }, + "A10": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 95.38, + "y": 74.24, + "z": 5.43 + }, + "A11": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 104.38, + "y": 74.24, + "z": 5.43 + }, + "A12": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 113.38, + "y": 74.24, + "z": 5.43 + }, + "A2": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 23.38, + "y": 74.24, + "z": 5.43 + }, + "A3": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 32.38, + "y": 74.24, + "z": 5.43 + }, + "A4": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 41.38, + "y": 74.24, + "z": 5.43 + }, + "A5": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 50.38, + "y": 74.24, + "z": 5.43 + }, + "A6": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 59.38, + "y": 74.24, + "z": 5.43 + }, + "A7": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 68.38, + "y": 74.24, + "z": 5.43 + }, + "A8": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 77.38, + "y": 74.24, + "z": 5.43 + }, + "A9": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 86.38, + "y": 74.24, + "z": 5.43 + }, + "B1": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 14.38, + "y": 65.24, + "z": 5.43 + }, + "B10": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 95.38, + "y": 65.24, + "z": 5.43 + }, + "B11": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 104.38, + "y": 65.24, + "z": 5.43 + }, + "B12": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 113.38, + "y": 65.24, + "z": 5.43 + }, + "B2": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 23.38, + "y": 65.24, + "z": 5.43 + }, + "B3": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 32.38, + "y": 65.24, + "z": 5.43 + }, + "B4": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 41.38, + "y": 65.24, + "z": 5.43 + }, + "B5": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 50.38, + "y": 65.24, + "z": 5.43 + }, + "B6": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 59.38, + "y": 65.24, + "z": 5.43 + }, + "B7": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 68.38, + "y": 65.24, + "z": 5.43 + }, + "B8": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 77.38, + "y": 65.24, + "z": 5.43 + }, + "B9": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 86.38, + "y": 65.24, + "z": 5.43 + }, + "C1": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 14.38, + "y": 56.24, + "z": 5.43 + }, + "C10": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 95.38, + "y": 56.24, + "z": 5.43 + }, + "C11": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 104.38, + "y": 56.24, + "z": 5.43 + }, + "C12": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 113.38, + "y": 56.24, + "z": 5.43 + }, + "C2": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 23.38, + "y": 56.24, + "z": 5.43 + }, + "C3": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 32.38, + "y": 56.24, + "z": 5.43 + }, + "C4": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 41.38, + "y": 56.24, + "z": 5.43 + }, + "C5": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 50.38, + "y": 56.24, + "z": 5.43 + }, + "C6": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 59.38, + "y": 56.24, + "z": 5.43 + }, + "C7": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 68.38, + "y": 56.24, + "z": 5.43 + }, + "C8": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 77.38, + "y": 56.24, + "z": 5.43 + }, + "C9": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 86.38, + "y": 56.24, + "z": 5.43 + }, + "D1": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 14.38, + "y": 47.24, + "z": 5.43 + }, + "D10": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 95.38, + "y": 47.24, + "z": 5.43 + }, + "D11": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 104.38, + "y": 47.24, + "z": 5.43 + }, + "D12": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 113.38, + "y": 47.24, + "z": 5.43 + }, + "D2": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 23.38, + "y": 47.24, + "z": 5.43 + }, + "D3": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 32.38, + "y": 47.24, + "z": 5.43 + }, + "D4": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 41.38, + "y": 47.24, + "z": 5.43 + }, + "D5": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 50.38, + "y": 47.24, + "z": 5.43 + }, + "D6": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 59.38, + "y": 47.24, + "z": 5.43 + }, + "D7": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 68.38, + "y": 47.24, + "z": 5.43 + }, + "D8": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 77.38, + "y": 47.24, + "z": 5.43 + }, + "D9": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 86.38, + "y": 47.24, + "z": 5.43 + }, + "E1": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 14.38, + "y": 38.24, + "z": 5.43 + }, + "E10": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 95.38, + "y": 38.24, + "z": 5.43 + }, + "E11": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 104.38, + "y": 38.24, + "z": 5.43 + }, + "E12": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 113.38, + "y": 38.24, + "z": 5.43 + }, + "E2": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 23.38, + "y": 38.24, + "z": 5.43 + }, + "E3": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 32.38, + "y": 38.24, + "z": 5.43 + }, + "E4": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 41.38, + "y": 38.24, + "z": 5.43 + }, + "E5": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 50.38, + "y": 38.24, + "z": 5.43 + }, + "E6": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 59.38, + "y": 38.24, + "z": 5.43 + }, + "E7": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 68.38, + "y": 38.24, + "z": 5.43 + }, + "E8": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 77.38, + "y": 38.24, + "z": 5.43 + }, + "E9": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 86.38, + "y": 38.24, + "z": 5.43 + }, + "F1": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 14.38, + "y": 29.24, + "z": 5.43 + }, + "F10": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 95.38, + "y": 29.24, + "z": 5.43 + }, + "F11": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 104.38, + "y": 29.24, + "z": 5.43 + }, + "F12": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 113.38, + "y": 29.24, + "z": 5.43 + }, + "F2": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 23.38, + "y": 29.24, + "z": 5.43 + }, + "F3": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 32.38, + "y": 29.24, + "z": 5.43 + }, + "F4": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 41.38, + "y": 29.24, + "z": 5.43 + }, + "F5": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 50.38, + "y": 29.24, + "z": 5.43 + }, + "F6": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 59.38, + "y": 29.24, + "z": 5.43 + }, + "F7": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 68.38, + "y": 29.24, + "z": 5.43 + }, + "F8": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 77.38, + "y": 29.24, + "z": 5.43 + }, + "F9": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 86.38, + "y": 29.24, + "z": 5.43 + }, + "G1": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 14.38, + "y": 20.24, + "z": 5.43 + }, + "G10": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 95.38, + "y": 20.24, + "z": 5.43 + }, + "G11": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 104.38, + "y": 20.24, + "z": 5.43 + }, + "G12": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 113.38, + "y": 20.24, + "z": 5.43 + }, + "G2": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 23.38, + "y": 20.24, + "z": 5.43 + }, + "G3": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 32.38, + "y": 20.24, + "z": 5.43 + }, + "G4": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 41.38, + "y": 20.24, + "z": 5.43 + }, + "G5": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 50.38, + "y": 20.24, + "z": 5.43 + }, + "G6": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 59.38, + "y": 20.24, + "z": 5.43 + }, + "G7": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 68.38, + "y": 20.24, + "z": 5.43 + }, + "G8": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 77.38, + "y": 20.24, + "z": 5.43 + }, + "G9": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 86.38, + "y": 20.24, + "z": 5.43 + }, + "H1": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 14.38, + "y": 11.24, + "z": 5.43 + }, + "H10": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 95.38, + "y": 11.24, + "z": 5.43 + }, + "H11": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 104.38, + "y": 11.24, + "z": 5.43 + }, + "H12": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 113.38, + "y": 11.24, + "z": 5.43 + }, + "H2": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 23.38, + "y": 11.24, + "z": 5.43 + }, + "H3": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 32.38, + "y": 11.24, + "z": 5.43 + }, + "H4": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 41.38, + "y": 11.24, + "z": 5.43 + }, + "H5": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 50.38, + "y": 11.24, + "z": 5.43 + }, + "H6": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 59.38, + "y": 11.24, + "z": 5.43 + }, + "H7": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 68.38, + "y": 11.24, + "z": 5.43 + }, + "H8": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 77.38, + "y": 11.24, + "z": 5.43 + }, + "H9": { + "depth": 19.63, + "diameter": 5.3, + "shape": "circular", + "totalLiquidVolume": 200, + "x": 86.38, + "y": 11.24, + "z": 5.43 + } + } + } + ], + "fields": [ + { + "label": "Number of Samples", + "name": "num_samp", + "options": [ + { + "label": "Monoplo (16)", + "value": 16 + }, + { + "label": "Duplo (32)", + "value": 32 + }, + { + "label": "Triplo (48)", + "value": 48 + } + ], + "type": "dropDown" + }, + { + "label": "Test Mode or Real Mode?", + "name": "real_mode", + "options": [ + { + "label": "Real Mode (real incubation times, drop tip in trash)", + "value": true + }, + { + "label": "Test Mode (shortened incubation time, return tip to rack)", + "value": false + } + ], + "type": "dropDown" + }, + { + "label": "P20 Single-Channel Mount", + "name": "p20_mount", + "options": [ + { + "label": "Right", + "value": "right" + }, + { + "label": "Left", + "value": "left" + } + ], + "type": "dropDown" + }, + { + "label": "P300 Multi-Channel Mount", + "name": "m300_mount", + "options": [ + { + "label": "Left", + "value": "left" + }, + { + "label": "Right", + "value": "right" + } + ], + "type": "dropDown" + } + ], + "instruments": [ + { + "mount": "left", + "name": "p300_multi_gen2" + }, + { + "mount": "right", + "name": "p20_single_gen2" + } + ], + "labware": [ + { + "name": "NEST 96 Well Plate 100 \u00b5L PCR Full Skirt on Magnetic Module GEN2 on 1", + "share": false, + "slot": "1", + "type": "nest_96_wellplate_100ul_pcr_full_skirt" + }, + { + "name": "NEST 96 Well Plate 100 \u00b5L PCR Full Skirt on 2", + "share": false, + "slot": "2", + "type": "nest_96_wellplate_100ul_pcr_full_skirt" + }, + { + "name": "Opentrons 24 Tube Rack with Eppendorf 2 mL Safe-Lock Snapcap on 3", + "share": false, + "slot": "3", + "type": "opentrons_24_tuberack_eppendorf_2ml_safelock_snapcap" + }, + { + "name": "Opentrons 96 Tip Rack 300 \u00b5L on 4", + "share": false, + "slot": "4", + "type": "opentrons_96_tiprack_300ul" + }, + { + "name": "Opentrons 96 Tip Rack 300 \u00b5L on 5", + "share": false, + "slot": "5", + "type": "opentrons_96_tiprack_300ul" + }, + { + "name": "NEST 12 Well Reservoir 15 mL on 6", + "share": false, + "slot": "6", + "type": "nest_12_reservoir_15ml" + }, + { + "name": "Opentrons 96 Tip Rack 20 \u00b5L on 7", + "share": false, + "slot": "7", + "type": "opentrons_96_tiprack_20ul" + }, + { + "name": "NEST 1 Well Reservoir 195 mL on 8", + "share": false, + "slot": "8", + "type": "nest_1_reservoir_195ml" + }, + { + "name": "TMTpro18 PCR strip plate on 9", + "share": false, + "slot": "9", + "type": "tmtpro18_pcr_plate" + }, + { + "name": "NEST 12 Well Reservoir 15 mL on 10", + "share": false, + "slot": "10", + "type": "nest_12_reservoir_15ml" + }, + { + "name": "Opentrons 96 Tip Rack 20 \u00b5L on 11", + "share": false, + "slot": "11", + "type": "opentrons_96_tiprack_20ul" + }, + { + "name": "Opentrons Fixed Trash on 12", + "share": false, + "slot": "12", + "type": "opentrons_1_trash_1100ml_fixed" + } + ], + "metadata": { + "apiLevel": "2.14", + "author": "Rami Farawi ", + "protocolName": "Digestion and Bead Cleanup", + "source": "Custom Protocol Request" + }, + "modules": [ + { + "name": "MagneticModuleContext at Magnetic Module GEN2 on 1 lw NEST 96 Well Plate 100 \u00b5L PCR Full Skirt on Magnetic Module GEN2 on 1", + "share": false, + "slot": "1", + "type": "magdeck" + } + ] +} \ No newline at end of file diff --git a/protoBuilds/0845ab/README.json b/protoBuilds/0845ab/README.json new file mode 100644 index 000000000..026830a3f --- /dev/null +++ b/protoBuilds/0845ab/README.json @@ -0,0 +1,36 @@ +{ + "author": "Opentrons", + "categories": { + "Broad Category": [ + "Specific Category" + ] + }, + "deck-setup": "", + "description": "This protocol does stuff!", + "internal": "0845ab", + "labware": "\nTMTpro18 PCR strip plate #72.985.002\nNEST 96 Well Plate 100 \u00b5L PCR Full Skirt #402501\nOpentrons 24 Tube Rack with Eppendorf 2 mL Safe-Lock Snapcap\nOpentrons 96 Tip Rack 300 \u00b5L\nNEST 12 Well Reservoir 15 mL #360102\nOpentrons 96 Tip Rack 20 \u00b5L\nNEST 1 Well Reservoir 195 mL #360103\n", + "markdown": { + "author": "[Opentrons](https://opentrons.com/)\n\n\n", + "categories": "* Broad Category\n\t* Specific Category\n\n\n", + "deck-setup": "![deck](https://opentrons-protocol-library-website.s3.amazonaws.com/custom-README-images/0845ab/deck.png)\n\n\n", + "description": "This protocol does stuff!\n\n\n", + "internal": "0845ab\n", + "labware": "* TMTpro18 PCR strip plate #72.985.002\n* [NEST 96 Well Plate 100 \u00b5L PCR Full Skirt #402501](http://www.cell-nest.com/page94?_l=en&product_id=97&product_category=96)\n* [Opentrons 24 Tube Rack with Eppendorf 2 mL Safe-Lock Snapcap](https://shop.opentrons.com/collections/opentrons-tips/products/tube-rack-set-1)\n* [Opentrons 96 Tip Rack 300 \u00b5L](https://shop.opentrons.com/collections/opentrons-tips/products/opentrons-300ul-tips)\n* [NEST 12 Well Reservoir 15 mL #360102](http://www.cell-nest.com/page94?_l=en&product_id=102)\n* [Opentrons 96 Tip Rack 20 \u00b5L](https://shop.opentrons.com/collections/opentrons-tips/products/opentrons-10ul-tips)\n* [NEST 1 Well Reservoir 195 mL #360103](http://www.cell-nest.com/page94?_l=en&product_id=102)\n\n\n", + "modules": "* [Opentrons Magnetic Module (GEN2)](https://shop.opentrons.com/magnetic-module-gen2/)\n\n\n", + "notes": "If you have any questions about this protocol, please contact the Protocol Development Team by filling out the [Troubleshooting Survey](https://protocol-troubleshooting.paperform.co/).\n\n\n", + "pipettes": "* [Opentrons P20 Single Channel Electronic Pipette (GEN2)](https://shop.opentrons.com/single-channel-electronic-pipette-p20/)\n* [Opentrons P300 8 Channel Electronic Pipette (GEN2)](https://shop.opentrons.com/8-channel-electronic-pipette/)\n\n\n", + "process": "1. Input your protocol parameters above.\n2. Download your protocol and unzip if needed.\n3. Upload your custom labware to the [OT App](https://opentrons.com/ot-app) by navigating to `More` > `Custom Labware` > `Add Labware`, and selecting your labware files (.json extensions) if needed.\n4. Upload your protocol file (.py extension) to the [OT App](https://opentrons.com/ot-app) in the `Protocol` tab.\n5. Set up your deck according to the deck map.\n6. Calibrate your labware, tiprack and pipette using the OT App. For calibration tips, check out our [support articles](https://support.opentrons.com/en/collections/1559720-guide-for-getting-started-with-the-ot-2).\n7. Hit \"Run\".\n\n\n", + "protocol-steps": "1. Step 1...\n\n\n", + "reagent-setup": "![reagents](https://opentrons-protocol-library-website.s3.amazonaws.com/custom-README-images/0845ab/reagents.png)\n\n\n", + "title": "Digestion and Bead Cleanup" + }, + "modules": [ + "Opentrons Magnetic Module (GEN2)" + ], + "notes": "If you have any questions about this protocol, please contact the Protocol Development Team by filling out the Troubleshooting Survey.", + "pipettes": "\nOpentrons P20 Single Channel Electronic Pipette (GEN2)\nOpentrons P300 8 Channel Electronic Pipette (GEN2)\n", + "process": "\nInput your protocol parameters above.\nDownload your protocol and unzip if needed.\nUpload your custom labware to the OT App by navigating to More > Custom Labware > Add Labware, and selecting your labware files (.json extensions) if needed.\nUpload your protocol file (.py extension) to the OT App in the Protocol tab.\nSet up your deck according to the deck map.\nCalibrate your labware, tiprack and pipette using the OT App. For calibration tips, check out our support articles.\nHit \"Run\".\n", + "protocol-steps": "\nStep 1...\n", + "reagent-setup": "", + "title": "Digestion and Bead Cleanup" +} \ No newline at end of file diff --git a/protoBuilds/0845ab/metadata.json b/protoBuilds/0845ab/metadata.json new file mode 100644 index 000000000..d554689fd --- /dev/null +++ b/protoBuilds/0845ab/metadata.json @@ -0,0 +1,20 @@ +{ + "files": { + "OT 1 protocol": [], + "OT 2 protocol": [ + "0845ab.ot2.apiv2.py" + ], + "description": [ + "README.md" + ] + }, + "flags": { + "embedded-app": false, + "feature": false, + "hide-from-search": false, + "skip-tests": false + }, + "path": "protocols/0845ab", + "slug": "0845ab", + "status": "ok" +} \ No newline at end of file diff --git a/protocols/0845ab/0845ab.ot2.apiv2.py b/protocols/0845ab/0845ab.ot2.apiv2.py new file mode 100644 index 000000000..df9b1e3bc --- /dev/null +++ b/protocols/0845ab/0845ab.ot2.apiv2.py @@ -0,0 +1,248 @@ +import math +from opentrons import protocol_api + +metadata = { + 'protocolName': 'Digestion and Bead Cleanup', + 'author': 'Rami Farawi ', + 'source': 'Custom Protocol Request', + 'apiLevel': '2.14' +} + + +def run(ctx): + + [num_samp, real_mode, p20_mount, m300_mount] = get_values( # noqa: F821 + "num_samp", "real_mode", "p20_mount", "m300_mount") + + # num_samp = 48 + num_col = math.ceil(num_samp/8) + # + # m300_mount = 'left' + # p20_mount = 'right' + # + # real_mode = True + + # labware + mag_mod = ctx.load_module("magnetic module gen2", 1) + try: + mag_plate = mag_mod.load_labware('opentrons_96_wellplate_200ul_pcr_full_skirt') # noqa: E501 + + except FileNotFoundError: + mag_plate = mag_mod.load_labware('nest_96_wellplate_100ul_pcr_full_skirt') # noqa: E501 + + try: + old_plate = ctx.load_labware('opentrons_96_wellplate_200ul_pcr_full_skirt', 2) # noqa: E501 + except FileNotFoundError: + old_plate = ctx.load_labware('nest_96_wellplate_100ul_pcr_full_skirt', 2) + + tuberack = ctx.load_labware('opentrons_24_tuberack_eppendorf_2ml_safelock_snapcap', 3) # noqa: E501 + + reservoir = ctx.load_labware('nest_12_reservoir_15ml', 6) + trash = ctx.load_labware('nest_1_reservoir_195ml', 8).wells()[0].top() + tmt_plate = ctx.load_labware('tmtpro18_pcr_plate', 9) + + if not ctx.is_simulating: + + hs_mod = ctx.load_module('heaterShakerModuleV1', 10) + hs_mod.close_labware_latch() + else: + dummy = ctx.load_labware('nest_12_reservoir_15ml', 10) + dummy = dummy + + tips300 = [ctx.load_labware('opentrons_96_tiprack_300ul', slot) + for slot in [4, 5]] + tips20 = [ctx.load_labware('opentrons_96_tiprack_20ul', slot) + for slot in [7, 11]] + + # pipettes + p20 = ctx.load_instrument('p20_single_gen2', p20_mount, tip_racks=tips20) + m300 = ctx.load_instrument('p300_multi_gen2', m300_mount, + tip_racks=tips300) + + def slow_tip_withdrawal(pipette, well_location, to_center=False): + pipette.default_speed = 10 + if to_center is False: + pipette.move_to(well_location.top()) + else: + pipette.move_to(well_location.center()) + pipette.default_speed = 400 + + def pick_up(pip): + try: + pip.pick_up_tip() + except protocol_api.labware.OutOfTipsError: + ctx.pause(f"Replace empty tip rack for {pip}") + pip.reset_tipracks() + pip.pick_up_tip() + + # mapping + sample_cols = old_plate.rows()[0][:num_col] + dest_cols = mag_plate.rows()[0][:num_col] + dest_wells = [well for well in mag_plate.wells()[:num_samp]] + + pool_well1 = tuberack['B1'] + pool_well2 = tuberack['B2'] + pool_well3 = tuberack['B3'] + + num_pools = int(num_samp/16) + + all_pools = [pool_well1, pool_well2, pool_well3][:num_pools] + + acn = reservoir['A1'] + ethanol = reservoir['A2'] + + beads = tuberack['A1'] + mm_teab = tuberack['A2'] + ha = tuberack['A3'] + formic_acid = tuberack['A4'] + + digestion_solution = tmt_plate['A12'] + + # protocol + ctx.comment('\n---------------ADDING BEADS TO PLATES----------------\n\n') + + pick_up(p20) + p20.mix(20, 20, beads, rate=1.5) + for well in dest_wells: + p20.aspirate(4, beads) + slow_tip_withdrawal(p20, beads) + p20.dispense(4, well) + slow_tip_withdrawal(p20, beads) + p20.blow_out() + p20.drop_tip() if real_mode else p20.return_tip() + + ctx.comment('\n---------------Transferring Sample----------------\n\n') + for s, d in zip(sample_cols, dest_cols): + pick_up(m300) + m300.aspirate(30, s) + m300.dispense(30, d) + m300.blow_out() + m300.drop_tip() if real_mode else m300.return_tip() + + ctx.comment('\n---------------Transferring ACN----------------\n\n') + for col in dest_cols: + pick_up(m300) + m300.aspirate(70, acn) + m300.dispense(70, col) + m300.mix(3, 85, col, rate=0.7) + m300.drop_tip() if real_mode else m300.return_tip() + + ctx.delay(minutes=2 if real_mode else 0.5) + + mag_mod.engage(height_from_base=1) + + ctx.delay(minutes=5 if real_mode else 0.5) + + ctx.comment('\n---------------Removing Super----------------\n\n') + pick_up(m300) + for col in dest_cols: + m300.aspirate(100, col, rate=0.1) + m300.aspirate(10, col.bottom(z=0.5), rate=0.1) + m300.dispense(110, trash) + ctx.delay(seconds=1.5) + m300.blow_out() + m300.drop_tip() if real_mode else m300.return_tip() + + for _ in range(2): + ctx.comment('\n---------------Adding Ethanol----------------\n\n') + pick_up(m300) + for col in dest_cols: + m300.aspirate(100, ethanol, rate=0.1) + slow_tip_withdrawal(m300, ethanol) + m300.dispense(100, col.top()) + m300.drop_tip() if real_mode else m300.return_tip() + + ctx.comment('\n---------------Removing Ethanol----------------\n\n') + pick_up(m300) + for col in dest_cols: + m300.aspirate(100, col, rate=0.1) + m300.aspirate(10, col.bottom(z=0.5), rate=0.1) + m300.dispense(110, trash) + ctx.delay(seconds=1.5) + m300.blow_out() + m300.drop_tip() if real_mode else m300.return_tip() + + mag_mod.disengage() + + ctx.comment('\n--------------ADDING Digestion Solution--------------\n\n') + for col in dest_cols: + pick_up(m300) + m300.aspirate(20, digestion_solution) + m300.dispense(20, col) + m300.mix(2, 15, col) + m300.blow_out() + m300.drop_tip() if real_mode else m300.return_tip() + + if not ctx.is_simulating: + hs_mod.open_labware_latch() + ctx.pause('Move plate to heater shaker') + if not ctx.is_simulating: + hs_mod.close_labware_latch() + hs_mod.set_and_wait_for_temperature(37) + ctx.pause('Overnight Digestion') + if not ctx.is_simulating: + hs_mod.deactivate_heater() + hs_mod.open_labware_latch() + ctx.pause("Move plate to magnetic module") + + mag_mod.engage(height_from_base=1) + ctx.delay(minutes=2 if real_mode else 0.5) + + ctx.comment('\n---------------Transferring Sample----------------\n\n') + new_cols = mag_plate.rows()[0][num_col:num_col+num_col] + new_wells = [well for col in mag_plate.columns()[num_col:num_col+num_col] + for well in col] + + for s, d in zip(dest_cols, new_cols): + pick_up(m300) + m300.aspirate(20, s, rate=0.05) + m300.dispense(20, d) + m300.move_to(d.top()) + ctx.delay(seconds=1.5) + m300.blow_out() + m300.touch_tip() + m300.drop_tip() if real_mode else m300.return_tip() + + tmt_wells = [well for col in tmt_plate.columns()[:num_col] + for well in col] + + for well in tmt_wells: + pick_up(p20) + p20.aspirate(5, mm_teab) + p20.dispense(5, well) + p20.mix(3, 20, well) + p20.drop_tip() if real_mode else p20.return_tip() + + ctx.comment('\n-----From TMT Wells to Sample Wells----------\n\n') + for s, d in zip(tmt_wells, new_wells): + pick_up(p20) + p20.aspirate(9, s) + p20.dispense(9, d) + p20.mix(3, 20, d) + p20.drop_tip() if real_mode else p20.return_tip() + + ctx.delay(minutes=60 if real_mode else 0.5) + + for well in new_wells: + pick_up(p20) + p20.aspirate(5, ha) + p20.dispense(5, well) + p20.mix(1, 20, well) + p20.drop_tip() if real_mode else p20.return_tip() + + ctx.delay(minutes=15 if real_mode else 0.5) + # WHAT IS POOL VOLUME? + for pool in all_pools: + pick_up(p20) + for well in new_wells: + for _ in range(2): + p20.aspirate(20, well) + p20.dispense(20, pool) + p20.drop_tip() if real_mode else p20.return_tip() + + for pool in all_pools: + pick_up(p20) + p20.aspirate(10, formic_acid) + p20.dispense(10, pool) + p20.mix(3, 20, pool) + p20.drop_tip() if real_mode else p20.return_tip() diff --git a/protocols/0845ab/README.md b/protocols/0845ab/README.md new file mode 100644 index 000000000..7abd05e53 --- /dev/null +++ b/protocols/0845ab/README.md @@ -0,0 +1,63 @@ +# Digestion and Bead Cleanup + + +### Author +[Opentrons](https://opentrons.com/) + + +## Categories +* Broad Category + * Specific Category + + +## Description +This protocol does stuff! + + +### Modules +* [Opentrons Magnetic Module (GEN2)](https://shop.opentrons.com/magnetic-module-gen2/) + + +### Labware +* TMTpro18 PCR strip plate #72.985.002 +* [NEST 96 Well Plate 100 µL PCR Full Skirt #402501](http://www.cell-nest.com/page94?_l=en&product_id=97&product_category=96) +* [Opentrons 24 Tube Rack with Eppendorf 2 mL Safe-Lock Snapcap](https://shop.opentrons.com/collections/opentrons-tips/products/tube-rack-set-1) +* [Opentrons 96 Tip Rack 300 µL](https://shop.opentrons.com/collections/opentrons-tips/products/opentrons-300ul-tips) +* [NEST 12 Well Reservoir 15 mL #360102](http://www.cell-nest.com/page94?_l=en&product_id=102) +* [Opentrons 96 Tip Rack 20 µL](https://shop.opentrons.com/collections/opentrons-tips/products/opentrons-10ul-tips) +* [NEST 1 Well Reservoir 195 mL #360103](http://www.cell-nest.com/page94?_l=en&product_id=102) + + +### Pipettes +* [Opentrons P20 Single Channel Electronic Pipette (GEN2)](https://shop.opentrons.com/single-channel-electronic-pipette-p20/) +* [Opentrons P300 8 Channel Electronic Pipette (GEN2)](https://shop.opentrons.com/8-channel-electronic-pipette/) + + +### Deck Setup +![deck](https://opentrons-protocol-library-website.s3.amazonaws.com/custom-README-images/0845ab/deck.png) + + +### Reagent Setup +![reagents](https://opentrons-protocol-library-website.s3.amazonaws.com/custom-README-images/0845ab/reagents.png) + + +### Protocol Steps +1. Step 1... + + +### Process +1. Input your protocol parameters above. +2. Download your protocol and unzip if needed. +3. Upload your custom labware to the [OT App](https://opentrons.com/ot-app) by navigating to `More` > `Custom Labware` > `Add Labware`, and selecting your labware files (.json extensions) if needed. +4. Upload your protocol file (.py extension) to the [OT App](https://opentrons.com/ot-app) in the `Protocol` tab. +5. Set up your deck according to the deck map. +6. Calibrate your labware, tiprack and pipette using the OT App. For calibration tips, check out our [support articles](https://support.opentrons.com/en/collections/1559720-guide-for-getting-started-with-the-ot-2). +7. Hit "Run". + + +### Additional Notes +If you have any questions about this protocol, please contact the Protocol Development Team by filling out the [Troubleshooting Survey](https://protocol-troubleshooting.paperform.co/). + + +###### Internal +0845ab diff --git a/protocols/0845ab/fields.json b/protocols/0845ab/fields.json new file mode 100644 index 000000000..199bf8961 --- /dev/null +++ b/protocols/0845ab/fields.json @@ -0,0 +1,40 @@ +[ + { + "type": "dropDown", + "label": "Number of Samples", + "name": "num_samp", + "options": [ + {"label": "Monoplo (16)", "value": 16}, + {"label": "Duplo (32)", "value": 32}, + {"label": "Triplo (48)", "value": 48} + + ] + }, + { + "type": "dropDown", + "label": "Test Mode or Real Mode?", + "name": "real_mode", + "options": [ + {"label": "Real Mode (real incubation times, drop tip in trash)", "value": true}, + {"label": "Test Mode (shortened incubation time, return tip to rack)", "value": false} + ] + }, + { + "type": "dropDown", + "label": "P20 Single-Channel Mount", + "name": "p20_mount", + "options": [ + {"label": "Right", "value": "right"}, + {"label": "Left", "value": "left"} + ] + }, + { + "type": "dropDown", + "label": "P300 Multi-Channel Mount", + "name": "m300_mount", + "options": [ + {"label": "Left", "value": "left"}, + {"label": "Right", "value": "right"} + ] + } +] diff --git a/protocols/0845ab/labware/tmtpro18_pcr_plate.json b/protocols/0845ab/labware/tmtpro18_pcr_plate.json new file mode 100644 index 000000000..c595fcea0 --- /dev/null +++ b/protocols/0845ab/labware/tmtpro18_pcr_plate.json @@ -0,0 +1,1128 @@ +{ + "ordering": [ + [ + "A1", + "B1", + "C1", + "D1", + "E1", + "F1", + "G1", + "H1" + ], + [ + "A2", + "B2", + "C2", + "D2", + "E2", + "F2", + "G2", + "H2" + ], + [ + "A3", + "B3", + "C3", + "D3", + "E3", + "F3", + "G3", + "H3" + ], + [ + "A4", + "B4", + "C4", + "D4", + "E4", + "F4", + "G4", + "H4" + ], + [ + "A5", + "B5", + "C5", + "D5", + "E5", + "F5", + "G5", + "H5" + ], + [ + "A6", + "B6", + "C6", + "D6", + "E6", + "F6", + "G6", + "H6" + ], + [ + "A7", + "B7", + "C7", + "D7", + "E7", + "F7", + "G7", + "H7" + ], + [ + "A8", + "B8", + "C8", + "D8", + "E8", + "F8", + "G8", + "H8" + ], + [ + "A9", + "B9", + "C9", + "D9", + "E9", + "F9", + "G9", + "H9" + ], + [ + "A10", + "B10", + "C10", + "D10", + "E10", + "F10", + "G10", + "H10" + ], + [ + "A11", + "B11", + "C11", + "D11", + "E11", + "F11", + "G11", + "H11" + ], + [ + "A12", + "B12", + "C12", + "D12", + "E12", + "F12", + "G12", + "H12" + ] + ], + "brand": { + "brand": "Sarstedt, Opentrons", + "brandId": [ + "72.985.002", + "991-00076" + ] + }, + "metadata": { + "displayName": "TMTpro18 PCR strip plate", + "displayCategory": "wellPlate", + "displayVolumeUnits": "µL", + "tags": [] + }, + "dimensions": { + "xDimension": 127.76, + "yDimension": 85.48, + "zDimension": 25.06 + }, + "wells": { + "A1": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 14.38, + "y": 74.24, + "z": 5.43 + }, + "B1": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 14.38, + "y": 65.24, + "z": 5.43 + }, + "C1": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 14.38, + "y": 56.24, + "z": 5.43 + }, + "D1": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 14.38, + "y": 47.24, + "z": 5.43 + }, + "E1": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 14.38, + "y": 38.24, + "z": 5.43 + }, + "F1": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 14.38, + "y": 29.24, + "z": 5.43 + }, + "G1": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 14.38, + "y": 20.24, + "z": 5.43 + }, + "H1": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 14.38, + "y": 11.24, + "z": 5.43 + }, + "A2": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 23.38, + "y": 74.24, + "z": 5.43 + }, + "B2": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 23.38, + "y": 65.24, + "z": 5.43 + }, + "C2": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 23.38, + "y": 56.24, + "z": 5.43 + }, + "D2": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 23.38, + "y": 47.24, + "z": 5.43 + }, + "E2": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 23.38, + "y": 38.24, + "z": 5.43 + }, + "F2": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 23.38, + "y": 29.24, + "z": 5.43 + }, + "G2": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 23.38, + "y": 20.24, + "z": 5.43 + }, + "H2": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 23.38, + "y": 11.24, + "z": 5.43 + }, + "A3": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 32.38, + "y": 74.24, + "z": 5.43 + }, + "B3": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 32.38, + "y": 65.24, + "z": 5.43 + }, + "C3": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 32.38, + "y": 56.24, + "z": 5.43 + }, + "D3": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 32.38, + "y": 47.24, + "z": 5.43 + }, + "E3": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 32.38, + "y": 38.24, + "z": 5.43 + }, + "F3": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 32.38, + "y": 29.24, + "z": 5.43 + }, + "G3": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 32.38, + "y": 20.24, + "z": 5.43 + }, + "H3": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 32.38, + "y": 11.24, + "z": 5.43 + }, + "A4": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 41.38, + "y": 74.24, + "z": 5.43 + }, + "B4": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 41.38, + "y": 65.24, + "z": 5.43 + }, + "C4": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 41.38, + "y": 56.24, + "z": 5.43 + }, + "D4": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 41.38, + "y": 47.24, + "z": 5.43 + }, + "E4": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 41.38, + "y": 38.24, + "z": 5.43 + }, + "F4": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 41.38, + "y": 29.24, + "z": 5.43 + }, + "G4": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 41.38, + "y": 20.24, + "z": 5.43 + }, + "H4": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 41.38, + "y": 11.24, + "z": 5.43 + }, + "A5": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 50.38, + "y": 74.24, + "z": 5.43 + }, + "B5": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 50.38, + "y": 65.24, + "z": 5.43 + }, + "C5": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 50.38, + "y": 56.24, + "z": 5.43 + }, + "D5": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 50.38, + "y": 47.24, + "z": 5.43 + }, + "E5": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 50.38, + "y": 38.24, + "z": 5.43 + }, + "F5": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 50.38, + "y": 29.24, + "z": 5.43 + }, + "G5": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 50.38, + "y": 20.24, + "z": 5.43 + }, + "H5": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 50.38, + "y": 11.24, + "z": 5.43 + }, + "A6": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 59.38, + "y": 74.24, + "z": 5.43 + }, + "B6": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 59.38, + "y": 65.24, + "z": 5.43 + }, + "C6": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 59.38, + "y": 56.24, + "z": 5.43 + }, + "D6": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 59.38, + "y": 47.24, + "z": 5.43 + }, + "E6": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 59.38, + "y": 38.24, + "z": 5.43 + }, + "F6": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 59.38, + "y": 29.24, + "z": 5.43 + }, + "G6": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 59.38, + "y": 20.24, + "z": 5.43 + }, + "H6": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 59.38, + "y": 11.24, + "z": 5.43 + }, + "A7": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 68.38, + "y": 74.24, + "z": 5.43 + }, + "B7": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 68.38, + "y": 65.24, + "z": 5.43 + }, + "C7": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 68.38, + "y": 56.24, + "z": 5.43 + }, + "D7": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 68.38, + "y": 47.24, + "z": 5.43 + }, + "E7": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 68.38, + "y": 38.24, + "z": 5.43 + }, + "F7": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 68.38, + "y": 29.24, + "z": 5.43 + }, + "G7": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 68.38, + "y": 20.24, + "z": 5.43 + }, + "H7": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 68.38, + "y": 11.24, + "z": 5.43 + }, + "A8": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 77.38, + "y": 74.24, + "z": 5.43 + }, + "B8": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 77.38, + "y": 65.24, + "z": 5.43 + }, + "C8": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 77.38, + "y": 56.24, + "z": 5.43 + }, + "D8": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 77.38, + "y": 47.24, + "z": 5.43 + }, + "E8": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 77.38, + "y": 38.24, + "z": 5.43 + }, + "F8": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 77.38, + "y": 29.24, + "z": 5.43 + }, + "G8": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 77.38, + "y": 20.24, + "z": 5.43 + }, + "H8": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 77.38, + "y": 11.24, + "z": 5.43 + }, + "A9": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 86.38, + "y": 74.24, + "z": 5.43 + }, + "B9": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 86.38, + "y": 65.24, + "z": 5.43 + }, + "C9": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 86.38, + "y": 56.24, + "z": 5.43 + }, + "D9": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 86.38, + "y": 47.24, + "z": 5.43 + }, + "E9": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 86.38, + "y": 38.24, + "z": 5.43 + }, + "F9": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 86.38, + "y": 29.24, + "z": 5.43 + }, + "G9": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 86.38, + "y": 20.24, + "z": 5.43 + }, + "H9": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 86.38, + "y": 11.24, + "z": 5.43 + }, + "A10": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 95.38, + "y": 74.24, + "z": 5.43 + }, + "B10": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 95.38, + "y": 65.24, + "z": 5.43 + }, + "C10": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 95.38, + "y": 56.24, + "z": 5.43 + }, + "D10": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 95.38, + "y": 47.24, + "z": 5.43 + }, + "E10": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 95.38, + "y": 38.24, + "z": 5.43 + }, + "F10": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 95.38, + "y": 29.24, + "z": 5.43 + }, + "G10": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 95.38, + "y": 20.24, + "z": 5.43 + }, + "H10": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 95.38, + "y": 11.24, + "z": 5.43 + }, + "A11": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 104.38, + "y": 74.24, + "z": 5.43 + }, + "B11": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 104.38, + "y": 65.24, + "z": 5.43 + }, + "C11": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 104.38, + "y": 56.24, + "z": 5.43 + }, + "D11": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 104.38, + "y": 47.24, + "z": 5.43 + }, + "E11": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 104.38, + "y": 38.24, + "z": 5.43 + }, + "F11": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 104.38, + "y": 29.24, + "z": 5.43 + }, + "G11": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 104.38, + "y": 20.24, + "z": 5.43 + }, + "H11": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 104.38, + "y": 11.24, + "z": 5.43 + }, + "A12": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 113.38, + "y": 74.24, + "z": 5.43 + }, + "B12": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 113.38, + "y": 65.24, + "z": 5.43 + }, + "C12": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 113.38, + "y": 56.24, + "z": 5.43 + }, + "D12": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 113.38, + "y": 47.24, + "z": 5.43 + }, + "E12": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 113.38, + "y": 38.24, + "z": 5.43 + }, + "F12": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 113.38, + "y": 29.24, + "z": 5.43 + }, + "G12": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 113.38, + "y": 20.24, + "z": 5.43 + }, + "H12": { + "depth": 19.63, + "totalLiquidVolume": 200, + "shape": "circular", + "diameter": 5.3, + "x": 113.38, + "y": 11.24, + "z": 5.43 + } + }, + "groups": [ + { + "metadata": { + "wellBottomShape": "v" + }, + "wells": [ + "A1", + "B1", + "C1", + "D1", + "E1", + "F1", + "G1", + "H1", + "A2", + "B2", + "C2", + "D2", + "E2", + "F2", + "G2", + "H2", + "A3", + "B3", + "C3", + "D3", + "E3", + "F3", + "G3", + "H3", + "A4", + "B4", + "C4", + "D4", + "E4", + "F4", + "G4", + "H4", + "A5", + "B5", + "C5", + "D5", + "E5", + "F5", + "G5", + "H5", + "A6", + "B6", + "C6", + "D6", + "E6", + "F6", + "G6", + "H6", + "A7", + "B7", + "C7", + "D7", + "E7", + "F7", + "G7", + "H7", + "A8", + "B8", + "C8", + "D8", + "E8", + "F8", + "G8", + "H8", + "A9", + "B9", + "C9", + "D9", + "E9", + "F9", + "G9", + "H9", + "A10", + "B10", + "C10", + "D10", + "E10", + "F10", + "G10", + "H10", + "A11", + "B11", + "C11", + "D11", + "E11", + "F11", + "G11", + "H11", + "A12", + "B12", + "C12", + "D12", + "E12", + "F12", + "G12", + "H12" + ] + } + ], + "parameters": { + "format": "irregular", + "quirks": [], + "isTiprack": false, + "isMagneticModuleCompatible": false, + "loadName": "tmtpro18_pcr_plate" + }, + "namespace": "custom_beta", + "version": 1, + "schemaVersion": 2, + "cornerOffsetFromSlot": { + "x": 0, + "y": 0, + "z": 0 + } +} \ No newline at end of file