A kit for AI-generated TCR–pMHC structures#
AlphaFold / TCRmodel2 will seat any TCR–peptide–MHC candidate in a plausible low-energy pose — a static “forced” pose that is not a Gibbs sample. The generator’s own confidence (ipTM) reads largely as pose canonicality / template coverage. TCRen adds an intrinsic, generator-orthogonal read of the same structure: is the interface natural, and does it engage like a binder? The two are complementary, and combining them is synergistic. This page is the decision procedure.
One command produces every score:
tcren recognize --full --scores -s models/ -o kit.tsv
giving, per structure: the 65 interface descriptors (Interface feature reference), the binder score p_bind, the
forced-pose flag p_forced, and the wrong-TCR flag p_real / p_real_bn. Join your AlphaFold iptm
(it is not a structural quantity, so tcren does not compute it) to the table on the structure-file stem.
The three questions the kit answers#
- 1. Is this AF model trustworthy, or “too good to be true”?
p_forced(tcren.recognition.forced_pose_score()) is a frozen strain classifier trained only on provenance (crystal-natural vs AF-forced, 5-fold AUC 0.762). Highp_forced= the interface is stretched / thin / one-sided — residues placed to mimic a good contact energy rather than to bind. Among AF-confident poses (high ipTM), the high-strain ones are enriched for non-binders — the QC signal ipTM cannot give you.- 2. Does this TCR bind this epitope?
p_bind(tcren.binder.binder_score()) is the AF-orthogonal binder score (TCRvdb raw-label macro AUC 0.796, pooled 0.810; AF ipTM 0.794 / 0.793). Use it to screen many TCRs against one epitope. Label denoising is a separate algorithm and is not benchmarked here.- 3. Combined call — the synergy.
tcren.recognition.kit_score()=z(p_bind) + z(iptm)over the cohort — a fixed, no-fit combination. On TCRvdb raw labels it beats either score alone at precision:score
macro-PR
P@10% recall
P@20% recall
AF ipTM
0.782
0.861
0.816
tcren
p_bind0.804
0.912
0.873
kit_score(p_bind+ ipTM)0.847
0.969
0.939
Δ macro-PR vs ipTM = +0.065 (95% CI [+0.022, +0.100], P(Δ>0)=1.00) for the no-fit z-sum shown above. A CV-honest leave-epitope-out logistic on the same two inputs confirms it more conservatively at +0.041 ([+0.005, +0.076], P=0.99) — that is a different estimator, not this row.
Note
ipTM is the weakest of AlphaFold’s three confidences on this task. Against global pLDDT (macro-PR 0.808) the margin is
+0.039, not+0.065. Quote the baseline you measured against.The combination also corrects AF’s errors: strain flags AF false-positives among confident poses (AUROC 0.633), and
p_bindrescues AF false-negatives among under-confident poses (0.732 vs ipTM 0.697).
kit_score is cohort-relative (z standardizes over the set you pass) — score a whole batch of AF
models together, not one at a time.
What the kit does not claim#
Not “beat AF” everywhere. On the harder VDJdb-AF real-vs-mock task, combining does not beat ipTM (macro 0.639 vs 0.656); there TCRen’s contribution is the interpretable forced-pose gradient (crystal < AF-real < AF-decoy), not a discrimination win.
Not affinity. TCRen ranks specificity, not Kd/ΔG/koff (see the note on the landing page).
kit_scoreneeds the generator ipTM as input; the purely structural scores (p_bind,p_forced,p_real) do not, and also work on crystals with no generator at all.