Skip to content

Commit

Permalink
Merge pull request #5063 from Opentrons/fix-spotsee-cycle
Browse files Browse the repository at this point in the history
fix(protocols/spotsee): add num cycles to protocol
  • Loading branch information
ramifarawi authored Apr 1, 2024
2 parents a87dfd5 + 79ac172 commit 02516cd
Show file tree
Hide file tree
Showing 6 changed files with 512 additions and 496 deletions.
1 change: 1 addition & 0 deletions data/data/fields.csv
Original file line number Diff line number Diff line change
Expand Up @@ -890,6 +890,7 @@ num_col,10
num_cols,3
num_columns,1
num_curves,1
num_cycles,1
num_daughter_plates,1
num_drug_plates,1
num_extracts,1
Expand Down
4 changes: 2 additions & 2 deletions protoBuilds/3e0bef/3e0b3f.ot2.apiv2.py.json

Large diffs are not rendered by default.

14 changes: 10 additions & 4 deletions protoBuilds/spotsee/spotsee.ot2.apiv2.py.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"content": "metadata = {\n 'protocolName': 'Spotsee Well Distribution Protocol',\n 'author': 'Rami Farawi <[email protected]>',\n 'source': 'Custom Protocol Request',\n 'apiLevel': '2.13'\n}\n\n\ndef run(ctx):\n\n [vol, labware, start_tip,\n p20_mount, p300_mount] = get_values( # noqa: F821\n \"vol\", \"labware\", \"start_tip\", \"p20_mount\", \"p300_mount\")\n\n # p20_mount = 'left'\n # vol = 25\n # p300_mount = 'right'\n # labware = '40_well_plate'\n # start_tip = 4\n\n # labware\n reservoir = ctx.load_labware('nest_1_reservoir_195ml', 10)\n plate = ctx.load_labware(labware, 1)\n tips = [ctx.load_labware('opentrons_96_filtertiprack_20ul' if vol < 20 else 'opentrons_96_tiprack_300ul', slot) # noqa: E501\n for slot in [11]]\n\n red_wells = [\n 'J1', 'I1', 'H1', 'G1', 'F1', 'E1', 'D1', 'C1', 'B1', 'A1',\n 'A2', 'B2', 'C2', 'D2', 'E2', 'F2', 'G2', 'H2', 'I2', 'J2',\n 'J3', 'I3', 'H3', 'G3', 'F3', 'E3', 'D3', 'C3', 'B3', 'A3',\n 'A4', 'B4', 'C4', 'D4', 'E4', 'F4', 'G4', 'H4', 'I4', 'J4',\n 'J5', 'I5', 'H5', 'G5', 'F5', 'E5', 'D5', 'C5', 'B5', 'A5',\n 'A6', 'B6', 'C6', 'D6', 'E6', 'F6', 'G6', 'H6', 'I6', 'J6',\n 'J7', 'I7', 'H7', 'G7', 'F7', 'E7', 'D7', 'C7', 'B7', 'A7',\n 'A8', 'B8', 'C8', 'D8', 'E8', 'F8', 'G8', 'H8', 'I8', 'J8'\n ]\n\n # pipettes\n p20 = ctx.load_instrument('p20_single_gen2', p20_mount, tip_racks=tips)\n p300 = ctx.load_instrument('p300_single_gen2', p300_mount, tip_racks=tips)\n pip = p20 if vol < 20 else p300\n\n # mapping\n buffer = reservoir.wells()[0]\n\n # protocol\n ctx.comment('\\n---------------ADDING BUFFER TO PLATE----------------\\n\\n')\n if labware == '80_well_plate':\n num_asp = pip.max_volume // vol\n chunks = [red_wells[i:i+num_asp] for i in range(0, len(red_wells),\n num_asp)]\n\n pip.pick_up_tip(tips[0].wells()[start_tip-1])\n for chunk in chunks:\n pip.aspirate(num_asp*vol, buffer)\n for well in chunk:\n pip.dispense(vol, plate.wells_by_name()[well])\n pip.move_to(plate.wells_by_name()[well].top(z=5))\n pip.drop_tip()\n else:\n num_asp = pip.max_volume // vol\n chunks = [plate.wells()[i:i+num_asp] for i in range(0,\n len(plate.wells()),\n num_asp)]\n\n pip.pick_up_tip(tips[0].wells()[start_tip-1])\n for chunk in chunks:\n pip.aspirate(num_asp*vol, buffer)\n for well in chunk:\n pip.dispense(vol, well)\n pip.move_to(well.top(z=5))\n pip.drop_tip()\n",
"content": "metadata = {\n 'protocolName': 'Spotsee Well Distribution Protocol',\n 'author': 'Rami Farawi <[email protected]>',\n 'source': 'Custom Protocol Request',\n 'apiLevel': '2.13'\n}\n\n\ndef run(ctx):\n\n [num_cycles, vol, labware, start_tip,\n p20_mount, p300_mount] = get_values( # noqa: F821\n \"num_cycles\", \"vol\", \"labware\", \"start_tip\", \"p20_mount\", \"p300_mount\")\n\n # p20_mount = 'left'\n # vol = 25\n # p300_mount = 'right'\n # labware = '40_well_plate'\n # start_tip = 4\n\n # labware\n reservoir = ctx.load_labware('nest_1_reservoir_195ml', 10)\n plate = ctx.load_labware(labware, 1)\n tips = [ctx.load_labware('opentrons_96_filtertiprack_20ul' if vol < 10 else 'opentrons_96_tiprack_300ul', slot) # noqa: E501\n for slot in [11]]\n\n red_wells = [\n 'J1', 'I1', 'H1', 'G1', 'F1', 'E1', 'D1', 'C1', 'B1', 'A1',\n 'A2', 'B2', 'C2', 'D2', 'E2', 'F2', 'G2', 'H2', 'I2', 'J2',\n 'J3', 'I3', 'H3', 'G3', 'F3', 'E3', 'D3', 'C3', 'B3', 'A3',\n 'A4', 'B4', 'C4', 'D4', 'E4', 'F4', 'G4', 'H4', 'I4', 'J4',\n 'J5', 'I5', 'H5', 'G5', 'F5', 'E5', 'D5', 'C5', 'B5', 'A5',\n 'A6', 'B6', 'C6', 'D6', 'E6', 'F6', 'G6', 'H6', 'I6', 'J6',\n 'J7', 'I7', 'H7', 'G7', 'F7', 'E7', 'D7', 'C7', 'B7', 'A7',\n 'A8', 'B8', 'C8', 'D8', 'E8', 'F8', 'G8', 'H8', 'I8', 'J8'\n ]\n\n # pipettes\n p20 = ctx.load_instrument('p20_single_gen2', p20_mount, tip_racks=tips)\n p300 = ctx.load_instrument('p300_single_gen2', p300_mount, tip_racks=tips)\n pip = p20 if vol < 10 else p300\n\n # mapping\n buffer = reservoir.wells()[0]\n\n # protocol\n pip.pick_up_tip(tips[0].wells()[start_tip-1])\n for _ in range(num_cycles):\n ctx.comment('\\n-------------ADDING BUFFER TO PLATE-------------\\n\\n')\n if labware == '80_well_plate':\n num_asp = pip.max_volume // vol\n chunks = [red_wells[i:i+num_asp] for i in range(0, len(red_wells),\n num_asp)]\n for chunk in chunks:\n pip.aspirate(num_asp*vol, buffer)\n for well in chunk:\n pip.dispense(vol, plate.wells_by_name()[well])\n pip.move_to(plate.wells_by_name()[well].top(z=5))\n\n else:\n num_asp = pip.max_volume // vol\n chunks = [plate.wells()[i:i+num_asp] for i in range(0,\n len(plate.wells()),\n num_asp)]\n\n for chunk in chunks:\n pip.aspirate(num_asp*vol, buffer)\n for well in chunk:\n pip.dispense(vol, well)\n pip.move_to(well.top(z=5))\n ctx.pause('Change Sheet on Deck')\n pip.drop_tip()\n",
"custom_labware_defs": [
{
"brand": {
Expand Down Expand Up @@ -1543,9 +1543,15 @@
}
],
"fields": [
{
"default": 20,
"label": "Number of cycles before new tip",
"name": "num_cycles",
"type": "int"
},
{
"default": 15,
"label": "Volume to each well (1-20ul)",
"label": "Volume to each well",
"name": "vol",
"type": "int"
},
Expand Down Expand Up @@ -1625,10 +1631,10 @@
"type": "nest_1_reservoir_195ml"
},
{
"name": "Opentrons 96 Filter Tip Rack 20 \u00b5L on 11",
"name": "Opentrons 96 Tip Rack 300 \u00b5L on 11",
"share": false,
"slot": "11",
"type": "opentrons_96_filtertiprack_20ul"
"type": "opentrons_96_tiprack_300ul"
},
{
"name": "Opentrons Fixed Trash on 12",
Expand Down
Loading

0 comments on commit 02516cd

Please sign in to comment.