TEDDY × ANM
Mode B · must-separate pairs · held-out site4 · first run, withdrawn

TEDDY’s embedding puts two cells almost together. They differ. Here’s how ANM’s loop catches it.

TEDDY’s embedding puts some myeloid and T cells at cosine 0.982, and the readout built on it (our head + the soft rule) falsely agrees 85% of the time. ANM’s loop vetoes the embedding for these pairs, swaps in measured protein as typed evidence with the strict rule, and checks the same pairs again, with no retrain.

Look-alikes get the same call; four steps catch it.
False agreement ↓
0.85→0.40
Same call, though measured proteins differ
Soft separation ↑
0.17→0.63
Different calls, or one declined
Accuracy of calls made ↑
0.74→0.99
Correct among calls made
Corrections (29 Sep 2026). Withdrawn pending redesign; first-run numbers kept as a record (all corrections). Known issues: panel-order markers, per-cell size factor from measured protein, no NK class. Registered v3 (1 Oct 2026): redesigned as E3, which rejected “the NK–T loss is in the readout or pooling and is repairable on frozen TEDDY” (a layer-mean MLP and attention pooling over gene tokens both told NK from T less accurately than our head), E5 (TEDDY’s layers: stopped at its derivative check) and E5-M (sufficiency of the gene-mean: inconclusive for the one observer tested). v3 E3 →
Redesign prototype and disclosures

This page is Experiment 6, Look-alike cells; it was not rerun. The corrected rerun is done for Experiments 1, 3, 4 and 5: with all markers entering at once and a train-median size factor, ANM makes the same call as the fixed rule on every cell. Known issues here: markers were entered one per step in panel order, a hidden weight; predictions were scaled by a per-cell factor computed from measured protein; the answer key has no NK or out-of-scope class.

Redesign prototype (official TEDDY-G preprocessing; this page’s first-run numbers used the earlier, non-official one): the TEDDY + head predictions do separate NK from T in the right direction but compress the differences to about a quarter to a third of the measured ones (CD335 0.88). On site4, 1,053 of the 1,506 NK–T look-alike pairs involve “gdT CD158b+” cells, which look NK-like in both predicted and measured protein (an annotation problem, not a pipeline failure); on the other 453 pairs the median within-pair gap in predicted (TEDDY + head) CD56 / CD94 / CD335 / CD3 is 0.148 / 0.100 / 0.364 / 0.205 vs measured 0.621 / 0.321 / 0.413 / 0.756. Mode A probes on the frozen embedding: a linear probe separates NK from T at every TEDDY layer (held-out AUC 0.991–0.997); on these pairs a linear protein probe keeps about as much of the gap as our head, but an MLP probe on the same embedding keeps about twice as much for CD56, CD94 and CD3 (0.47 / 0.59 / 0.61 vs 0.24 / 0.31 / 0.27), and gene-token states keep more than the gene-mean. v2 read this as: part of the loss is in our head’s readout and in mean pooling; part may not be in the detected RNA (one site; pairs chosen for closeness in the embedding). Superseded by v3: E3 rejected the repair reading, and the head’s compression on registered look-alike pairs is descriptive only (gap ratio 0.1169 flagged vs 0.3985 unflagged, overlapping intervals; 0.4729 vs 0.5137 without gdT CD158b+ pairs); E5-M, which tested whether gene-mean pooling discards what a token readout uses, was inconclusive for the one observer tested.

Donor 15078 is in training at other sites and is 32.6% of site4 test cells, and the 9 panel proteins were chosen by test-set Pearson.

1,490 myeloid↔T must-separate pairs · before: TEDDY + fixed rule (soft) · after: measured protein as typed evidence, strict rule · reverse_loop_small_stats.json

The loop, one step at a time

Click a step or use ← / →.

1 · What TEDDY + a fixed rule assumes

The readout treats cells with nearby embeddings as the same biology.

RNA→ frozen TEDDY-G→ embedding (z_512)→ our head: predicted proteins→ soft rule→ call

What the embedding is

TEDDY’s 512-number summary of a cell (z_rna_512.npy, 16,750 held-out cells).

The implicit promise

Cosine ≥ 0.98 → the same call; our head’s Pearson ≈ 0.60 is a reference only.
Is the readout on TEDDY’s embedding enough? The must-separate check ranked first of four cheap probes (score 0.581, CHEAP_PROBES_RANKING).
Step 1 of 4

2 · Veto: near-merged cells that differ

Nearest neighbours at cosine ≥ 0.98 whose measured proteins disagree on lineage are must-separate pairs.

Myeloid
by measured protein
cosine ≈ 0.982
in TEDDY’s embedding
T cell
by measured protein

Myeloid↔T pair cosine (1,490 pairs)

Box = middle half, whiskers = min–max, dashed = the 0.98 cut.

How big is the gap (cosine ≥ 0.98)

Of the 5,000 pairs used, how many differ in…

Myeloid↔T: measured protein difference on focus markers

TEDDY + fixed rule on these pairs (soft rule)

Veto. For these pairs the readout on TEDDY’s embedding (our head + soft rule) is not enough; whether the embedding itself lacks the difference was not tested in this first run (later v2 Mode A probes were read as: part of the loss in our head’s readout and in mean pooling, part perhaps not in the detected RNA; v3 E3 rejected the repair reading, and E5-M was inconclusive on pooling for the one observer tested).
Step 2 of 4

3 · Complement: three cheap fixes, no TEDDY retrain

Pick a fix: a better question, new evidence, or glued-on features.

Step 3 of 4

4 · Verify: the same 1,490 pairs

