Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(Release): 2024-03-01 #5039

Merged
merged 12 commits into from
Mar 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions data/data/fields.csv
Original file line number Diff line number Diff line change
Expand Up @@ -729,7 +729,7 @@ lysis_vol,1
m10_mount,2
m1k,1
m20_mount,83
m300_mount,112
m300_mount,113
m300_type,2
m_mount,1
mag_bead_mix_resuspend_reps,1
Expand Down Expand Up @@ -918,8 +918,8 @@ num_samp_lysis,1
num_samp_mmx,1
num_samp_p1,1
num_samp_p2,1
num_samp_plate1,1
num_samp_plate2,1
num_samp_plate1,2
num_samp_plate2,2
num_samp_plate3,1
num_samp_plate4,1
num_sample_columns,1
Expand Down
218 changes: 218 additions & 0 deletions protoBuilds/07ad5f/07ad5f.ot2.apiv2.py.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,218 @@
{
"content": "import math\nfrom opentrons import protocol_api\n\nmetadata = {\n 'protocolName': 'DNeasy Plant DNA Purification',\n 'author': 'Rami Farawi <[email protected]>',\n 'source': 'Custom Protocol Request',\n 'apiLevel': '2.15'\n}\n\n\ndef run(ctx):\n\n [num_samp_plate1, num_samp_plate2,\n m300_mount] = get_values( # noqa: F821\n \"num_samp_plate1\", \"num_samp_plate2\", \"m300_mount\")\n\n # num_samp_plate1 = 48\n # num_samp_plate2 = 96\n\n num_col_plate1 = math.ceil(num_samp_plate1/8)\n num_col_plate2 = math.ceil(num_samp_plate2/8)\n # m300_mount = 'left'\n\n # labware\n reservoir_12 = ctx.load_labware('nest_12_reservoir_15ml', 11)\n reservoir_1_well = [ctx.load_labware('nest_1_reservoir_195ml', slot)\n for slot in [3, 6, 9]]\n deep_plates = [ctx.load_labware('nest_96_wellplate_2ml_deep', slot)\n for slot in [1, 4, 2, 5]]\n tips = [ctx.load_labware('opentrons_96_tiprack_300ul', slot)\n for slot in [7, 8, 10]]\n\n # pipettes\n m300 = ctx.load_instrument('p300_multi_gen2', m300_mount, tip_racks=tips)\n\n def pick_up():\n try:\n m300.pick_up_tip()\n except protocol_api.labware.OutOfTipsError:\n ctx.pause(f\"Replace empty tip rack for {m300}\")\n m300.reset_tipracks()\n m300.pick_up_tip()\n\n # mapping\n lysis = reservoir_1_well[0]['A1']\n aw1 = reservoir_1_well[1]['A1']\n aw2 = reservoir_1_well[2]['A1']\n\n p3 = reservoir_12.wells()[:2]*1000\n ae_buffer = reservoir_12.wells()[2:4]*1000\n\n all_sample_cols = [\n col for plate, num_cols in zip(\n deep_plates[:2],\n [num_col_plate1,\n num_col_plate2]\n )\n for col in plate.rows()[0][:num_cols]\n ]\n all_sample_cols_right_side = [\n col for plate, num_cols in zip(\n deep_plates[2:],\n [num_col_plate1,\n num_col_plate2]\n )\n for col in plate.rows()[0][:num_cols]\n ]\n\n # protocol\n ctx.comment('\\n---------------ADDING BUFFER TO PLATES----------------\\n\\n')\n pick_up()\n for col in all_sample_cols:\n for _ in range(2):\n m300.aspirate(200, lysis)\n m300.dispense(200, col.top())\n m300.drop_tip()\n\n ctx.pause('Please take deepwell plate off deck and grind and centrifuge')\n\n ctx.comment('\\n---------------ADDING P3----------------\\n\\n')\n pick_up()\n for source, col in zip(p3, all_sample_cols):\n m300.aspirate(130, source)\n m300.dispense(130, col.top())\n m300.drop_tip()\n\n ctx.pause(\"\"\"Take samples and incubate for 10 minutes at -20C.\n After, put sample plates back on slots 1 and 4.\"\"\")\n\n ctx.comment('\\n---------------TRANSFERRING SAMPLE----------------\\n\\n')\n for source_plate, dest_plate, num_col in zip(deep_plates[:2],\n deep_plates[2:],\n [num_col_plate1,\n num_col_plate2]):\n for s, d in zip(source_plate.rows()[0][:num_col],\n dest_plate.rows()[0]):\n pick_up()\n for _ in range(2):\n m300.aspirate(200, s, rate=0.2)\n m300.dispense(200, d)\n m300.drop_tip()\n\n ctx.pause('Replace sample plates with fresh plates on slots 1 & 4.')\n\n ctx.comment('\\n-------------ADDING A1 BUFFER TO PLATES-------------\\n\\n')\n pick_up()\n for col in all_sample_cols_right_side:\n for _ in range(3):\n m300.aspirate(200, aw1)\n m300.dispense(200, col.top())\n m300.drop_tip()\n\n ctx.comment('\\n---------------TRANSFERRING SAMPLE----------------\\n\\n')\n for source_plate, dest_plate, num_col in zip(deep_plates[2:],\n deep_plates[:2],\n [num_col_plate1,\n num_col_plate2]):\n for s, d in zip(source_plate.rows()[0][:num_col],\n dest_plate.rows()[0]):\n pick_up()\n for _ in range(5):\n m300.aspirate(200, s, rate=0.2)\n m300.dispense(200, d)\n m300.drop_tip()\n\n ctx.pause('Centrifuge and filter samples')\n\n ctx.comment('\\n---------------ADDING AW2 BUFFER TO PLATES------------\\n\\n')\n pick_up()\n for col in all_sample_cols:\n for _ in range(4):\n m300.aspirate(200, aw2)\n m300.dispense(200, col.top())\n m300.drop_tip()\n\n ctx.comment('\\n---------------ADDING AE BUFFER----------------\\n\\n')\n pick_up()\n for source, col in zip(ae_buffer, all_sample_cols):\n m300.aspirate(100, source)\n m300.dispense(100, col.top())\n m300.drop_tip()\n",
"custom_labware_defs": [],
"fields": [
{
"label": "Number of Samples Plate 1",
"name": "num_samp_plate1",
"options": [
{
"label": "8",
"value": 8
},
{
"label": "16",
"value": 16
},
{
"label": "24",
"value": 24
},
{
"label": "32",
"value": 32
},
{
"label": "40",
"value": 40
},
{
"label": "48",
"value": 48
},
{
"label": "56",
"value": 56
},
{
"label": "64",
"value": 64
},
{
"label": "72",
"value": 72
},
{
"label": "80",
"value": 80
},
{
"label": "88",
"value": 88
},
{
"label": "96",
"value": 96
}
],
"type": "dropDown"
},
{
"label": "Number of Samples Plate 2",
"name": "num_samp_plate2",
"options": [
{
"label": "8",
"value": 8
},
{
"label": "16",
"value": 16
},
{
"label": "24",
"value": 24
},
{
"label": "32",
"value": 32
},
{
"label": "40",
"value": 40
},
{
"label": "48",
"value": 48
},
{
"label": "56",
"value": 56
},
{
"label": "64",
"value": 64
},
{
"label": "72",
"value": 72
},
{
"label": "80",
"value": 80
},
{
"label": "88",
"value": 88
},
{
"label": "96",
"value": 96
}
],
"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"
}
],
"labware": [
{
"name": "NEST 96 Deepwell Plate 2mL on 1",
"share": false,
"slot": "1",
"type": "nest_96_wellplate_2ml_deep"
},
{
"name": "NEST 96 Deepwell Plate 2mL on 2",
"share": false,
"slot": "2",
"type": "nest_96_wellplate_2ml_deep"
},
{
"name": "NEST 1 Well Reservoir 195 mL on 3",
"share": false,
"slot": "3",
"type": "nest_1_reservoir_195ml"
},
{
"name": "NEST 96 Deepwell Plate 2mL on 4",
"share": false,
"slot": "4",
"type": "nest_96_wellplate_2ml_deep"
},
{
"name": "NEST 96 Deepwell Plate 2mL on 5",
"share": false,
"slot": "5",
"type": "nest_96_wellplate_2ml_deep"
},
{
"name": "NEST 1 Well Reservoir 195 mL on 6",
"share": false,
"slot": "6",
"type": "nest_1_reservoir_195ml"
},
{
"name": "Opentrons 96 Tip Rack 300 \u00b5L on 7",
"share": false,
"slot": "7",
"type": "opentrons_96_tiprack_300ul"
},
{
"name": "Opentrons 96 Tip Rack 300 \u00b5L on 8",
"share": false,
"slot": "8",
"type": "opentrons_96_tiprack_300ul"
},
{
"name": "NEST 1 Well Reservoir 195 mL on 9",
"share": false,
"slot": "9",
"type": "nest_1_reservoir_195ml"
},
{
"name": "Opentrons 96 Tip Rack 300 \u00b5L on 10",
"share": false,
"slot": "10",
"type": "opentrons_96_tiprack_300ul"
},
{
"name": "NEST 12 Well Reservoir 15 mL on 11",
"share": false,
"slot": "11",
"type": "nest_12_reservoir_15ml"
},
{
"name": "Opentrons Fixed Trash on 12",
"share": false,
"slot": "12",
"type": "opentrons_1_trash_1100ml_fixed"
}
],
"metadata": {
"apiLevel": "2.15",
"author": "Rami Farawi <[email protected]>",
"protocolName": "DNeasy Plant DNA Purification",
"source": "Custom Protocol Request"
},
"modules": []
}
30 changes: 30 additions & 0 deletions protoBuilds/07ad5f/README.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"author": "Opentrons",
"categories": {
"Sample Prep": [
"Plate Filling"
]
},
"deck-setup": "",
"description": "This protocol preps (2) 96 plates with sample and necessary reagent. There is a pause during the protocol to refill tips if necessary, as well as to replace the 96 plates on slots 1 and 4 with fresh plates.",
"internal": "07ad5f",
"labware": "\nNEST 96 Deepwell Plate 2mL #503001\nNEST 1 Well Reservoir 195 mL #360103\nOpentrons 96 Tip Rack 300 \u00b5L\nNEST 12 Well Reservoir 15 mL #360102\n",
"markdown": {
"author": "[Opentrons](https://opentrons.com/)\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/07ad5f/deck.png)\n\n\n\n",
"description": "This protocol preps (2) 96 plates with sample and necessary reagent. There is a pause during the protocol to refill tips if necessary, as well as to replace the 96 plates on slots 1 and 4 with fresh plates.\n\n\n",
"internal": "07ad5f\n",
"labware": "* [NEST 96 Deepwell Plate 2mL #503001](http://www.cell-nest.com/page94?product_id=101&_l=en)\n* [NEST 1 Well Reservoir 195 mL #360103](http://www.cell-nest.com/page94?_l=en&product_id=102)\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\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 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. Adding buffer to plates\n2. Add P3\n3. Pause - take samples to incubate\n4. Transfer sample to plate 2, 5\n5. Add A1 buffer to second set of plates\n6. Transfer sample back to plate 1, 4\n7. Add AW2 buffer to samples\n8. Add AE buffer\n\n\n\n\n",
"title": "DNeasy Plant DNA Purification"
},
"notes": "If you have any questions about this protocol, please contact the Protocol Development Team by filling out the Troubleshooting Survey.",
"pipettes": "\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": "\nAdding buffer to plates\nAdd P3\nPause - take samples to incubate\nTransfer sample to plate 2, 5\nAdd A1 buffer to second set of plates\nTransfer sample back to plate 1, 4\nAdd AW2 buffer to samples\nAdd AE buffer\n",
"title": "DNeasy Plant DNA Purification"
}
20 changes: 20 additions & 0 deletions protoBuilds/07ad5f/metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"files": {
"OT 1 protocol": [],
"OT 2 protocol": [
"07ad5f.ot2.apiv2.py"
],
"description": [
"README.md"
]
},
"flags": {
"embedded-app": false,
"feature": false,
"hide-from-search": false,
"skip-tests": false
},
"path": "protocols/07ad5f",
"slug": "07ad5f",
"status": "ok"
}
4 changes: 2 additions & 2 deletions protoBuilds/0f7910/README.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@
"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 Single Channel Electronic Pipette (GEN2)](https://shop.opentrons.com/single-channel-electronic-pipette-p20/)\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. Protocol will input the global transfer volume from source plates to destination plates according to the csv.\n\n\n",
"protocol-steps": "1. Protocol will input the global transfer volume from source plates to destination plates in accordance with the csv.\n\n\n",
"title": "Plate Filling with CSV Import"
},
"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 Single 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": "\nProtocol will input the global transfer volume from source plates to destination plates according to the csv.\n",
"protocol-steps": "\nProtocol will input the global transfer volume from source plates to destination plates in accordance with the csv.\n",
"title": "Plate Filling with CSV Import"
}
Loading
Loading