Irving cell-binding final report context, 2026-07-27
Goal
Prepare a client-facing, consultant-style final report for the Irving PD-L1 cell-binding work after the last four rerun plates finish on 2026-07-27, expected around 11pm PT. This note preserves:
- the assay-development and production story;
- the issues, decisions, and debugging recorded in Slack;
- what the client explicitly liked and asked to clarify;
- the distinction between plate QC, candidate reportability, and cross-assay triage;
- the exact items that must be refreshed before the final report is considered complete.
The final report should be decision-oriented and scientifically candid. It should not read like a run log or debugging diary.
Current snapshot, 6:15pm PT
No analysis repositories were edited during this context-gathering pass.
Current local production artifact:
/Users/saahas/binding-fcs-pipeline/assaydev_data/prod_report.html- Built
2026-07-28T01:15:52Z, or 6:15pm PT. - 72 antibodies.
- 27 rendered plates after excluding three plates with misattached composition maps.
- 11/27 plates pass the full strict plate gate.
- 25 reportable EC50 values in the strict production view.
- Current strict tiers: 20 active, 19 weak, 1 inactive, 32
qc-fail.
These strict tiers are not the final candidate-level reportability calls. The rescue analysis uses replicate concordance and clean-plate arbitration and currently reports:
- 30 acquired plates across 9 candidate rosters.
- 66/72 candidates usable before tonight’s reruns.
- 6 candidates needing new physical evidence:
- ISO-Ab-0104
- ISO-Ab-0059
- ISO-Ab-0109
- ISO-Ab-0125
- ISO-Ab-0137
- ISO-Ab-0167
Bhavaani’s separate Round 2 dashboard is a third, pre-rerun analysis view:
- build
2026-07-27a; - 18 Round 2 plates across the same 9 candidate rosters;
- 6/18 plates pass its system-suitability definition;
- 28/72 antibodies are
Reportable, corrected; - 36/72 are
Unreportable; - 8/72 are
Negative — trustworthy.
Do not reconcile these counts arithmetically with either 11/27 strict plates or 66/72 candidate-level rescue calls. Bhavaani’s page asks a different question: whether an absolute EC50 or Emax remains defensible after a model-based correction for cell-density bias in Round 2. The rescue page asks whether the candidate’s biological binding conclusion is supported across replicates and rounds.
Tonight’s physical rerun panel contains 16 antibodies, not because 16 candidates all lack data, but because it combines:
- the minimum unresolved set;
- conservative confirmation of possible hidden controls;
- two borderline/extended-ladder candidates;
- full use of two 8-antibody run layouts.
Panel in the downsampled plate:
| Destination | Antibody | Source |
|---|---|---|
| A1 | ISO-Ab-0097 | P9-G2 |
| B1 | ISO-Ab-0133 | P3-H3 |
| C1 | ISO-Ab-0059 | P8-A2 |
| D1 | ISO-Ab-0069 | P11-H1 |
| E1 | ISO-Ab-0092 | P14-A1 |
| F1 | ISO-Ab-0137 | P3-G1 |
| G1 | ISO-Ab-0109 | P3-C1 |
| H1 | ISO-Ab-0102 | P9-A2 |
| A2 | ISO-Ab-0004 | PGF-A1 |
| B2 | ISO-Ab-0324 | PGF-G1 |
| C2 | ISO-Ab-0050 | P14-A3 |
| D2 | ISO-Ab-0087 | P13-G3 |
| E2 | ISO-Ab-0126 | P13-C3 |
| F2 | ISO-Ab-0281 | P4-H2 |
| G2 | ISO-Ab-0167 | P12-C2 |
| H2 | ISO-Ab-0085 | P12-A2 |
The final four plates are not in the 6:15pm artifact. Do not publish the existing summary counts as final.
The load-bearing distinction
The report must keep these three layers separate:
- Plate QC: did one physical plate meet all control-based system-suitability criteria?
- Candidate reportability: across all valid observations of one antibody, is its binding call supported, resolved by a clean replicate, or still ambiguous?
- Portfolio decision: after combining cell binding with cell blocking and other campaign data, should the antibody advance?
One failed plate does not automatically invalidate every sample curve on it. Conversely, a plausible sample curve does not make a failed plate pass QC. Replicate agreement can make a candidate-level call reportable while the plate remains correctly labeled as failed.
This is the conceptual core of the rescue analysis and the reason the raw production page can show 11/27 passing plates while the candidate-level view supports 66/72 calls.
Recommended one-sentence story
Medra developed a reproducible PD-L1 cell-binding assay by first preserving cell pellets through automated washing, then localizing later plate non-uniformity to transient clumping and antibody-driven aggregation, and finally used strict plate controls plus replicate concordance to recover defensible potency and efficacy calls for the 72-candidate panel, reserving physical reruns only for candidates whose conclusions remained ambiguous.
Client feedback that should shape the report
What the client explicitly liked
From the cell-blocking report feedback on July 17:
- dose-response visuals;
- edge-effect analysis;
- the high-dose hook flag;
- a clickable path from a flag or point to the underlying curve;
- the potency-versus-efficacy scatter;
- clear activity thresholds.
Evidence: client feedback thread
What the client asked to understand
The same feedback asked:
- what reagent titrations were performed during assay development;
- whether all designs on a failed plate inherit the QC failure;
- why Z’ failed even when signal-to-background looked consistent;
- why curves started above 0% and some responses exceeded 100%;
- what the
!flag means; - what reference EC50 values mean and how the 0.5-log band is applied;
- what could prevent repeat failures;
- whether flow-assay-development insights were available.
These are not appendix-only questions. Each should be answered close to the relevant visual.
Triage and visualization preferences from the July 23 client meeting
- Show an EC50 comparison before and after reruns.
- Use hard functional stops first for this PD-L1 program:
- no blocking activity;
- poor cell binding;
- PD-L2 binding/off-target activity.
- Apply weighted developability scoring after the binary functional screen.
- Extra data is acceptable if it improves confidence.
- Heatmaps are useful for diagnosing plate-level spatial effects, but not as default result views.
- Make QC metrics and controls easy to retrieve when a compound looks anomalous.
- Support data-based filters rather than only static categories.
- Recheck the final triage set with the client.
Evidence: July 23 meeting notes, follow-up hybrid triage commitment
Prehistory: assay rationale and first automation failure, April through June
Why binding remained a separate assay
The client described flow cytometry as especially important and asked for a co-development workflow in which the AI Experimentalist would propose the dilution series, replicates, reagent amounts, and required controls. Any PD-L1-expressing cell line was acceptable, with suspension cells preferred.
There was no true thaw-and-use PD-L1-overexpressing CHO or HEK source available, so the team had to plan for cell expansion. The Promega blockade kit offered a faster functional readout, but its luminescent PD-1/PD-L1 assay was complementary to, not a replacement for, direct flow-cytometric binding. Fluorescent beads were introduced as an engineering surrogate to develop the automated wash and acquisition workflow without consuming cells.
Evidence: client importance of flow cytometry, April 24 kickoff requirements
The May failure was physical cell removal, not simply cell death
The first automated cell-binding runs recovered very few cells after the wash sequence. Two independent mechanical contributors were found:
- Residual detergent and clogged plate-washer pins made the dispense step harsh and inconsistent. A cleaning protocol, overnight sonication, and ten PBS prime cycles restored the washer.
- Fast robot transit after centrifugation disturbed freshly formed pellets. Subsequent aspiration then removed resuspended cells with the supernatant. Reducing transit speed to 20% preserved the pellet and increased recovery.
The diagnostic structure matters:
- manual handling worked because it was gentler;
- two clogged wells retained cells because they were never aspirated;
- a centrifugation stress series did not reproduce the loss;
- prolonged antibody exposure produced little death in that experiment;
- slow robotic transit improved recovery.
The team therefore changed motion and washer preparation rather than mislabeling the failure as antibody toxicity. By May 31, an automated bead run retained more than 20,000 beads per well and a cell run retained more than 10,000 cells per well after all washes.
Evidence: May cell-retention root cause, May 31 QC confirmation
Repeated runs established operability, not yet full plate uniformity
Early June produced repeated end-to-end runs with passing controls, and throughput work reduced hands-on time through automated secondary addition and cytometer stop-condition planning. The team also moved from a sparse three-point concept to an eight-point control ladder because a four-parameter logistic curve cannot be identified robustly from three noisy observations.
On July 4, control plates in round-bottom 96-well plates appeared to meet the initial QC bar:
- binding plate CV 9.4%;
- blocking plate CV 8.6%;
- Z’ greater than 0.5;
- four control antibodies produced expected dose-response behavior.
That was evidence that the chemistry and controls could work. It was not yet evidence of spatial uniformity across a production-like plate. When the broader uniformity layout ran on July 8, the row gradient reappeared at approximately 30% CV with low Z’. Production was paused and a five-plate diagnostic compared:
- fully manual preparation;
- automated secondary addition only;
- full automated washing;
- a 180-degree acquisition orientation;
- fewer wash cycles.
This is the transition into the July assay-development story below. The reporting lesson is to distinguish control reproducibility from plate-wide uniformity rather than claiming the assay passed, failed, and passed again without explaining that the qualification question changed.
Evidence: initial July control qualification, uniformity failure, five-plate localization experiment
Assay-development narrative
1. The initial problem
After the May cell-retention problem was resolved, production-like plates still showed large well-to-well gradients in PE signal and variable recovered cell counts. A plate washer was already suspected operationally, but several mechanisms were possible:
- non-uniform wash or dispense;
- read-order drift;
- cell settling;
- insufficient mixing;
- fixed cytometer or plate-position geometry;
- transient clumps.
The report should open this section with a simple assay schematic:
- incubate PD-L1-expressing CHO cells with primary antibody;
- wash;
- incubate with PE-conjugated anti-human secondary;
- wash and apply viability stain;
- acquire singlet/live-cell median PE-H on the NovoCyte.
Then show one representative non-uniform plate as the problem statement.
2. The decisive structural test: orientation versus transient state
The elegant inference is from the 180-degree reread:
- A BioTek-washed plate initially showed a gradient.
- After rotating the same plate 180 degrees and rereading, it became uniform at less than 10% CV.
- A fixed instrument or optical geometry effect should preserve the pattern and move it with the plate orientation.
- Instead, the pattern disappeared.
This does not mathematically prove clumping, but it falsifies the simplest fixed-geometry explanation and supports a transient physical-state mechanism such as clump redistribution.
Microscope observations connected low counts to visibly clumped wells, especially on the left side of the plate. Clumps were present early and absent later. Ten cycles of pipette mixing were insufficient; cold shaking reduced but did not eliminate them.
Evidence: cell-binding root-cause summary
3. Wash-system localization and format change
The team split the workflow to localize the source:
- compare increasing automation exposure;
- compare plate washer versus Dynamic Devices Lynx dispense uniformity;
- use dye to measure delivered-volume CV;
- compare manual and automated washes on real cells;
- separate wash loss from antibody signal with non-antibody stain controls;
- compare plate geometries and wash volumes.
The higher-volume deep-well format and longer shake produced the first visually uniform result:
- approximately 2 mL working-volume deep-well plate;
- 1.1 mL wash;
- 30-minute cold shake before acquisition.
Evidence: first optimized deep-well result
Do not present the historical line chart as if every point is directly comparable. Multiple variables changed. The report should use a sequence of question, experiment, observation, decision.
4. Controls run and production readiness
The controls plate established that the assay chemistry could produce:
- a large positive-to-negative binding window;
- reproducible control response;
- usable reference-antibody dose responses;
- a validated gating template.
The current pipeline’s in-house Durvalumab campaign reference is:
- pEC50 = 9.23;
- mean of four separately fitted Durvalumab titrations on the July 16 controls plate;
- 0.5-log acceptance band;
- not a literature reference.
The four fitted controls were:
| Source | pEC50 | EC50 nM | R2 |
|---|---|---|---|
| Column 2 | 8.908 | 1.2362 | 0.9966 |
| Column 11 | 9.384 | 0.4128 | 0.9045 |
| Row A | 9.270 | 0.5366 | 0.9966 |
| Row F | 9.373 | 0.4238 | 0.9945 |
The report must say this is an assay-specific in-house anchor. Published PD-L1 potencies from other cell lines and expression systems are not directly transferable.
5. Production exposed a second mechanism: binding-linked aggregation
Production plates showed:
- clean negative controls;
- broad positive-control distributions;
- fewer recovered singlets at higher concentrations of PD-L1-binding antibodies;
- stable singlet recovery for IgG isotype;
- a dose-response relationship between binding signal and singlet loss.
The leading mechanism is antibody-driven cell aggregation:
- primary antibody is bivalent;
- the multivalent PE-conjugated secondary can further crosslink antibody-bound cells;
- aggregates are removed by the singlet gate;
- the remaining per-cell median can therefore be biased.
Bhavaani’s additional raw-FCS analysis widens the direct evidence beyond the gate:
- after normalizing by acquired volume, non-cell debris stayed approximately 95–130 events/uL;
- FSC/SSC-gated cell concentration fell from approximately 112 events/uL in negative/blank wells to approximately 25 events/uL in 10 nM Durvalumab wells;
- oversized events remained roughly flat rather than accounting for the missing cells;
- removing the singlet gate raised median PE by 12–15% in negative/blank wells and 18–52% at 10 nM.
The most precise current wording is therefore binding-linked loss of recoverable cells, plus a smaller dose-dependent singlet-gate bias. The missing cells are absent from the acquired suspension, consistent with crosslinked clumps being lost during washing or transfer. This does not by itself locate where the cells went or prove biological death.
Evidence: aggregation analysis, Bhavaani production dashboard
6. Bhavaani’s cell-density and crosslinking diagnostics
The dashboard uses the mirrored Durvalumab titrations as within-plate technical pairs. Across 144 matched well pairs:
- fitted slope:
log10(PE) = constant - 0.454 * log10(cell density); - standard error: 0.086;
- 103/144 pairs had the emptier well read brighter;
- binomial p = 1.2e-7;
- 15/18 plates had a negative slope independently;
- removing plate and row-position means did not remove the relationship.
The page applies a conservative exponent of 0.45:
corrected PE =
background PE + (observed PE - background PE) * recovery^0.45The interpretation is that depleted wells expose each surviving cell to more labeling reagent and therefore inflate per-cell PE. The association is strong. The causal correction remains exploratory because it was estimated on Durvalumab wells from the same production dataset and is then transferred to antibodies with potentially different crosslinking geometry.
Recomputed plate QC after applying the correction
The correction was applied to every well on the 18 Round 2 plates, including the positive and negative controls, using each physical plate’s column-10 mean PE as background and mean cell density as the recovery reference. This implementation reproduces all 72 corrected antibody EC50s embedded in Bhavaani’s dashboard exactly.
Using the dashboard gate (Z' >= 0.5 and Durvalumab pEC50 8.8–9.8), the net result is 6/18 to
8/18 passing: three plates are rescued, one previously passing plate is lost, five remain
passing, and nine remain failing.
| Plate | Z’ raw → corrected | pEC50 raw → corrected | Dashboard QC |
|---|---|---|---|
| PLT-006884 | 0.305 → 0.524 | 9.00 → 9.15 | fail → pass |
| PLT-006885 | 0.669 → 0.791 | 9.52 → 9.59 | pass → pass |
| PLT-006894 | 0.447 → -0.845 | 8.18 → 8.18 | fail → fail |
| PLT-006895 | 0.345 → 0.337 | 7.25 → 7.94 | fail → fail |
| PLT-006897 | 0.566 → 0.353 | 8.64 → 8.72 | fail → fail |
| PLT-006898 | 0.782 → 0.650 | 8.94 → 8.58 | pass → fail |
| PLT-007115 | 0.339 → 0.310 | 8.53 → 8.88 | fail → fail |
| PLT-007116 | 0.554 → 0.226 | 8.41 → 7.36 | fail → fail |
| PLT-007120 | -0.043 → 0.374 | 7.53 → 9.21 | fail → fail |
| PLT-007128 | 0.569 → 0.713 | 6.39 → 8.18 | fail → fail |
| PLT-002746 | 0.632 → 0.655 | 8.64 → 8.56 | fail → fail |
| PLT-002747 | 0.755 → 0.619 | 8.70 → 8.78 | fail → fail |
| PLT-006733 | 0.623 → 0.560 | 9.11 → 9.31 | pass → pass |
| PLT-006732 | 0.614 → 0.542 | 7.48 → 8.88 | fail → pass |
| PLT-006735 | 0.576 → 0.636 | 8.94 → 9.15 | pass → pass |
| PLT-006736 | 0.747 → 0.745 | 8.76 → 9.17 | fail → pass |
| PLT-006738 | 0.839 → 0.743 | 9.35 → 9.64 | pass → pass |
| PLT-006739 | 0.634 → 0.546 | 9.52 → 9.62 | pass → pass |
The correction does three distinct things:
- R1 PLT-006884 is rescued chiefly through tighter corrected control distributions.
- R7 PLT-006732 and R8 PLT-006736 are rescued through large Durvalumab potency shifts into range.
- R3 PLT-006898 is lost because corrected pEC50 shifts below the dashboard range despite Z’ remaining strong.
Signal/background remains far above threshold on every corrected plate and corrected reference-fit R2 is at least 0.938, so the remaining dashboard failures are entirely Z’ and/or reference-potency failures. Z’ is not guaranteed to improve: the correction changes every control well by its own recovery, so it can reveal or amplify heterogeneity within the positive-control group.
The dashboard crosslinking screen changes from three 3/3 failures to one 3/3 failure plus one 2/3 borderline. This is expected because the correction removes the density-linked curvature the screen detects; the independently measured recovery loss itself is unchanged and must remain a separate QC.
The result is modestly sensitive to the fitted exponent. At beta = 0.45 ± 0.086, the dashboard
pass count is 7, 8, and 7 respectively. Therefore the correction should be shown as a sensitivity
analysis rather than silently replacing the raw gate.
There are currently two plate-gate definitions. Mechanically applying the latest
binding-fcs-pipeline thresholds (Z' > 0.4, signal/background >=3, R2 >0.9, campaign reference
pEC50 9.02 ±0.5) to the same dashboard fits gives 8/18 before and 8/18 after: two plates enter and
two leave. Reconcile the gate before the client report; do not mix that result with the dashboard’s
6/18 → 8/18 headline.
Control-well outlier sensitivity
A pre-specified outlier policy does not rescue any additional density-corrected plate. The primary test was a two-sided Grubbs test at alpha 0.05, applied independently to the eight positive and eight negative control wells on each plate, with at most one exclusion per group. The same result holds on raw MFI and log10(MFI), and under a generalized ESD stress test allowing up to two exclusions.
Using the nominal Grubbs rule, the corrected-data dashboard gate remains 8/18 before and 8/18 after:
| Plate | Nominal corrected-control exclusion | Corrected Z’ before → after | Dashboard QC |
|---|---|---|---|
| PLT-006884 | POS H1 = 2,383,540 | 0.524 → 0.779 | pass → pass |
| PLT-006885 | none | 0.791 → 0.791 | pass → pass |
| PLT-006894 | NEG D1 = 1,080 | -0.845 → -0.844 | fail → fail |
| PLT-006895 | NEG D1 = 2,923 | 0.337 → 0.338 | fail → fail |
| PLT-006897 | NEG D1 = 2,954 | 0.353 → 0.354 | fail → fail |
| PLT-006898 | NEG D1 = 3,985 | 0.650 → 0.652 | fail → fail |
| PLT-007115 | NEG D1 = 2,575 | 0.310 → 0.311 | fail → fail |
| PLT-007116 | NEG D1 = 1,705 | 0.226 → 0.226 | fail → fail |
| PLT-007120 | NEG D1 = 4,133 | 0.374 → 0.378 | fail → fail |
| PLT-007128 | NEG D1 = 3,535 | 0.713 → 0.714 | fail → fail |
| PLT-002746 | NEG D1 = 3,603 | 0.655 → 0.656 | fail → fail |
| PLT-002747 | NEG D1 = 3,434 | 0.619 → 0.621 | fail → fail |
| PLT-006733 | none | 0.560 → 0.560 | pass → pass |
| PLT-006732 | none | 0.542 → 0.542 | pass → pass |
| PLT-006735 | none | 0.636 → 0.636 | pass → pass |
| PLT-006736 | none | 0.745 → 0.745 | pass → pass |
| PLT-006738 | none | 0.743 → 0.743 | pass → pass |
| PLT-006739 | none | 0.546 → 0.546 | pass → pass |
The repeated D1 call is not evidence for ten independent bad wells. D1 is flagged on every plate from Runs 2–6 and on none from Runs 1 or 7–9, which violates the exchangeable-replicate premise of the test and instead points to a batch/position/reagent-map effect. It barely moves Z’ because the negative-control variance is tiny relative to the million-unit positive/negative signal gap. PLT-006884 H1 is the only corrected positive-control call, and it does not survive family-wise multiplicity adjustment across 36 control groups.
The six corrected Z’ failures are broad or structured positive-control dispersion, not isolated extremes. Even post hoc deletion of whichever one positive and one negative control maximize Z’ would leave five below 0.5:
| Plate | Corrected Z’ | Best post hoc Z’ after deleting ≤1/group | Chosen wells |
|---|---|---|---|
| PLT-006894 | -0.845 | -0.563 | POS F1; NEG D1 |
| PLT-006895 | 0.337 | 0.490 | POS D12; NEG D1 |
| PLT-006897 | 0.353 | 0.514 | POS H1; NEG D1 |
| PLT-007115 | 0.310 | 0.384 | POS G1; NEG D1 |
| PLT-007116 | 0.226 | 0.395 | POS A12; NEG D1 |
| PLT-007120 | 0.374 | 0.472 | POS D12; NEG D1 |
The lone mathematical rescue, PLT-006897, requires deleting H1 even though neither Grubbs nor ESD flags it and the plate still fails the pEC50 gate at 8.72. It is therefore a demonstration of post-selection bias, not a defensible rescue.
On uncorrected MFI, nominal Grubbs can move PLT-006894 from 0.447 to 0.822 and PLT-007115 from 0.339 to 0.622. A log-scale test instead rescues PLT-006894 and PLT-006895. Only the PLT-006894 raw call survives family-wise multiplicity adjustment, and all three plates still fail the Durvalumab pEC50 gate. Thus the complete raw dashboard gate also stays 6/18.
Statistical limitations:
- NIST’s guidance says an unexplained outlier should not simply be deleted; deletion needs evidence that the measurement is erroneous, otherwise robust accommodation is preferred.
- Grubbs assumes an approximately normal, independent univariate sample. Here
n=8, normality is hard to assess, and fixed well positions are not exchangeable when spatial/batch effects exist. - Running 36 nominal alpha-0.05 group tests expects 1.8 false calls under the complete null. The Holm-adjusted corrected analysis retains only the systematic D1 calls, none of which changes QC.
- Generalized ESD is only
reported by NIST as reasonably accurate from
n>=15; using it atn=8and permitting two exclusions removes 25% of a control group and is not defensible for release QC.
Recommendation: retain all control wells in the client-facing QC. Flag D1 as a systematic diagnostic for investigation and show any exclusion result only as a labeled sensitivity analysis. A future exclusion SOP would need an independently observable failure mode, a pre-registered rule, and validation on separate plates before it can change pass/fail.
The positive-control anchor is circular for Emax, not single-plate EC50
The 10 nM Durvalumab wells define 100% response but recover a median 24% of blank-well cell density, with an 8–39% range. Consequently:
- the correction is largest in the normalization denominator;
- the dashboard estimates approximately ±27% 95% uncertainty in corrected Emax;
- 56/72 Emax classifications straddle the 60% or 85% category thresholds;
- changing the anchor is an affine transformation and leaves a single-plate 4PL EC50 unchanged;
- pooling already-normalized replicate plates can still reweight them and move the pooled EC50.
Client implication: EC50 is more stable than Emax under this particular anchor problem. Do not use corrected Emax categories in the final downselection until the anchor analysis and replicate weighting are agreed.
Crosslinking screen proposed by the dashboard
The page adds a reference-curve screen independent of Z’:
- top dose exceeds 110% of the positive-control anchor;
- Hill slope is below 1.0;
- the second-highest dose is below 85% of the top point.
All three criteria imply failure; two imply borderline. This catches curves that remain non-saturating even when Z’ passes. The worked example is Run 7:
- Plate 1: Z’ 0.62, 4PL EC50 0.77 nM, crosslinking screen 0/3.
- Plate 2: Z’ 0.61, 4PL EC50 33.4 nM, crosslinking screen 3/3.
A two-component diagnostic fit,
signal = Bmax*C/(Kd+C) + a*C, gives a shared Kd of approximately 0.70 nM at R2 0.991 while the
estimated non-saturable artifact fraction changes from 0% [0–17%] to 70% [47–78%]. This supports
the qualitative conclusion that apparent EC50 can track handling-dependent, non-saturating signal
rather than affinity. With only eight dose points, treat the fitted decomposition as mechanistic
support and a QC proposal, not as a validated replacement potency model.
Column 3 natural experiment
The dashboard identifies three plates where the nominal 100 nM test-antibody column reads at blank level in every row while retaining cells:
- PLT-006884;
- PLT-006885;
- PLT-007128.
It interprets this as antibody never reaching column 3 and excludes those points from fitting. That interpretation is plausible and would explain why the adjacent 33 nM wells lose cells while the nominal 100 nM wells do not. Operators separately recorded visible liquid and completed dilution, so the final report must call this inferred absent antibody exposure, not a confirmed missed dispense, until deck records or a source-plate audit corroborate it. It is not valid evidence of a high-dose hook.
7. Mitigation
The production protocol was changed to:
- add 2 mM EDTA to wash and stain buffers;
- hold the Durvalumab positive control at 10 nM, on the binding plateau but below the worst aggregation regime;
- collect up to 5,000 singlets per well and 100 uL acquisition volume;
- remove the post-wash maximum-speed shake that could worsen aggregation;
- use more consistent Lynx mixing and post-mix blowout;
- continue to inspect cell state and recovery.
Evidence: EDTA protocol update
EDTA improved singlet recovery and curve reproducibility, but it did not make every plate pass Z’. That separated the aggregation problem from a remaining control-well reproducibility problem. Bhavaani’s analysis also explains why EDTA would be incomplete: it blocks cation-dependent adhesion, while antibody-mediated bridging is cation-independent.
Production chronology and operational exceptions
Candidate rosters and FCS plate IDs
R1P1
| Roster | Round 1 | Round 2 | Antibodies |
|---|---|---|---|
| Run 1 | 006265, 006266 | 006884, 006885 | 0004, 0050, 0071, 0077, 0087, 0126, 0281, 0324 |
| Run 2 | 006279, 006280 | 006894, 006895 | 0030, 0054, 0068, 0069, 0090, 0091, 0092, 0104 |
| Run 3 | 006508, 006509 | 006897, 006898 | 0056, 0060, 0062, 0075, 0093, 0096, 0099, 0169 |
R1P2
| Roster | Round 1 | Round 2 | Antibodies |
|---|---|---|---|
| Run 4 | 006528, 006529 | 007115, 007116 | 0010, 0059, 0109, 0117, 0125, 0129, 0133, 0137 |
| Run 5 | 006531, 006532 | 007120, 007128 | 0084, 0085, 0086, 0089, 0097, 0098, 0102, 0134 |
| Run 6 | 006534, 006535 | 002746, 002747 | 0025, 0057, 0058, 0079, 0080, 0082, 0094, 0167 |
R1P3
| Roster | Round 2 | Antibodies |
|---|---|---|
| Run 7 | 006732, 006733 | 0101, 0105, 0108, 0116, 0132, 0140, 0145, 0238 |
| Run 8 | 006735, 006736 | 0055, 0063, 0067, 0076, 0107, 0120, 0161, 0164 |
| Run 9 | 006738, 006739 | 0061, 0088, 0130, 0158, 0159, 0162, 0165, 0166 |
Data and layout differences that must remain explicit
- Round 1 and Round 2 used different candidate concentration ladders with zero shared doses.
- Do not pool raw dose points across rounds. Round and dose are perfectly confounded.
- Round 1 and Round 2 used different Durvalumab control concentrations.
- The direction of the reference-control column ladder changed across rounds.
- The Round 1 label “Durvalumab 1.25 pM” is a typo; it is 1.25 nM.
- Run 8 plate 006735 has no column-2 Durvalumab titration. Column 11 remains usable.
- Run 7 cloud labels for 006732 and 006733 are inverted. Identify by contents/notes, not the nominal plate number.
Control plate rotation
The master controls plate was loaded rotated for historical plates 5a, 5b, 6a, and 6b. This flips
the mirrored control columns but does not flip the test-antibody columns. The pipeline has an
explicit flip_controls correction.
Evidence: control-plate rotation diagnosis
Cytometer interruption
Plate 006534 encountered a sheath-fluid interruption at well E5. The run resumed after refill and exported 96 wells. This is a documented acquisition exception, not an automatic exclusion. Its well-level data should be inspected for a discontinuity around E5.
Evidence: sheath-fluid incident
Lineage and composition-map failures
Three physical plates were analyzed with the wrong R1P3 composition maps even though the physical plates were R1P2:
- 007120: physically Run 5 / R1P2 output 2, attached to R1P3 output 2.
- 002746: physically Run 6 / R1P2 output 3, attached to R1P3 output 3.
- 002747: physically Run 6 / R1P2 output 3, attached to R1P3 output 3.
These are metadata failures, not cytometry failures. The raw FCS can be recovered by reprocessing with the correct R1P2 maps. The rescue report therefore excludes them from candidate confirmation until corrected.
Earlier master-control-map lineage was also reversed relative to the physical plate and had to be corrected locally: lineage discrepancy, local map correction
The report should group lineage corrections under data provenance, not imply that they were assay failures.
Cell-culture condition
July 24 plates showed poor cell populations, low singlet counts, and debris. Super-confluent cells were suspected, but plate 5a from a less-overgrown flask looked similar. That weakens a simple “over-confluence caused the failures” claim.
Observed later:
- very confluent flasks with debris produced lower recoverable counts;
- confluent flasks with small gaps and little debris produced higher counts.
Cell state is a plausible contributor, not a proven single root cause.
Evidence: July 24 plate and cell-state summary
Column 3 anomaly
Several later plates had near-negative-control signal in column 3 even though:
- liquid was visibly present;
- the dilution had been performed;
- no deck error was observed;
- water runs looked normal;
- downstream serial-dilution columns behaved more plausibly.
The cause remains unresolved. The current analysis can show fits with and without the column only as a documented sensitivity analysis. Do not silently remove the data point.
QC and analysis rulings
Primary readout
PE-H is a per-cell median fluorescence, not a total. Higher PE-H must not be explained by acquiring more cells. Event counts, viability percentage, and singlet recovery are QC variables.
Strict plate gate
A plate passes only if all four are true:
- Z’ > 0.4.
- Positive-to-negative signal window is at least 3-fold.
- Durvalumab reference curve is monotonic and has 4PL R2 > 0.9.
- Plate Durvalumab pEC50 is within 0.5 log of the campaign reference pEC50 9.23.
Z’ and reference potency are independent. A passing Z’ cannot rescue a shifted reference curve; an in-range Durvalumab curve cannot rescue scattered controls.
Bhavaani’s Round 2 dashboard currently uses a different gate:
- Z’ >= 0.5;
- Durvalumab pEC50 between 8.8 and 9.8;
- no explicit signal-window or reference-R2 criterion in the system-suitability function.
This yields 6/18 passing Round 2 plates. The production pipeline uses Z’ > 0.4, at least a 3-fold window, reference R2 > 0.9, and ±0.5 log around the in-house pEC50 of 9.23. One definition must be selected and frozen before final counts are shown to the client.
Candidate response normalization
Each candidate well is normalized to the negative and positive controls on its own parent plate:
normalized response =
(candidate PE-H - negative-control median)
/ (positive-control median - negative-control median)Values are not clamped. Therefore responses below 0% or above 100% are possible and do not by themselves indicate a calculation error.
Potency and efficacy
- Potency: EC50 or pEC50.
- Efficacy: observed/fitted plateau relative to the plate control.
- A failed or non-monotonic 4PL should not receive a point EC50.
- Raw points should remain visible even when a fit is suppressed.
- Emax should not be allowed to balloon from an unbounded fit.
- A weak response may legitimately lack a plateau within the tested range; fit failure does not automatically imply a technical rerun.
Activity labels
Use the client’s requested labels:
- Strong: all tested doses exceed 50% normalized response.
- Active: the curve clears the negative-control threshold and reaches at least 50%, but not at every tested dose.
- Weak: clears the negative-control threshold but never reaches 50%.
- Inactive: does not clear the negative-control threshold.
- QC fail: parent plate failed; no standalone interpretation from that plate.
The ! marker means mixed QC: replicate plates disagree on QC and the call relies on the passing
replicate.
Candidate-level rescue logic
- Confirmed: the majority of valid pEC50 estimates agree within 0.5 log.
- Resolved: estimates disagree, but a clean plate or independent evidence arbitrates.
- Uncertain: disagreement remains and no clean observation resolves it.
The current rescue page reports 52 confirmed, 14 resolved, and 6 uncertain.
Before publishing, audit that these words have the same evidence meaning in every cohort. The current rescue page says some R1P2 “confirmed” calls reflect reproducible rank because no reliable Durvalumab reference was available. That is not equivalent to pEC50 confirmation and should be renamed or explicitly qualified.
Gating sensitivity analysis
Two findings are especially important:
- On 006884, scatter, singlet, and Hoechst distributions overlap between replicate/control groups while PE differs by 21.6%. A legitimate upstream gate cannot erase a PE-only shift.
- On 006897, the only gate that changes the conclusion removes a bright-Hoechst band that becomes more PE-positive with Durvalumab dose. That removes biological responders and is not a valid rescue.
Across 102 gate strategies, gating did not materially improve the reportability baseline. This is strong evidence that the rescue logic should rely on replicate evidence and provenance, not post-hoc gate tuning.
Recommended final report structure
1. Executive summary
Answer five questions in one screen:
- What was measured?
- How many candidates have reportable binding conclusions?
- Which candidates are active/weak/inactive?
- Which conclusions changed after reruns or provenance corrections?
- What does this mean for the go-forward set?
Use counts only after tonight’s data are ingested.
2. Assay and decision context
- One assay schematic.
- Define PE-H median, EC50, Emax, viability/singlet recovery.
- State that cell binding complements functional cell blocking.
- State the client’s chosen decision model: hard functionality filters first, weighted developability second.
3. Assay-development journey
Use five short “question, experiment, result, decision” blocks:
- Where did the gradient originate?
- Was it fixed geometry or transient clumping?
- Which wash system and plate format was most uniform?
- Did the controls assay validate readiness?
- Why did production Z’ still fail, and what did EDTA/control-dose changes fix?
Only use heatmaps where they prove a spatial or recovery mechanism.
4. Production quality and reportability
Show:
- one plate-QC matrix across all plates;
- plate pass/fail counts;
- candidate reportability reconciliation;
- before/after rerun EC50 comparison;
- explicit provenance corrections;
- the six pre-rerun ambiguous candidates and their post-rerun status.
Keep plate QC and candidate reportability in separate visuals.
5. Candidate results
Show:
- activity disposition;
- EC50 versus Emax scatter;
- top-candidate table;
- selectable dose-response curves;
- a mixed-QC or provenance badge with a plain-language tooltip;
- raw points, fit, replicate identity, and dose ladder in every detailed curve.
6. Cross-assay synthesis
The client asked for binding/blocking integration. The most useful view is one row per antibody:
- binding class;
- binding EC50 and Emax;
- blocking class;
- blocking EC50 and Emax;
- PD-L2/off-target flag;
- final functional disposition;
- concise rationale.
An overlay of binding and blocking curves can be useful for selected antibodies, but the primary portfolio view should be a comparison table/scatter rather than 72 overlaid plots.
Evidence: request for binding/blocking overlay
7. Implications and next steps
- Final function-first triage set.
- Any candidates that need an extended concentration range rather than a standard rerun.
- Any data corrections that require reprocessing but no wet-lab work.
- Explicit limitations from aggregation, non-overlapping round ladders, and single-clean-plate arbitration.
Report-writing rules already agreed internally
- Use “Irving” only in customer-facing text.
- Call the product “AI Experimentalist.”
- Do not use arbitrary experiment numbers as section labels.
- Do not expose run IDs, workflow IDs, Slack links, analyst names, S3/S4 paths, or internal shorthand.
- No timestamps or “split over midnight” language.
- Introduce instruments by function and model once, for example “automated liquid handler, Dynamic Devices Lynx.”
- Refer to dyes by name and relevant channel/filter context.
- Refer to the deep-well format by approximate 2 mL working volume, not brand.
- Spell CV uppercase.
- Every figure needs:
- the question;
- the design/comparison;
- the observed result;
- the decision or implication.
- Avoid a historical line chart across experiments when the protocol changed between points.
- Use standard PE-H heatmap coloring. Do not encode “good/bad” with a diverging percentage scale unless the quantity itself is signed.
- Explain the gating sequence for any cytometry figure.
- Use a single meaning for color:
- green = pass;
- yellow = flagged;
- red = QC failure;
- neutral = inactive/no fit, not a failure.
Internal report feedback: narrative structure, language and labeling
Contradictions and audit items
Do not smooth these over silently:
- 66/72 versus 60/72: the rescue page headline says 66/72 usable and 6 reruns, while a reproduction-command comment still says 60/72 usable and 12 reruns. Treat the comment as stale only after verifying the generated data.
- “All agree” versus displayed spread: several candidate rows labeled “all agree” display pEC50 values spread by more than 0.5 log. Verify whether the label is rank-based, uses a subset, or is a bug.
- R1P2 confirmation semantics: some “confirmed” calls mean reproducible rank rather than potency agreement.
- Aggregation versus cell loss: Slack sometimes says “cell loss.” The direct observation is now two-part: dose-dependent depletion from the acquired suspension plus a smaller dose-dependent singlet-gate effect. Do not equate either one with biological death.
- Cell over-confluence: suspected, but plate 5a did not cleanly support it as a sole cause.
- Column 3: unresolved and must stay flagged.
- Current strict report metadata:
meta.reruns = 16appears to count failed plates, not candidate reruns. Rename before client use. - Assay-development copy: the current source says “all 24 test antibodies behave the same way.” The final panel is 72 candidates; clarify that this was the subset tested in that diagnostic analysis.
- Reference pEC50: 9.23 is an in-house campaign anchor, not literature.
- Three composition-map mismatches: they must be corrected or explicitly excluded before final candidate counts are generated.
- Density-correction reportability: Bhavaani’s 28 corrected / 36 unreportable / 8 trustworthy negative calls are not equivalent to the rescue page’s 66 usable / 6 uncertain calls. Define whether the client conclusion is a qualitative binding call, an absolute EC50, or an Emax-based class before reconciling.
- QC threshold conflict: Bhavaani uses Z’ >= 0.5 and pEC50 8.8–9.8; the current production pipeline uses a four-part gate with Z’ > 0.4. Freeze one definition.
- Column 3 interpretation: the dashboard calls three nominal 100 nM columns missed dispenses; operators saw liquid and a completed dilution. Treat absent antibody exposure as an inference pending corroboration.
- Round 2 scope and generic labels: Bhavaani’s page contains 18 Round 2 plates, uses
R1-Astyle labels, includes PLT-007120/002746/002747, and predates tonight’s reruns. Join rows to ISO-Ab identities only through verified plate-at-time lineage.
11pm refresh checklist
Data completeness
- Confirm all four final rerun plates completed acquisition.
- Confirm 96 FCS files per plate.
- Record physical plate serials and which two antibody rosters they represent.
- Confirm the fresh master-control plate map and final candidate maps.
- Verify every FCS folder is attached to the correct composition map.
- Check whether the three older misattached maps were reprocessed with R1P2 identities.
- Confirm no sheath-fluid or acquisition interruption occurred.
Analysis
- Ingest all four plates into the normalized metrics dataset.
- Rebuild the strict production report.
- Rebuild candidate replicate concordance.
- Recalculate confirmed/resolved/uncertain counts.
- Recalculate reportable EC50 count and activity disposition.
- Update the six pre-rerun candidates explicitly.
- Inspect the 16 physical-rerun candidates, including the two extended-ladder cases.
- Recalculate before/after EC50 comparisons.
- Audit Durvalumab pEC50 and Z’ on the four new plates.
- Inspect singlet count versus dose and viability.
- Calculate uncensored FSC/SSC-gated cell density per acquired volume, not only the capped singlet event count.
- Apply the proposed crosslinking screen to each new reference and candidate curve.
- Reconcile raw, density-corrected, and replicate-rescue calls before choosing final terminology.
- Do not apply the 0.45 density correction to client-facing values until its transfer from Durvalumab technical pairs to candidate antibodies is scientifically approved.
- Run sensitivity analysis for any anomalous column 3 or high-dose point.
- Do not pool Round 1 and Round 2 raw doses.
Cross-assay synthesis
- Pull the current QC-cleared cell-blocking source of truth, not an older merged report.
- Join all 72 ISO-Ab identities.
- Apply function-first hard stops.
- Generate the client-facing go-forward comparison against the existing 48-candidate set.
- Highlight any change caused by the final cell-binding evidence.
Presentation and provenance
- Update every headline count and footer.
- Remove internal identifiers and analyst names.
- Verify all displayed plate/candidate counts reconcile.
- Verify every activity label links to the same underlying raw points and fit.
- Check the report in the campaign shell and at narrow/wide viewport.
- Confirm navigation returns to the cell-binding report correctly.
- Leak-check the final HTML for the real customer name and internal URLs.
- Keep the portal report hidden until scientific review is complete.
Source map
Live and current reports
- Cell-binding QC rescue: https://s4.taila7a7a.ts.net/shared/saahas/cell-binding-qc-rescue/index.html
- Bhavaani Round 2 production dashboard: https://s4.taila7a7a.ts.net/shared/bhavaanijayaram/Cell%20binding%20production%20runs%20CSV%20tabular/index.html
- Cell-blocking report: https://medra-cloud.taila7a7a.ts.net/cloud/campaigns/a93834b6-e9c4-48e8-8a4a-916a1fb5f7c2/reports/cell-blocking-analysis
- Cell-binding report: https://medra-cloud.taila7a7a.ts.net/cloud/campaigns/a93834b6-e9c4-48e8-8a4a-916a1fb5f7c2/reports/pdl1-cell-binding-assay-development
Read-only repositories
/Users/saahas/post_kinetics_data_analysis- branch
nidhi/cell-blocking-analysis - locally dirty with another agent’s changes
- start at
cell_blocking_analysis/analysis-for-cell-blocking.md
- branch
/Users/saahas/binding-fcs-pipeline- locally dirty with another agent’s changes
- start at
SESSION_HANDOFF.mdandSESSION_HANDOFF_2026-07-22.md
Binding source-of-truth files
/Users/saahas/binding-fcs-pipeline/report.py/Users/saahas/binding-fcs-pipeline/report_shell.html/Users/saahas/binding-fcs-pipeline/assaydev_report.py/Users/saahas/binding-fcs-pipeline/assaydev_report_shell.html/Users/saahas/binding-fcs-pipeline/assaydev_data/prod_metrics.csv/Users/saahas/binding-fcs-pipeline/assaydev_data/prod_report.html/Users/saahas/binding-fcs-pipeline/assaydev_data/cell_clumping.json
Additional handoffs
/Users/saahas/medra_robotics/fcs-r1px-lineage-handoff.md/Users/saahas/saah.as/garden/private/notes/irving-cell-blocking-handoff-2026-07-24.md
Preserved Slack corpus
Local read-only exports:
/Users/saahas/medra_robotics/.context/cell-binding-report-research/slack/
Complete at the time of writing:
#cell_binding: 1,713 unique messages including replies.#cell-binding-logistics-july-23-24: 404 unique messages including replies.#project-irving-internal: 12,177 unique messages including replies.
The three complete local corpora contain 14,294 channel-message records. Cross-posts can repeat the same human content across channels, but each Slack message timestamp is unique within its channel. The assay-specific channels were read chronologically; the much larger project channel was mined for the full cell-binding, cell-blocking, reporting, client-feedback, and triage context.
Key decision evidence:
- client importance of flow cytometry
- April 24 co-development requirements
- May cell-retention root cause
- May 31 automated QC confirmation
- July control qualification versus later uniformity failure
- root-cause clumping summary
- first production curves did not always reach plateau
- Run 2 Z’ failure
- rerun decision principle
- initial 12-antibody rescue plan
- replicate-rescue rationale
- full pre-rerun dataset complete
- map correction can remove physical reruns
- latest production interpretation
Immediate next step
At approximately 11pm PT, ingest the final four plates and regenerate the reportability and cross-assay summaries before writing the executive conclusions. The pre-rerun report is useful as a baseline, but none of its headline counts should be called final.