Chestnut protospecs — campaign plan

Goal: draft one protospec per step of the Chestnut CFPS-to-SPR chain, in the “Chesnut Development” campaign.

Campaign: 34a42965-df1f-4b27-abe3-3b1eec1f136a (empty as of 2026-08-05).

Drafts: medra_robotics/protocols/chestnut/chestnut_protospecs.py Tests: medra_robotics/tests/protocols/test_chestnut_protospecs.py

Sources read:

  • Daily note daily/2026-08-04.md (the five steps)
  • Notion “Chestnut Assays” and its four step pages
  • Google Doc “CFPS → SPR Workflow v1.0” (the detailed protocol)

The chain

Each step ends in one hand-off plate. That plate is the input to the next step.

StepOperationHand-off plate
1Q5 master mix assembly (manual, at the bench)Master mix tube
2Three-fragment overlap PCR, 19 µL mix + 1 µL templatePCR plate, 20 µL per well
3Magnetic bead cleanup on the KingFisherPurified DNA plate, 40 µL per well
4Cell-free protein synthesis, 14 µL mix + 1 µL templateCrude protein plate, 15 µL per well
5SPR kinetics on the Carterra LSA-XTKinetic dataset

The same well map carries from the Twist plate to the Carterra. Sample identity comes from position. No re-barcoding happens between instruments.

Well map, identical in all four drafts: 94 samples in A1:G12 and H1:H10, the sfGFP expression control in H11, and the no-template control in H12. H12 takes master mix with every other well, but no template.

Decisions made

  • Four protospecs, not five. Step 1 stays a bench task.
  • Not deck-specific. The drafts are ProtoSpec objects, which request hardware by capability and compile against any deck that satisfies them.
  • Single-channel pipettes, deep-well sources. A single channel avoids the dead volume of filling eight troughs. Bulk reagents sit in two wells of a deep 96-well source plate, and each source feeds half the target plate.
  • Bio-Rad CFX Opus 96 for both thermal steps. Step 2 runs the Q5 program. Step 4 runs 30 °C for 6 hours, then holds at 4 °C.
  • carterra_lsa_xt for the SPR run. The arm loads the plates.
  • KingFisher is stage-then-pause. The protospec dispenses the bead, ethanol, and elution plates. Then it pauses. The operator carries the plates to the KingFisher, runs it, and returns the eluate plate.
  • No QC inside any protospec. Fragment Analyzer, Qubit, and protein gel stay manual. They are off the campaign.

Two questions answered from the code

Protospecs are not parameterizable by sample count

RunArguments is a closed TypedDict with two keys: labchip_filename and experiment_id. Both are specific to the LabChip and to ProSE. Runtime asserts hold the three argument TypedDicts in sync.

Source: shared_py/shared_py/protoscript/models/actions/run_arguments.py.

A well-range argument is a code change, not authoring. It needs an edit to those three TypedDicts, an edit to RUN_ARGUMENTS, and a run of bin/generate-cloud-models. Well ranges are baked into each action today.

The drafts are written for a full 96-well plate. A pilot run is a change to the well-range constants at the top of the module.

The CFX Opus 96 is not a thermocycler in the protoscript type system

BioradCfxOpus96Protoscript inherits OrientedModuleProtoscript, SystemModule, and RpaModuleBase. It does not carry ThermocyclerBase. Only the Inheco ODTC and the Bio-Rad PTC Tempo carry that trait.

So the CFX cannot use thermocycler_pcr or thermocycler_hold_at_temperature. Its only action is biorad_cfx_opus_96_cycle, which drives CFX Manager over py_rpa from an authored protocol file.

That action carries no plate-type constraint in task generation, so the same call covers both steps with two different protocol files. The 30 °C hold and the 4 °C hold both live inside the step 4 protocol file, so the plate stays in the instrument for the whole incubation.

The cost of this choice: the specs now name the biorad_cfx_opus_96 entity type. A deck with an ODTC but no CFX cannot run steps 2 and 4 without an edit.

What is still open

Protocol files do not exist yet

The drafts point at placeholder paths on the CFX workstation:

  • C:\MedraProtocols\Chestnut_Q5_Overlap_PCR.prcl
  • C:\MedraProtocols\Chestnut_CFPS_30C_6h.prcl
  • C:\MedraProtocols\Chestnut_96.pltd

The Carterra protocol name Chestnut_AntiHis_Capture_PDL1_Kinetics is also a placeholder. All four must exist on the instrument before a run.

The Q5 program from the Google Doc: 98 °C for 30 s; then 35 cycles of 98 °C for 30 s, 63 °C for 30 s, and 72 °C for 75 s; then 72 °C for 60 s; then a hold.

SPR boundary was assumed, not decided

The step 5 draft dilutes crude CFPS, builds the sample and analyte plates, and runs the Carterra. It assumes the anti-His capture surface is already prepared.

Printing the biotin-anti-His layer and scouting the regeneration conditions are assay-development jobs done once, not per plate. That is why they sit outside the spec. Change this if the surface must be rebuilt per run.

The analyte series is a 3-fold cascade from A1 into A2:A8, which gives the 8 points the Google Doc asks for. serial_dilution pre-fills the target wells with buffer itself, so those wells must start empty.

No single deck runs all four steps

  • Carterra LSA-XT: ml1-010, ml1-014. Both decks are bare — an arm, four well-plate holders, and the Carterra. Neither has a pipette.
  • Bio-Rad CFX Opus 96: ml1-023 only.
  • Lynx, ODTC, Fragment Analyzer, sealer, pipettes: arg-m5.

Steps 2 and 4 need a deck with both a pipette and a CFX. No deck has that pair today. Step 5 needs plates to travel to a Carterra deck that cannot pipette them.

Two practical costs

  • The step 3 ethanol fill is 192 single-channel dispenses of 175 µL. A plate washer or a Tempest does this far faster. The volume also forced the ethanol source to an Aquafill reservoir, because 34 mL does not fit in a deep 96-well plate.
  • No part of this is hardware tested. The drafts construct, type-check, and pass their well-map and reagent-sufficiency tests. Nothing has run on a robot.

Next

  • Author the two .prcl files and the Carterra protocol.
  • Decide which deck gains a pipette plus a CFX, or split step 2 and step 4 across decks.
  • Compile each spec against a candidate deck and read the planning errors.