-
Notifications
You must be signed in to change notification settings - Fork 52
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #4959 from Opentrons/5c7384
fix(protocols/5c7384): fix return tip schema
- Loading branch information
Showing
12 changed files
with
2,774 additions
and
15 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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": [ | ||
{ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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": [ | ||
{ | ||
|
@@ -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" | ||
|
Oops, something went wrong.