-
Notifications
You must be signed in to change notification settings - Fork 53
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
“ramifarawi”
committed
Aug 8, 2023
1 parent
fd81c65
commit 230243c
Showing
2 changed files
with
3 additions
and
8 deletions.
There are no files selected for viewing
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": "from opentrons import protocol_api\n\nmetadata = {\n 'protocolName': 'SARS-COV2 (VSV) Neutralization Assay',\n 'author': 'Rami Farawi <[email protected]>',\n 'source': 'Custom Protocol Request',\n 'apiLevel': '2.13'\n}\n\n\ndef run(ctx):\n\n # [num_plates, plate_type, serum_vol, m300_mount] = get_values( # noqa: F821\n # \"num_plates\", \"plate_type\", \"serum_vol\", \"m300_mount\")\n\n num_plates = 3\n plate_type = 'corning_96_wellplate_360ul_flat'\n serum_vol = 70\n m300_mount = 'left'\n\n # labware\n serum_res = ctx.load_labware('agilent_1_reservoir_290ml', 7)\n virus_res = ctx.load_labware('nest_12_reservoir_15ml', 8)\n source_plates = [ctx.load_labware(plate_type, slot)\n for slot in [1, 2, 3]][:num_plates]\n dest_plates = [ctx.load_labware(plate_type, slot)\n for slot in [4, 5, 6]][:num_plates]\n tips = [ctx.load_labware('opentrons_96_tiprack_300ul', slot)\n for slot in [9, 10, 11]]\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(\"Replace empty tip racks\")\n m300.reset_tipracks()\n m300.pick_up_tip()\n\n def slow_tip_withdrawal(current_pipette, well_location, to_center=False):\n if current_pipette.mount == 'right':\n axis = 'A'\n else:\n axis = 'Z'\n ctx.max_speeds[axis] = 10\n if to_center is False:\n current_pipette.move_to(well_location.top())\n else:\n current_pipette.move_to(well_location.center())\n ctx.max_speeds[axis] = None\n\n # mapping\n virus = virus_res.wells()[0]\n overlay = virus_res.wells()[1:4][:num_plates]\n serum = serum_res.wells()[0]\n trash = virus_res.wells()[11]\n\n # protocol\n ctx.comment('\\n---------------ADDING SERUM TO PLATES----------------\\n\\n')\n pick_up()\n for plate in source_plates:\n m300.distribute(40, serum, plate.rows()[0][1:7], new_tip='never')\n ctx.comment('\\n\\n')\n\n for plate in source_plates:\n m300.aspirate(80, serum)\n m300.dispense(80, plate.rows()[0][7])\n ctx.comment('\\n\\n')\n\n for plate in source_plates:\n m300.aspirate(serum_vol, serum)\n m300.dispense(serum_vol, plate.rows()[0][0])\n\n m300.drop_tip()\n ctx.comment('\\n\\n')\n\n ctx.pause(f'''Please add {80-serum_vol}ul of media and appropriate amount\n of sample to column 1''')\n\n ctx.comment('\\n---------------SERIALLY DILUTING----------------\\n\\n')\n for plate in source_plates:\n for i in range(len(plate.rows()[0][:6])):\n pick_up()\n m300.mix(3, 40, plate.rows()[0][i])\n m300.aspirate(40, plate.rows()[0][i])\n if i < 5:\n m300.dispense(40, plate.rows()[0][i+1])\n if i == 5:\n m300.dispense(40, trash)\n\n m300.drop_tip()\n ctx.comment('\\n')\n ctx.comment('\\n\\n\\n\\n \u02da')\n\n ctx.comment('\\n---------------ADDING VIRUS----------------\\n\\n')\n m300.pick_up_tip()\n for plate in source_plates:\n for col in plate.rows()[0][:7]:\n m300.aspirate(40, virus)\n m300.dispense(40, col.top())\n ctx.delay(seconds=2)\n m300.blow_out(col.top())\n m300.drop_tip()\n\n ctx.pause('Place plate in incubator at 37C for one hour')\n\n ctx.comment('\\n------DISCARDING MEDIA & TRANSFER TO NEW PLATE-------\\n\\n')\n\n for s_plate, d_plate in zip(source_plates, dest_plates):\n for s, d in zip(s_plate.rows()[0][:8], d_plate.rows()[0][:8]):\n pick_up()\n m300.aspirate(100, d, rate=0.1)\n m300.dispense(100, trash)\n m300.aspirate(60, s)\n m300.dispense(60, d)\n m300.drop_tip()\n\n ctx.pause('Place plate in incubator at 37C for one hour')\n\n ctx.comment('\\n------------TRANSFERRING OVERLAY-------------\\n\\n')\n for res_well, plate in zip(overlay, dest_plates):\n for col in plate.rows()[0][:8]:\n pick_up()\n m300.aspirate(140, res_well, rate=0.2)\n ctx.delay(seconds=1)\n slow_tip_withdrawal(m300, col)\n m300.dispense(140, col, rate=0.2)\n slow_tip_withdrawal(m300, col)\n m300.drop_tip()\n ctx.comment('\\n')\n", | ||
"content": "from opentrons import protocol_api\n\nmetadata = {\n 'protocolName': 'SARS-COV2 (VSV) Neutralization Assay',\n 'author': 'Rami Farawi <[email protected]>',\n 'source': 'Custom Protocol Request',\n 'apiLevel': '2.13'\n}\n\n\ndef run(ctx):\n\n [num_plates, plate_type, serum_vol, m300_mount] = get_values( # noqa: F821\n \"num_plates\", \"plate_type\", \"serum_vol\", \"m300_mount\")\n\n # labware\n serum_res = ctx.load_labware('agilent_1_reservoir_290ml', 7)\n virus_res = ctx.load_labware('nest_12_reservoir_15ml', 8)\n source_plates = [ctx.load_labware(plate_type, slot)\n for slot in [1, 2, 3]][:num_plates]\n dest_plates = [ctx.load_labware(plate_type, slot)\n for slot in [4, 5, 6]][:num_plates]\n tips = [ctx.load_labware('opentrons_96_tiprack_300ul', slot)\n for slot in [9, 10, 11]]\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(\"Replace empty tip racks\")\n m300.reset_tipracks()\n m300.pick_up_tip()\n\n def slow_tip_withdrawal(current_pipette, well_location, to_center=False):\n if current_pipette.mount == 'right':\n axis = 'A'\n else:\n axis = 'Z'\n ctx.max_speeds[axis] = 10\n if to_center is False:\n current_pipette.move_to(well_location.top())\n else:\n current_pipette.move_to(well_location.center())\n ctx.max_speeds[axis] = None\n\n # mapping\n virus = virus_res.wells()[0]\n overlay = virus_res.wells()[1:4][:num_plates]\n serum = serum_res.wells()[0]\n trash = virus_res.wells()[11]\n\n # protocol\n ctx.comment('\\n---------------ADDING SERUM TO PLATES----------------\\n\\n')\n pick_up()\n for plate in source_plates:\n m300.distribute(40, serum, plate.rows()[0][1:7], new_tip='never')\n ctx.comment('\\n\\n')\n\n for plate in source_plates:\n m300.aspirate(80, serum)\n m300.dispense(80, plate.rows()[0][7])\n ctx.comment('\\n\\n')\n\n for plate in source_plates:\n m300.aspirate(serum_vol, serum)\n m300.dispense(serum_vol, plate.rows()[0][0])\n\n m300.drop_tip()\n ctx.comment('\\n\\n')\n\n ctx.pause(f'''Please add {80-serum_vol}ul of media and appropriate amount\n of sample to column 1''')\n\n ctx.comment('\\n---------------SERIALLY DILUTING----------------\\n\\n')\n for plate in source_plates:\n for i in range(len(plate.rows()[0][:6])):\n pick_up()\n m300.mix(3, 40, plate.rows()[0][i])\n m300.aspirate(40, plate.rows()[0][i])\n if i < 5:\n m300.dispense(40, plate.rows()[0][i+1])\n if i == 5:\n m300.dispense(40, trash)\n\n m300.drop_tip()\n ctx.comment('\\n')\n ctx.comment('\\n\\n\\n\\n \u02da')\n\n ctx.comment('\\n---------------ADDING VIRUS----------------\\n\\n')\n m300.pick_up_tip()\n for plate in source_plates:\n for col in plate.rows()[0][:7]:\n m300.aspirate(40, virus)\n m300.dispense(40, col.top())\n ctx.delay(seconds=2)\n m300.blow_out(col.top())\n m300.drop_tip()\n\n ctx.pause('Place plate in incubator at 37C for one hour')\n\n ctx.comment('\\n------DISCARDING MEDIA & TRANSFER TO NEW PLATE-------\\n\\n')\n\n for s_plate, d_plate in zip(source_plates, dest_plates):\n for s, d in zip(s_plate.rows()[0][:8], d_plate.rows()[0][:8]):\n pick_up()\n m300.aspirate(100, d, rate=0.1)\n m300.dispense(100, trash)\n m300.aspirate(60, s)\n m300.dispense(60, d)\n m300.drop_tip()\n\n ctx.pause('Place plate in incubator at 37C for one hour')\n\n ctx.comment('\\n------------TRANSFERRING OVERLAY-------------\\n\\n')\n for res_well, plate in zip(overlay, dest_plates):\n for col in plate.rows()[0][:8]:\n pick_up()\n m300.aspirate(140, res_well, rate=0.2)\n ctx.delay(seconds=1)\n slow_tip_withdrawal(m300, col)\n m300.dispense(140, col, rate=0.2)\n slow_tip_withdrawal(m300, col)\n m300.drop_tip()\n ctx.comment('\\n')\n", | ||
"custom_labware_defs": [ | ||
{ | ||
"brand": { | ||
|
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