Of 100 pairs with both cells called, how many wrongly share a call?

40 / 100 falsely agree

same call, but measured proteins disagreedifferent calls (told apart)
Verified. Winner: measured protein, strict rule (score 2.841). All 5,000 pairs, same direction: false agreement 0.893 → 0.586, accuracy 0.808 → 0.990, soft separation 0.167 → 0.469. Full scoreboard ↓
Step 4 of 4Scoreboard ↓

Scoreboard: every fix, every metric

First run. Hatched: the feature swap z⁺, distances only; key below.

Metric
Pairs

TEDDY + fixed rule (soft)winner · measured protein, strict ruleother fixesfeature swap z⁺ (distances only)

Table view

What ANM adds over a feature swap

Glued-on protein separates one list; distances make no decisions.

Feature swap: z⁺ = embedding ⊕ protein features

Fixed myeloid↔T list, share still at cosine ≥ 0.98:

Across all cells (earlier global test, myeloid held out), z⁺ changes the must-separate rate by:

−0.273
z⁺ · measured protein
−0.274
z⁺ · predicted protein
−0.251
predicted, all 9 proteins (leak check)
Negative = worse among z⁺’s new neighbours: the problem moves.

ANM decision loop

ANM
Feature-swap substitute
Typed evidence
each input declares its source to ANM’s engine
concatenated numbers, no decision meaning
An editable question
soft → strict is a written change (0.12 → 0.28, key markers ×2)
retrain or re-tune weights
An honest “no call”
declines on insufficient evidence
a softmax always answers
Verify
same pairs → false agreement, accuracy, soft separation
a cosine drop is not a decision

Claim boundary

“Reverse loop” is a decision loop: we change what the readout sees and asks, not TEDDY’s representation.

Open loop: TEDDY does not read the field, so ANM’s dynamics are not tested here; not yet, not impossible (why).

The loop changes evidence and question, never TEDDY or head.

Claimed · the decision layer

  • Veto → complement → verify on must-separate pairs
  • The readout on TEDDY’s embedding falls short here
  • Measured protein as complement evidence, this test only
  • A rewritten question (strict rule), no retraining
  • Normally measured protein stays the answer key

Not claimed

  • TEDDY’s internals or representation response (Mode A)
  • Pearson above phase-1 ≈ 0.60
  • Fusion audit · clinical superiority
  • ANM’s dynamics (feedback, memory, delays): open loop
  • A final headline: withdrawn (redesigned as v3 E3, E5 and E5-M)
  • Retraining TEDDY or our head (best.pt, the head’s checkpoint)
First run: on 5,000 must-separate pairs (1,490 myeloid↔T, median cosine 0.982), the readout on TEDDY’s embedding (our head + soft rule) falls short: false agreement 0.85, soft separation 0.17, accuracy 0.74. Measured protein as typed evidence with the strict rule gives 0.40, 0.63 and 0.99, without retraining; glued features are not enough (−0.27). Not TEDDY’s internals, not a Pearson claim, not clinical.
Withdrawn pending redesign (29 Sep 2026) and the NK–T prototype

Withdrawn because markers entered one per step in panel order, predictions were scaled by a per-cell factor from measured protein, and the answer key has no NK or out-of-scope class. The redesign prototype (official TEDDY-G preprocessing) finds the TEDDY + head predictions do separate NK from T in the right direction but compress the differences to about a quarter to a third of the measured ones (CD335 0.88). On site4, 1,053 of the 1,506 NK–T look-alike pairs involve “gdT CD158b+” cells, which look NK-like in both predicted and measured protein (an annotation problem, not a pipeline failure); on the other 453 pairs the median within-pair gap in predicted (TEDDY + head) CD56 / CD94 / CD335 / CD3 is 0.148 / 0.100 / 0.364 / 0.205 vs measured 0.621 / 0.321 / 0.413 / 0.756. Mode A probes: a linear probe on the embedding is compressed about as much as our head, an MLP probe on the same embedding keeps about twice as much (CD56, CD94, CD3), and gene-token states keep more than the gene-mean, which v2 read as part of the loss being in our head’s readout and in mean pooling, part perhaps not in the detected RNA (one site; pairs chosen for closeness in the embedding). Superseded by v3: E3 rejected the repair reading (v3 E3), and E5-M, the sufficiency test of the gene-mean, was inconclusive for the one observer tested (v3 E5-M).

Open loop, in full: TEDDY is a prescribed evidence source and does not read the field, so ANM’s dynamics (state feedback, operator memory, delays) are not tested here. ANM’s step is any real processing order, not necessarily physical time. The nine marker predictions come out of one prediction with no order (entering them in panel order was the hidden weight); TEDDY’s transformer layers are a real order, so the natural test is Mode A, over layers.

Posters

Static first-run summaries, for slides.

Older wording. These images predate the 29 Sep corrections and some of their text overlaps. Where they say “z_512 insufficient” or “can’t separate”, read: the readout on TEDDY’s embedding (our head + soft rule) falls short on these pairs; whether the embedding itself lacks the difference was not tested in the first run (later v2 Mode A probes were read as: part of the loss in our head’s readout and in mean pooling, part perhaps not in the detected RNA; v3 E3 rejected the repair reading, and E5-M was inconclusive on pooling for the one observer tested).
ANM loop poster

Reproduce

cd teddy_mm .venv/bin/python bridge_anm/reverse_step1_must_separate.py # must-separate pairs PYTHONPATH=/path/to/ANM:. .venv/bin/python bridge_anm/reverse_loop_small.py # veto → complement → verify /usr/bin/python3 scripts/make_anm_helps_teddy_loop_figures.py # posters