Skip to content

Commit

Permalink
Merge pull request #4959 from Opentrons/5c7384
Browse files Browse the repository at this point in the history
fix(protocols/5c7384): fix return tip schema
  • Loading branch information
ramifarawi authored Nov 9, 2023
2 parents e681ce8 + fea4f80 commit c9bf5f3
Show file tree
Hide file tree
Showing 12 changed files with 2,774 additions and 15 deletions.
1,219 changes: 1,219 additions & 0 deletions protoBuilds/029f5b/029f5b.ot2.apiv2.py.json

Large diffs are not rendered by default.

34 changes: 34 additions & 0 deletions protoBuilds/029f5b/README.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"author": "Opentrons",
"categories": {
"SAMPLE PREP": [
"Custom Sample Transfer"
]
},
"deck-setup": "",
"description": "With this Protocol you can add lysis buffer, chloroform, and wash with Isopropanol to samples. This protocol is set up to do 384 samples across 4 different plates. ",
"internal": "029f5b",
"labware": "\nAxygen 96well minitube system corning 96 wellplate 1320\u00b5L\nOpentrons 96 Tip Rack 300 \u00b5L\n[Opentrons Nest 1 well Reservoir 290 mL]\n",
"markdown": {
"author": "[Opentrons](https://opentrons.com/)\n\n\n",
"categories": "* SAMPLE PREP\n\t* Custom Sample Transfer\n\n\n",
"deck-setup": "![deck](https://opentrons-protocol-library-website.s3.amazonaws.com/custom-README-images/029f5b/Layout.jpg)\n\n\n",
"description": "With this Protocol you can add lysis buffer, chloroform, and wash with Isopropanol to samples. This protocol is set up to do 384 samples across 4 different plates. \n\n\n",
"internal": "029f5b\n",
"labware": "* Axygen 96well minitube system corning 96 wellplate 1320\u00b5L\n* [Opentrons 96 Tip Rack 300 \u00b5L](https://shop.opentrons.com/collections/opentrons-tips/products/opentrons-300ul-tips)\n* [Opentrons Nest 1 well Reservoir 290 mL]\n\n\n",
"modules": "N/A\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 multi 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. Load tubes and reservoirs\n2. The reagent reservoir will be on slot 6\n3. The cleaning reservoir will be on slot 9\n\n\n",
"reagent-setup": "![reagents](https://opentrons-protocol-library-website.s3.amazonaws.com/custom-README-images/029f5b/Liquids.jpg)\n\n\n",
"title": "FBelz Protocol"
},
"modules": [],
"notes": "If you have any questions about this protocol, please contact the Protocol Development Team by filling out the Troubleshooting Survey.",
"pipettes": "\nOpentrons P300 multi 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": "\nLoad tubes and reservoirs\nThe reagent reservoir will be on slot 6\nThe cleaning reservoir will be on slot 9\n",
"reagent-setup": "",
"title": "FBelz Protocol"
}
20 changes: 20 additions & 0 deletions protoBuilds/029f5b/metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"files": {
"OT 1 protocol": [],
"OT 2 protocol": [
"029f5b.ot2.apiv2.py"
],
"description": [
"README.md"
]
},
"flags": {
"embedded-app": false,
"feature": false,
"hide-from-search": false,
"skip-tests": false
},
"path": "protocols/029f5b",
"slug": "029f5b",
"status": "ok"
}
2 changes: 1 addition & 1 deletion protoBuilds/1464-2/ELISA_protocol_part2.ot2.apiv2.py.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"content": "import math\n\nmetadata = {\n 'protocolName': 'Antibody Addition',\n 'author': 'Alise <[email protected]>',\n 'source': 'Custom Protocol Request',\n 'apiLevel': '2.14'\n}\n\n\ndef run(ctx):\n [number_of_standards, concentration_csv] = get_values( # noqa: F821\n 'number_of_standards', 'concentration_csv')\n\n # labware setup\n tuberack_4 = ctx.load_labware(\n 'opentrons_24_tuberack_eppendorf_2ml_safelock_snapcap', '4')\n deep_plates = [ctx.load_labware('nest_96_wellplate_2ml_deep', slot)\n for slot in ['5', '6']]\n trough = ctx.load_labware('nest_12_reservoir_15ml', '8')\n plate = ctx.load_labware(\n 'corning_96_wellplate_360ul_flat', '9')\n\n tipracks_300 = [ctx.load_labware('opentrons_96_tiprack_300ul', slot)\n for slot in ['3']]\n tiprack_m300 = ctx.load_labware('opentrons_96_tiprack_300ul', '7')\n\n # instruments setup\n m300 = ctx.load_instrument(\n 'p300_multi_gen2',\n mount='left',\n tip_racks=[tiprack_m300])\n p300 = ctx.load_instrument(\n 'p300_single',\n mount='right',\n tip_racks=tipracks_300)\n\n # reagent setup\n tubes = [well for row in tuberack_4.rows() for well in row]\n water = tubes[0]\n diluent = tubes[1]\n standards = tubes[2:2 + number_of_standards]\n samples = tubes[2 + number_of_standards:]\n antibody = trough.wells('A1')\n\n # define elution pool\n dil_dests = [row for deep_plate in deep_plates\n for row in deep_plate.rows()]\n conc_lists = [[int(cell) for cell in line.split(',') if cell]\n for line in concentration_csv.splitlines() if line]\n concs = [5, 10, 25, 50, 100, 500, 1000, 5000, 10000, 25000, 50000, 100000]\n\n samples = [\n row[concs.index(conc)]\n for concentrations, row in zip(conc_lists, dil_dests)\n for conc in concentrations\n ]\n\n dests = [\n [plate.columns()[index][num], plate.columns()[index+1][num]]\n for index in range(0, 12, 2) for num in range(8)\n ]\n\n \"\"\"\n Adding Enzyme Conjugate Reagent\n \"\"\"\n num_cols = math.ceil((2 + number_of_standards + len(samples)) / 8) * 2\n m300.distribute(100, antibody,\n plate.columns()[:num_cols], blow_out=antibody)\n\n \"\"\"\n Adding Water\n \"\"\"\n p300.distribute(50, water, dests[0])\n dests.pop(0)\n\n \"\"\"\n Adding Dilution Buffer\n \"\"\"\n p300.distribute(50, diluent, dests[0])\n dests.pop(0)\n\n \"\"\"\n Adding HCP Standards\n \"\"\"\n ctx.comment('hcp')\n for standard in standards:\n p300.distribute(50, standard, dests[0])\n dests.pop(0)\n\n \"\"\"\n Adding Samples\n \"\"\"\n for sample, chunk in zip(samples, dests):\n p300.pick_up_tip()\n p300.aspirate(130, sample)\n for well in chunk:\n p300.dispense(50, well)\n p300.drop_tip()\n # dests.pop(0)\n",
"content": "import math\n\nmetadata = {\n 'protocolName': 'Antibody Addition',\n 'author': 'Alise <[email protected]>',\n 'source': 'Custom Protocol Request',\n 'apiLevel': '2.14'\n}\n\n\ndef run(ctx):\n [number_of_standards, concentration_csv] = get_values( # noqa: F821\n 'number_of_standards', 'concentration_csv')\n\n # labware setup\n tuberack_4 = ctx.load_labware(\n 'opentrons_24_tuberack_eppendorf_2ml_safelock_snapcap', '4')\n deep_plates = [ctx.load_labware('nest_96_wellplate_2ml_deep', slot)\n for slot in ['5', '6']]\n trough = ctx.load_labware('nest_12_reservoir_15ml', '8')\n plate = ctx.load_labware(\n 'corning_96_wellplate_360ul_flat', '9')\n\n tipracks_300 = [ctx.load_labware('opentrons_96_tiprack_300ul', slot)\n for slot in ['3']]\n tiprack_m300 = ctx.load_labware('opentrons_96_tiprack_300ul', '7')\n\n # instruments setup\n m300 = ctx.load_instrument(\n 'p300_multi_gen2',\n mount='left',\n tip_racks=[tiprack_m300])\n p300 = ctx.load_instrument(\n 'p300_single',\n mount='right',\n tip_racks=tipracks_300)\n\n # reagent setup\n tubes = [well for row in tuberack_4.rows() for well in row]\n water = tubes[0]\n diluent = tubes[1]\n standards = tubes[2:2 + number_of_standards]\n samples = tubes[2 + number_of_standards:]\n antibody = trough.wells('A1')\n\n # define elution pool\n dil_dests = [row for deep_plate in deep_plates\n for row in deep_plate.rows()]\n conc_lists = [[int(cell) for cell in line.split(',') if cell]\n for line in concentration_csv.splitlines() if line]\n concs = [5, 10, 25, 50, 100, 500, 1000, 5000, 10000, 25000, 50000, 100000]\n\n samples = [\n row[concs.index(conc)]\n for concentrations, row in zip(conc_lists, dil_dests)\n for conc in concentrations\n ]\n\n dests = [\n [plate.columns()[index][num], plate.columns()[index+1][num]]\n for index in range(0, 12, 2) for num in range(8)\n ]\n\n \"\"\"\n Adding Enzyme Conjugate Reagent\n \"\"\"\n num_cols = math.ceil((2 + number_of_standards + len(samples)) / 8) * 2\n m300.distribute(100, antibody,\n plate.columns()[:num_cols],\n blow_out=antibody)\n\n \"\"\"\n Adding Water\n \"\"\"\n p300.distribute(50, water, dests[0])\n dests.pop(0)\n\n \"\"\"\n Adding Dilution Buffer\n \"\"\"\n p300.distribute(50, diluent, dests[0])\n dests.pop(0)\n\n \"\"\"\n Adding HCP Standards\n \"\"\"\n ctx.comment('hcp')\n for standard in standards:\n p300.distribute(50, standard, dests[0])\n dests.pop(0)\n\n \"\"\"\n Adding Samples\n \"\"\"\n for sample, chunk in zip(samples, dests):\n p300.pick_up_tip()\n p300.aspirate(130, sample)\n for well in chunk:\n p300.dispense(50, well)\n p300.drop_tip()\n # dests.pop(0)\n",
"custom_labware_defs": [],
"fields": [
{
Expand Down
4 changes: 2 additions & 2 deletions protoBuilds/1464-3/ELISA_protocol_part3.ot2.apiv2.py.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"content": "metadata = {\n 'protocolName': 'Substrate and Stop Solution Addition',\n 'author': 'Alise <[email protected]>',\n 'source': 'Custom Protocol Request',\n 'apiLevel': '2.13'\n}\n\n\ndef run(ctx):\n [number_of_columns] = get_values( # noqa: F821\n 'number_of_columns')\n\n if number_of_columns > 12:\n raise Exception('The number of columns cannot exceed 12.')\n if number_of_columns % 2 == 1:\n raise Exception('The number of columns should be even.')\n\n # labware setup\n trough = ctx.load_labware('nest_12_reservoir_15ml', '8')\n plate = ctx.load_labware('corning_96_wellplate_360ul_flat', '9')\n\n tiprack_m300 = [ctx.load_labware('opentrons_96_tiprack_300ul', slot)\n for slot in ['3', '7']]\n\n # instrument setup\n m300 = ctx.load_instrument(\n 'p300_multi_gen2',\n mount='left',\n tip_racks=tiprack_m300)\n\n # reagents setup\n TMB_substrate = trough.wells_by_name()['A6']\n stop_solution = trough.wells_by_name()['A12']\n\n \"\"\"\n Adding TMB substrate\n \"\"\"\n m300.pick_up_tip()\n m300.distribute(\n 100,\n TMB_substrate,\n [col[0].top() for col in plate.columns()[:number_of_columns]],\n blow_out=TMB_substrate,\n new_tip='never',\n rate=0.75)\n m300.drop_tip()\n\n ctx.delay(minutes=30)\n\n \"\"\"\n Adding Stop Solution\n \"\"\"\n for col in plate.columns()[:number_of_columns]:\n m300.pick_up_tip()\n m300.transfer(100, stop_solution, col, new_tip='never')\n m300.drop_tip()\n",
"content": "metadata = {\n 'protocolName': 'Substrate and Stop Solution Addition',\n 'author': 'Alise <[email protected]>',\n 'source': 'Custom Protocol Request',\n 'apiLevel': '2.14'\n}\n\n\ndef run(ctx):\n [number_of_columns] = get_values( # noqa: F821\n 'number_of_columns')\n\n if number_of_columns > 12:\n raise Exception('The number of columns cannot exceed 12.')\n if number_of_columns % 2 == 1:\n raise Exception('The number of columns should be even.')\n\n # labware setup\n trough = ctx.load_labware('nest_12_reservoir_15ml', '8')\n plate = ctx.load_labware('corning_96_wellplate_360ul_flat', '9')\n\n tiprack_m300 = [ctx.load_labware('opentrons_96_tiprack_300ul', slot)\n for slot in ['3', '7']]\n\n # instrument setup\n m300 = ctx.load_instrument(\n 'p300_multi_gen2',\n mount='left',\n tip_racks=tiprack_m300)\n\n # reagents setup\n TMB_substrate = trough.wells_by_name()['A6']\n stop_solution = trough.wells_by_name()['A12']\n\n \"\"\"\n Adding TMB substrate\n \"\"\"\n m300.pick_up_tip()\n m300.distribute(\n 100,\n TMB_substrate,\n [col[0].top() for col in plate.columns()[:number_of_columns]],\n blow_out=TMB_substrate,\n new_tip='never')\n m300.drop_tip()\n\n ctx.delay(minutes=30)\n\n \"\"\"\n Adding Stop Solution\n \"\"\"\n for col in plate.columns()[:number_of_columns]:\n m300.pick_up_tip()\n m300.transfer(100, stop_solution, col, new_tip='never')\n m300.drop_tip()\n",
"custom_labware_defs": [],
"fields": [
{
Expand Down Expand Up @@ -48,7 +48,7 @@
}
],
"metadata": {
"apiLevel": "2.13",
"apiLevel": "2.14",
"author": "Alise <[email protected]>",
"protocolName": "Substrate and Stop Solution Addition",
"source": "Custom Protocol Request"
Expand Down
Loading

0 comments on commit c9bf5f3

Please sign in to comment.