diff --git a/protoBuilds/0845ab/0845ab.ot2.apiv2.py.json b/protoBuilds/0845ab/0845ab.ot2.apiv2.py.json index 886f6e3bd..30df03895 100644 --- a/protoBuilds/0845ab/0845ab.ot2.apiv2.py.json +++ b/protoBuilds/0845ab/0845ab.ot2.apiv2.py.json @@ -1,5 +1,5 @@ { - "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", + "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',\n 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": { diff --git a/protoBuilds/0845ab/README.json b/protoBuilds/0845ab/README.json index 026830a3f..7f671e8b4 100644 --- a/protoBuilds/0845ab/README.json +++ b/protoBuilds/0845ab/README.json @@ -1,27 +1,27 @@ { "author": "Opentrons", "categories": { - "Broad Category": [ - "Specific Category" + "Sample Prep": [ + "Plate Filling" ] }, "deck-setup": "", - "description": "This protocol does stuff!", + "description": "This protocols performs a blead cleanup on the OT-2 with overnight digestion step for 16, 32, or 48 samples. For detailed description of requirements and steps, please see below. ", "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", + "categories": "* Sample Prep\n\t* Plate Filling\n\n\n", + "deck-setup": "![deck](https://opentrons-protocol-library-website.s3.amazonaws.com/custom-README-images/0845ab/Screen+Shot+2023-12-10+at+9.35.34+PM.png)\n\n\n", + "description": "This protocols performs a blead cleanup on the OT-2 with overnight digestion step for 16, 32, or 48 samples. For detailed description of requirements and steps, please see below. \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", + "protocol-steps": "1. 12 well reservoir (liquid stock plate) contains: A1= 100% ACN, A2= 70% ethanol\n2. Eppendorf rack (liquid stock epps) contains: A1= bead solution, A2= digestion solution, A3= 200 mM TEAB, A4= 5% HA, A5= 20% formic acid\n3. Homogenize bead solution in A1 of Eppendorf rack (50 \u00b5l 3x, fast speed)\n4. 4 \u00b5l beads from A1 to column 1-6* of slot 1 (same tips)\n5. 30 \u00b5l of sample from column 1-6* slot 2 to column 1-6* slot 1 (A1 to A1, B2 to B2 etc, new tip always)\n6. 70 \u00b5l of 100% ACN to column 1-6* of slot 1 (airgap, mix after every time, 3x low speed, new tip always)\n7. Wait 2 mins\n8. Engage magnetic module (magnetic beads as low as possible)\n9. Wait 5 mins\n10. Remove 100 \u00b5l from column 1-6* of slot 1, dispose in reservoir slot 11 (Consolidate, same tips)\n11. Add 100 \u00b5l 70% ethanol to column 1-6* of slot 1 (one tip)\n12. Remove 100 \u00b5l from column 1-6* of slot 1, dispose in reservoir slot 11 (Consolidate, same tips)\n13. Repeat step 11-12\n14. Disengage magnetic module\n15. Wait 2 mins\n16. Add 10 \u00b5l digestion solution to column 1-6* slot 1 (mix every time, 1x slowly, new tip always)\n17. Pause protocol (\u2018move sample plate to heater shaker\u2019)\n18. Close HS module\n19. Heater activate (37\u00b0C)\n20. Pause protocol (\u2018Overnight digestion\u2019)\n21. Deactivate heater\n22. Open HS module\n23. Pause protocol (\u2018move sample plate to magnetic mod\u2019)\n24. Engage magnetic module (magnetic beads as low as possible)\n25. Wait 2 mins\n26. Move 10 \u00b5l from column 1-6* of slot 1 to new position in the same plate, according to the \u2018sample transfer layout\u2019 scheme attached (new tips always, low speed aspirate, away from mag beads, touch tip after dispense)\n27. Add 5\u00b5l 200 mM TEAB to all TMT wells (new tip always, mix 3x)\n28. Add 9 \u00b5l TMT/buffer mix from slot 9 to all samples**, according to the attached scheme \u2018TMT layout\u2019 (A1 -> A3, A5 or A7, B1 -> B3, B5 or B7 etc., new tip always, mix 3x low speed)\n29. Wait 1 hr\n30. Add 5 \u00b5l 5% HA to all samples** (new tip always, mix every time, 1x medium speed)\n31. Wait 15 mins\n32. Consolidate samples into one Eppendorf (B5-8 of slot 3), every two columns of samples combined into one epp (for triplos: column 7 + 8 from sample plate to B5 of slot 3, column 9 + 10 to B6 of slot 3, column 11 + 12 to B7, for monoplo: column 3 + 4 to B5)\n33. Add 10 \u00b5l 20% formic acid to slots B5-8* of slot 3 (new tip always, mix after every time 3x high speed)\n\n\n", + "reagent-setup": "![reagents](https://s3.console.aws.amazon.com/s3/object/opentrons-protocol-library-website?region=us-east-1&prefix=custom-README-images/0845ab/Screen+Shot+2023-12-10+at+9.37.20+PM.png)\n\n\n", "title": "Digestion and Bead Cleanup" }, "modules": [ @@ -30,7 +30,7 @@ "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", + "protocol-steps": "\n12 well reservoir (liquid stock plate) contains: A1= 100% ACN, A2= 70% ethanol\nEppendorf rack (liquid stock epps) contains: A1= bead solution, A2= digestion solution, A3= 200 mM TEAB, A4= 5% HA, A5= 20% formic acid\nHomogenize bead solution in A1 of Eppendorf rack (50 \u00b5l 3x, fast speed)\n4 \u00b5l beads from A1 to column 1-6* of slot 1 (same tips)\n30 \u00b5l of sample from column 1-6 slot 2 to column 1-6 slot 1 (A1 to A1, B2 to B2 etc, new tip always)\n70 \u00b5l of 100% ACN to column 1-6* of slot 1 (airgap, mix after every time, 3x low speed, new tip always)\nWait 2 mins\nEngage magnetic module (magnetic beads as low as possible)\nWait 5 mins\nRemove 100 \u00b5l from column 1-6* of slot 1, dispose in reservoir slot 11 (Consolidate, same tips)\nAdd 100 \u00b5l 70% ethanol to column 1-6* of slot 1 (one tip)\nRemove 100 \u00b5l from column 1-6* of slot 1, dispose in reservoir slot 11 (Consolidate, same tips)\nRepeat step 11-12\nDisengage magnetic module\nWait 2 mins\nAdd 10 \u00b5l digestion solution to column 1-6* slot 1 (mix every time, 1x slowly, new tip always)\nPause protocol (\u2018move sample plate to heater shaker\u2019)\nClose HS module\nHeater activate (37\u00b0C)\nPause protocol (\u2018Overnight digestion\u2019)\nDeactivate heater\nOpen HS module\nPause protocol (\u2018move sample plate to magnetic mod\u2019)\nEngage magnetic module (magnetic beads as low as possible)\nWait 2 mins\nMove 10 \u00b5l from column 1-6* of slot 1 to new position in the same plate, according to the \u2018sample transfer layout\u2019 scheme attached (new tips always, low speed aspirate, away from mag beads, touch tip after dispense)\nAdd 5\u00b5l 200 mM TEAB to all TMT wells (new tip always, mix 3x)\nAdd 9 \u00b5l TMT/buffer mix from slot 9 to all samples**, according to the attached scheme \u2018TMT layout\u2019 (A1 -> A3, A5 or A7, B1 -> B3, B5 or B7 etc., new tip always, mix 3x low speed)\nWait 1 hr\nAdd 5 \u00b5l 5% HA to all samples** (new tip always, mix every time, 1x medium speed)\nWait 15 mins\nConsolidate samples into one Eppendorf (B5-8 of slot 3), every two columns of samples combined into one epp (for triplos: column 7 + 8 from sample plate to B5 of slot 3, column 9 + 10 to B6 of slot 3, column 11 + 12 to B7, for monoplo: column 3 + 4 to B5)\nAdd 10 \u00b5l 20% formic acid to slots B5-8* of slot 3 (new tip always, mix after every time 3x high speed)\n", "reagent-setup": "", "title": "Digestion and Bead Cleanup" } \ No newline at end of file diff --git a/protocols/0845ab/0845ab.ot2.apiv2.py b/protocols/0845ab/0845ab.ot2.apiv2.py index df9b1e3bc..0f6cf8f05 100644 --- a/protocols/0845ab/0845ab.ot2.apiv2.py +++ b/protocols/0845ab/0845ab.ot2.apiv2.py @@ -33,7 +33,8 @@ def run(ctx): 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) + 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 diff --git a/protocols/0845ab/README.md b/protocols/0845ab/README.md index 7abd05e53..cdef4eaa5 100644 --- a/protocols/0845ab/README.md +++ b/protocols/0845ab/README.md @@ -6,13 +6,12 @@ ## Categories -* Broad Category - * Specific Category +* Sample Prep + * Plate Filling ## Description -This protocol does stuff! - +This protocols performs a blead cleanup on the OT-2 with overnight digestion step for 16, 32, or 48 samples. For detailed description of requirements and steps, please see below. ### Modules * [Opentrons Magnetic Module (GEN2)](https://shop.opentrons.com/magnetic-module-gen2/) @@ -34,15 +33,47 @@ This protocol does stuff! ### Deck Setup -![deck](https://opentrons-protocol-library-website.s3.amazonaws.com/custom-README-images/0845ab/deck.png) +![deck](https://opentrons-protocol-library-website.s3.amazonaws.com/custom-README-images/0845ab/Screen+Shot+2023-12-10+at+9.35.34+PM.png) ### Reagent Setup -![reagents](https://opentrons-protocol-library-website.s3.amazonaws.com/custom-README-images/0845ab/reagents.png) +![reagents](https://s3.console.aws.amazon.com/s3/object/opentrons-protocol-library-website?region=us-east-1&prefix=custom-README-images/0845ab/Screen+Shot+2023-12-10+at+9.37.20+PM.png) ### Protocol Steps -1. Step 1... +1. 12 well reservoir (liquid stock plate) contains: A1= 100% ACN, A2= 70% ethanol +2. Eppendorf rack (liquid stock epps) contains: A1= bead solution, A2= digestion solution, A3= 200 mM TEAB, A4= 5% HA, A5= 20% formic acid +3. Homogenize bead solution in A1 of Eppendorf rack (50 µl 3x, fast speed) +4. 4 µl beads from A1 to column 1-6* of slot 1 (same tips) +5. 30 µl of sample from column 1-6* slot 2 to column 1-6* slot 1 (A1 to A1, B2 to B2 etc, new tip always) +6. 70 µl of 100% ACN to column 1-6* of slot 1 (airgap, mix after every time, 3x low speed, new tip always) +7. Wait 2 mins +8. Engage magnetic module (magnetic beads as low as possible) +9. Wait 5 mins +10. Remove 100 µl from column 1-6* of slot 1, dispose in reservoir slot 11 (Consolidate, same tips) +11. Add 100 µl 70% ethanol to column 1-6* of slot 1 (one tip) +12. Remove 100 µl from column 1-6* of slot 1, dispose in reservoir slot 11 (Consolidate, same tips) +13. Repeat step 11-12 +14. Disengage magnetic module +15. Wait 2 mins +16. Add 10 µl digestion solution to column 1-6* slot 1 (mix every time, 1x slowly, new tip always) +17. Pause protocol (‘move sample plate to heater shaker’) +18. Close HS module +19. Heater activate (37°C) +20. Pause protocol (‘Overnight digestion’) +21. Deactivate heater +22. Open HS module +23. Pause protocol (‘move sample plate to magnetic mod’) +24. Engage magnetic module (magnetic beads as low as possible) +25. Wait 2 mins +26. Move 10 µl from column 1-6* of slot 1 to new position in the same plate, according to the ‘sample transfer layout’ scheme attached (new tips always, low speed aspirate, away from mag beads, touch tip after dispense) +27. Add 5µl 200 mM TEAB to all TMT wells (new tip always, mix 3x) +28. Add 9 µl TMT/buffer mix from slot 9 to all samples**, according to the attached scheme ‘TMT layout’ (A1 -> A3, A5 or A7, B1 -> B3, B5 or B7 etc., new tip always, mix 3x low speed) +29. Wait 1 hr +30. Add 5 µl 5% HA to all samples** (new tip always, mix every time, 1x medium speed) +31. Wait 15 mins +32. Consolidate samples into one Eppendorf (B5-8 of slot 3), every two columns of samples combined into one epp (for triplos: column 7 + 8 from sample plate to B5 of slot 3, column 9 + 10 to B6 of slot 3, column 11 + 12 to B7, for monoplo: column 3 + 4 to B5) +33. Add 10 µl 20% formic acid to slots B5-8* of slot 3 (new tip always, mix after every time 3x high speed) ### Process