Skip to main content

    How Paragraph results compare to the bench

    What a Paragraph paratope has been shown to agree with experimentally, why a contact is not a binding hot spot, and what the fixed reference chain changes.

    paragraphantibodiesvalidationtranslatability

    You have a Paragraph result. Here is what it supports.

    • A paratope prediction is a hypothesis about contact, not about binding energy. The label Paragraph was trained on is purely geometric: an antibody residue is a paratope residue if any of its heavy atoms sits within 4.5 Å of an antigen heavy atom in a solved complex. Nothing in the output says a residue contributes binding free energy, and the two questions have measurably different answers — see against mutagenesis.
    • ⊘ Read AUC-PR, not ROC AUC. The positive class here is small — roughly 1 paratope residue per 10 in the variable domain — so ROC AUC flatters every method on this task. A positional-frequency baseline that does nothing but count how often each IMGT position bound an antigen in the training set reaches ROC AUC 0.952, higher than Paragraph's 0.934, while its AUC-PR is 0.626 against Paragraph's 0.696. The same trap is live on the P2Rank page, where accuracy and F1 did not move at all across a 38% AUPRC collapse.
    • ⊘ Known issue: the platform pairs your chain with a different antibody. paragraph_predict takes a flat list of sequences and a single chain_type, so it cannot accept a cognate heavy/light pair. Every sequence is folded against a fixed trastuzumab reference partner chain, and no output field says so. Paragraph is a graph model over the paired Fv, so every published figure below was measured on cognate pairs and this configuration is not the one they describe.
    • ⊘ Known issue, now fixed in the compute repository but with an ungraded deploy rung: until 2026-09-16 this app's region labels came from a boundary table named for IMGT that held Chothia/Kabat ranges, shifting CDR-H1 by −1, CDR-H2 by −5, CDR-H3 by −12 and FR-H4 by −15 positions. Framework residues were returned labelled as CDRs under status SUCCESS. See what the figure doesn't cover.
    • Confirm a paratope with a co-crystal or cryo-EM structure of the complex if you need the contact set, and with alanine scanning or deep mutational scanning of the CDR positions if you need to know which contacts actually hold the antibody on. Those are different experiments answering different questions.

    Jump to agreement with wet lab or against other in silico methods. The general framing for every tool is in reading an in silico result against the bench.

    How in silico is used currently

    Paratope prediction is used as a constraint generator, not as a result. In a live antibody program that means three things:

    • Protecting binding during humanization or framework engineering. You are about to rewrite framework residues and you want a list of positions to hold fixed. This is the dominant use and the one the platform wires: the paratope is the guardrail that BioPhi and Humatch work read against.
    • Narrowing a redesign window. You want to diversify a loop without destroying affinity, so you rank positions by predicted contact probability and mutate the low-probability ones first. AntiFold is the redesign step downstream.
    • Prioritizing a mutagenesis panel. You have budget for twenty alanine mutants and sixty candidate positions. The prediction orders the panel; the panel, not the prediction, produces the answer.

    What paratope prediction is not used for, by anyone reporting their validation honestly, is deciding which residues matter energetically. That is the mutagenesis question, and the field has not connected the two — see below.

    Against other in silico methods

    Paragraph was state of the art when published, and has been passed. On its own expanded dataset, by AUC-PR:

    MethodInputAUC-PRROC AUCProvenance
    ParagraphABodyBuilder-modelled structure0.7250.934Author-reported
    ParagraphExperimental structure0.7700.939Author-reported
    ParaplumeSequence only0.7580.966Its authors, independent of Paragraph
    Paraplume-GExperimental structure0.7910.968Its authors
    ParaSurf (Fv)Experimental structure0.7930.967Its authors
    ParaSurf (Fv)Predicted structure0.7230.957Third-party tabulation

    Two things in that table are worth more than the ordering. First, a sequence-only model now beats a structure-based one on the structure-based model's own benchmark — Paraplume's 0.758 against Paragraph's 0.725, with no folding step and no structure at inference. Second, every method gains from being handed an experimental structure rather than a modelled one, and Paragraph's own gain is 0.725 → 0.770. The platform runs the modelled route, so the lower figure is the applicable one.

    Paragraph only predicts inside the CDR±2 window, and the field has named that as both its advantage and its limit. Paragraph is trained and predicts over the CDR loops plus two flanking positions each side. In that window the paratope-to-non-paratope ratio is about 1:3, against about 1:10 over the whole variable domain, which the Paraplume authors credit with stabilizing its training and explaining why it still leads inside the CDRs: "some such as Paragraph, show improved performance within the CDR regions compared to Paraplume, but this advantage is lost in the framework regions, or when using modeled structures." The cost is structural: framework paratope residues more than two positions outside a CDR are invisible to it. They exist — one documented test case had 23 true paratope residues including framework ones, which a whole-domain model recovered and a CDR±2 model cannot.

    Against the positional-frequency baseline, which is the most instructive comparison on this page. The baseline simply measures, for each sequence position, the fraction of training antibodies whose residue at that position bound the antigen, and predicts that fraction. On PECAN:

    MethodAUC-PRROC AUCF1MCC
    Positional-frequency baseline0.6260.9520.6650.635
    Daberdaku (3D Zernike + SVM)0.5450.923––
    Parapred (sequence, CNN/RNN)0.6460.930––
    PECAN (GNN, antigen-aware)0.6750.952––
    Paragraph (modelled structure)0.6960.9340.6850.654
    ParaSurf (Fv, experimental)0.7330.9550.6080.647

    The baseline's ROC AUC beats Paragraph's, and its F1 and MCC beat ParaSurf's. It is a lookup table with no model in it. If you grade this task by ROC AUC, accuracy or F1 you will conclude that counting positions is competitive with a graph neural network — which is an artifact of class imbalance, not a finding. AUC-PR is the one column in that table that orders the methods the way their published conclusions do.

    Against the co-folding route, the comparison is conditional and the condition is the hard part. A co-folding model predicts the whole complex and the paratope falls out as a by-product. Independently, on 50 humanized antibody–antigen Fab complexes released after the most recent method's 19 December 2023 training cutoff, resolution better than 3.0 Å, five predictions per target:

    • AlphaFold 3 reached medium-or-better pose quality (DockQ ≥ 0.49) for 23 of 50 complexes (46%), and high quality (≥ 0.80) for 8 (16%). Rigid-body docking (GRAMM) produced no medium-quality prediction at all; the geometry-driven dyMEAN managed one.
    • On the 23 reliably docked complexes, AF3 recovered paratope residues at precision 0.85, recall 0.87, F1 0.85 (95% CI 0.82–0.88) — heavy chain F1 0.86, light chain 0.82 — and epitope residues at precision 0.87, recall 0.88.
    • When the dock failed (DockQ below 0.23), mean residue-pair F1 was 0.04. Predicted and experimental contacts barely overlapped.
    • Even on the good poses, the fine detail degrades: residue–residue contact pairs recovered at recall 0.75, salt bridges 0.84, hydrogen bonds only 0.64, and per-pair contact multiplicity correlated with experiment at Spearman ρ 0.57.

    So the trade is legible. Co-folding gives a better paratope than Paragraph when it docks correctly, and a worthless one when it does not — and it does not tell you which happened. Paragraph gives a middling paratope unconditionally, needs no antigen, and runs in under a minute. For the antibody–antigen case specifically, the Chai-1 page carries the rest of this picture: on 110 post-cutoff antibody–antigen complexes the top-ranked mean DockQ was 0.12–0.14 for Chai-1 and Boltz-1 against 0.29–0.37 for AlphaFold 3, all below or barely at DockQ's "acceptable" floor of 0.23. Co-folding models do worst on antibody–antigen of any complex class, which is precisely the class here.

    Yu Z, Wu J, Ning Z, et al. Benchmarking antibody modeling tools across structure prediction, docking, and paratope–epitope interface analysis. Bioinformatics Advances. 2026;6(1):vbag223. doi: 10.1093/bioadv/vbag223

    Liberis E, Veličković P, Sormanni P, Vendruscolo M, Liò P. Parapred: antibody paratope prediction using convolutional and recurrent neural networks. Bioinformatics. 2018;34(17):2944-2950. doi: 10.1093/bioinformatics/bty305

    Daberdaku S, Ferrari C. Antibody interface prediction with 3D Zernike descriptors and SVM. Bioinformatics. 2019;35(11):1870-1876. doi: 10.1093/bioinformatics/bty918

    Pittala S, Bailey-Kellogg C. Learning context-aware structural representations to predict antigen and antibody binding interfaces. Bioinformatics. 2020;36(13):3996-4003. doi: 10.1093/bioinformatics/btaa263

    Kim T, Cho C, Jung I, Kim S. ParaEM: antigen-aware sequence-based paratope prediction with expectation–maximization. Bioinformatics. 2026;42(10):btag739. doi: 10.1093/bioinformatics/btag739

    In silico vs. wet lab

    There are two standard wet-lab comparators for this output and they are not interchangeable. Keeping them apart is the most important thing on this page.

    1. The antibody–antigen co-crystal or cryo-EM structure of the complex. This defines the structural paratope by a contact-distance cutoff. It is the comparator every published Paragraph figure uses, and it is the one with a settled definition.
    2. Alanine scanning, shotgun mutagenesis or deep mutational scanning of the CDR positions, assayed for loss of binding. This defines the functional paratope — the subset of residues that are energetically load-bearing. No published Paragraph figure uses it.

    The distinction is not pedantic. Pooling 2325 alanine mutants across protein–protein interfaces, Bogan and Thorn found "at the level of side-chains there is little correlation between buried surface area and free energy of binding" and that "the free energy of binding is not evenly distributed across interfaces; instead, there are hot spots of binding energy made up of a small subset of residues in the dimer interface." The structurally contacting residues that are not hot spots are not noise — the same work found they "most likely serve to occlude bulk solvent from the hot spot." They are real contacts that contribute little binding energy, and a paratope predictor cannot tell you which kind you are looking at.

    Peng et al. named the split directly, calling the energetic subset the "functional paratope" as against the structural one, and reported predictions over 111 antibody–antigen complex structures "reasonably validated by the hot spot residues known from experimental alanine scanning measurements" — with aromatic, mostly tyrosyl, side chains constituting the major part.

    Time to answerCost basisAccuracy, and its metric
    Standard wet lab, structural — co-crystal or cryo-EM of the complexWeeks to months; may never yield a structure€2,000 data collection (about 280,000 runs here) + €1,000/day refinement (about 140,000 runs here per day) at a core facility's commercial tier; cryo-EM has no public price at all. What this meansGround truth for contact, limited by resolution — and the contact set itself is cutoff-dependent and not fully reproducible between the two arms of one antibody (see the empirical ceiling)
    Standard wet lab, functional — alanine scanning, shotgun or deep mutational scanning, read out by SPR, titration or displayWeeks to months per panelNo public price of any kind for any mutagenesis service. Cost basisGround truth for energetic contribution, reported as ΔΔG or log₁₀(K_D/K_D,wt). Answers a different question from the row above
    Other in silico — Parapred (sequence), ParaSurf (surface, experimental structure), Paraplume (sequence, language models)Seconds to minutes; Paraplume reports 1000 sequences in 3 min on one GPUFree / open source; no per-run price publishedOn the Paragraph expanded set: Paraplume AUC-PR 0.758, ParaSurf(Fv) on experimental structures 0.793. On PECAN: Parapred 0.646, Daberdaku 3D-Zernike+SVM 0.545
    Co-folding the whole complex — AlphaFold 3, Chai-1, Boltz-2Minutes to hours on GPUChai-1 here: 42 creditsConditional. Independent, post-cutoff, 50 complexes: AF3 reached a medium-or-better pose for only 23 of 50 (46%), but on those it recovered paratope residues at precision 0.85, recall 0.87, F1 0.85. When the dock failed, residue-pair F1 was 0.04
    Combined tooling here — paragraph_predict, fold with ABodyBuilder2 then score33 s–2 min on a T4 GPU (surfaces disagree: 10–60 s, 30–120 s, 33 s)2 creditsAuthor-reported, on ABodyBuilder-modelled structures: AUC-PR 0.725, ROC AUC 0.934, F1 0.696, MCC 0.669 at threshold 0.5. ⊘ But not in this configuration — the partner chain is a foreign antibody's

    Read the accuracy column by cell, never down the column. The first two rows are not even graded against each other: one returns a contact set, the other an energy. The co-folding row's number is conditional on a docking success that happens about half the time. The in silico rows are per-residue classification metrics on a class-imbalanced problem. What the table supports is comparing time and cost at a stated accuracy.

    On that reading, the honest position for this chain is: seconds instead of months, for an ordered list of candidate contact residues that is strong where the published figures apply and that the platform's wiring moves away from those figures. The paratope it returns is a triage artifact for a mutagenesis panel, not a substitute for one.

    Two asymmetries matter. Structure determination can fail outright for a given complex and no effort fixes it, which is a large part of why paratope prediction exists. And Paragraph needs no antigen at all — which is its distinctive capability and also the reason its answer cannot be epitope-specific. A promiscuous antibody has one predicted paratope and several real ones.

    Agreement with wet lab

    Against co-crystal and cryo-EM structures

    State the cutoff with every figure. Across every benchmark used in this literature — PECAN, the Paragraph expanded set and MIPE — a paratope residue is defined as one with any heavy (non-hydrogen) atom within 4.5 Å of any antigen heavy atom. Three independent papers state it identically in their methods. A paratope figure quoted without its cutoff is unusable, because loosening the cutoff inflates the positive class and raises every metric that depends on class balance.

    ⊘ That cutoff appears nowhere on this platform — not in the Modal app, not in the job schema, not in the tool definition, not on any Paragraph docs page before this one. The threshold parameter is documented as the knob that decides paratope membership, which invites the reading that threshold is the definition. It is not: it is a probability cut on a label whose geometric definition is 4.5 Å and was undisclosed.

    Author-reported, on the Paragraph expanded dataset — 1086 antibody–antigen complexes drawn from SAbDab as of 31 March 2022, split 60/20/20, metrics averaged per complex, F1 and MCC at the standard 0.5 threshold:

    Paragraph inputAUC-PRROC AUCF1MCC
    ABodyBuilder-modelled structure (the platform's route)0.7250.9340.6960.669
    Experimentally determined structure0.7700.9390.7190.692

    On the PECAN dataset — 460 complexes, paired heavy and light chains, resolution better than 3 Å, CD-HIT clustered so no two paratopes exceed 95% pairwise sequence identity, split 205/103/152:

    Paragraph inputAUC-PRROC AUCF1MCC
    ABodyBuilder-modelled structure0.6960.9340.6850.654
    Experimentally determined structure0.7540.9400.7030.674

    Those eight numbers are author-reported — they originate in Chinery et al. 2023. This page quotes them from the body text of two later papers that re-tabulate them, Paraplume and ParaSurf, which agree with each other to the third decimal on every cell. The Paragraph paper itself is not open access, has no PMC deposit and is not in Europe PMC, and its abstract is an Applications Note summary containing no figures at all.

    Independent re-measurement, on the MIPE dataset. The one place a third party retrained Paragraph and scored it themselves rather than re-tabulating. The Paraplume authors retrained it on MIPE (626 complexes, 90/10, five folds) with inputs from ABodyBuilder3, stating they did so "to present Paragraph in the most favorable light":

    • Modelled structures: AUC-PR 0.689, ROC AUC 0.937, F1 0.617, MCC 0.596.
    • Experimental structures: AUC-PR 0.742, ROC AUC 0.943, F1 0.651, MCC 0.634.

    ⚠︎ A second third party reports Paragraph on MIPE at AUC-PR 0.650 / ROC AUC 0.927. Two independent groups measuring the same model on the same dataset differ by 0.039 in AUC-PR, which is a useful scale for how much any single figure on this page should be trusted. The same source also tabulates Paragraph's modelled-structure figures under a heading reading "experimental structures," so check the input type behind any Paragraph number you see quoted elsewhere.

    Per loop, and CDR-H3 is the weak one. Measured by a competing method's authors on the Paragraph expanded set, Paragraph on the most variable and most important loop reached ROC AUC 0.866 and AUC-PR 0.796 on CDR-H3 — its worst loop, against ParaSurf's 0.959 and 0.895. This is self-comparison in the unfavourable direction, which makes it more rather than less credible, but it is still a competitor's measurement.

    Chinery L, Wahome N, Moal I, Deane CM. Paragraph—antibody paratope prediction using graph neural networks with minimal feature vectors. Bioinformatics. 2023;39(1):btac732. doi: 10.1093/bioinformatics/btac732

    Athènes G, Woolfe A, Mora T, Walczak AM. Paraplume: A fast and accurate antibody paratope prediction method provides insights into repertoire-scale binding dynamics. PLoS Computational Biology. 2026;22(2):e1013981. doi: 10.1371/journal.pcbi.1013981

    Papadopoulos AM, Axenopoulos A, Iatrou A, Stamatopoulos K, Alvarez F, Daras P. ParaSurf: a surface-based deep learning approach for paratope–antigen interaction prediction. Bioinformatics. 2025;41(2):btaf062. doi: 10.1093/bioinformatics/btaf062

    Against mutagenesis: the energetically load-bearing paratope

    No concordance study exists, for Paragraph or for any other paratope predictor, and that absence is the finding for this subsection.

    Across the full text of six papers in this literature — the Paraplume, ParaSurf, ParaEM, ParaDeep and ParaAntiProt method papers and an independent antibody-modelling benchmark — the words alanine and mutagenesis appear zero times and hot spot appears once, in a passing citation. The instrument is sound: the word paratope appears 269, 45, 45, 41, 50 and 27 times in the same six files. These models are built against contact geometry, scored against contact geometry, and have never been graded against a binding measurement.

    So the honest statement is: a Paragraph probability of 0.9 means the model is confident the residue touches the antigen. It carries no claim at all that mutating it would cost you affinity.

    The field has one measurement that puts a number on the gap, and it is not a Paragraph study. Wide mutational scanning of two anchor-epitope influenza broadly neutralizing antibodies measured every recovered single mutant by titration. Of mutants at positions in CDR L1, L2 and H1 — loops that the body text describes as making "peripheral contacts at the interface" — only 3.8% (13 of 279: 2 of 118 for antibody 222-1C06 and 11 of 161 for 319-345) disrupted binding affinity by more than 0.7 log₁₀(K_D/K_D,wt). At CDR H2 positions in the same antibodies, 40% (20 of 51) did. Same antibodies, same assay, same affinity threshold: contacting CDR positions in three loops were energetically near-silent while a fourth loop carried the binding.

    That is the page's central point stated as a measurement. A predictor that is right about contact — and on the structural task these are good models — would have flagged all four loops. Only one of them would have survived the panel.

    The closest thing to a direct paratope-probability-versus-affinity concordance is also not a Paragraph result. Using the CR9114 combinatorial library (all 2¹⁶ combinations of the 16 mutations separating a broadly neutralizing antibody from its germline, with measured K_D against H1, H3 and FluB), the Paraplume authors showed that the mean absolute change in predicted paratope probability at a mutated position correlates positively with the mean absolute change in binding affinity, per strain. Read it as encouragement that these probabilities are not energetically meaningless — not as a transferable figure.

    Bogan AA, Thorn KS. Anatomy of hot spots in protein interfaces. Journal of Molecular Biology. 1998;280(1):1-9. doi: 10.1006/jmbi.1998.1843

    Peng HP, Lee KH, Jian JW, Yang AS. Origins of specificity and affinity in antibody–protein interactions. Proceedings of the National Academy of Sciences. 2014;111(26):E2656-E2665. doi: 10.1073/pnas.1401131111

    Petersen BM, Kirby MB, Chrispens KM, et al. An integrated technology for quantitative wide mutational scanning of human antibody Fab libraries. Nature Communications. 2024;15(1):3974. doi: 10.1038/s41467-024-48072-z

    Phillips AM, Lawrence KR, Moulana A, et al. Binding affinity landscapes constrain the evolution of broadly neutralizing anti-influenza antibodies. eLife. 2021;10:e71393. doi: 10.7554/eLife.71393

    The empirical ceiling on any paratope prediction

    The ground truth is not reproducible, and the size of its irreproducibility has been measured. Curating 470 SAbDab complexes in which one antibody binds two identical antigens, one on each arm, lets you grade the structural paratope against itself: take one arm's labels as truth and the other's as the prediction.

    • Arm-to-arm agreement is about F1 0.955, MCC 0.951 — consistently so across the subsets that fall inside each benchmark's test split (67 complexes from the Paragraph test set, 51 from PECAN, 13 from MIPE).
    • Paratopes and epitopes can differ by more than 10 amino acids between the two arms of the same antibody in the same structure.
    • Normalized paratope asymmetry correlates strongly with epitope asymmetry, and only weakly with antigen type, structure-determination method or resolution — so this is conformational biology, not a crystallographic artifact.
    • Residues with discordant labels between the two arms are also the residues these models score near 0.5. The uncertainty is in the right place.

    The authors are explicit that "this value should not be interpreted as an absolute performance ceiling: it depends on the specific distance cutoff used for defining paratopes as well as the composition of the dataset." They also note the harder ceiling is unmeasured: it would need the same antibody's structures against different antigens, and "no such data is available to our knowledge."

    Read against Paragraph's 0.696 F1 on modelled structures, the gap to 0.955 is real headroom. Read against a promiscuous antibody, the ceiling itself is unknown and lower.

    What the figure doesn't cover

    • ⊘ Training overlap is structural here, not incidental. Every paratope predictor in this literature trains on SAbDab, and SAbDab is the PDB's antibody subset. There is no separate corpus. So the benchmark and the training source are the same database, and the only defence is how the split was built.
    • ⊘ No published Paragraph evaluation uses a date cutoff. The two splits its headline figures come from are a CD-HIT clustering at 95% pairwise sequence identity (PECAN) and a plain 60/20/20 partition of 1086 SAbDab complexes as of 31 March 2022 (the Paragraph expanded set). 95% identity is extremely permissive for antibodies — two antibodies differing at one position in twenty land in different clusters — and for the expanded set, neither of the two independent papers that reuse the split names a clustering step at all. One describes using "the exact same data split as Paragraph… without making any additional modifications or random splits"; the other calls the 1086 pairs "non-redundant" and uses "the original 60%/20%/20% split without additional filtering." A third asserts redundancy "was already addressed by the authors who curated" it and reports train–test similarity in a supplementary figure. An evaluation on a random split of SAbDab is partly a lookup, and none of these is a held-out-by-date test. For contrast, the one date-cutoff external set in this literature — SAbDab complexes released on or after 1 January 2025, CD-HIT-2D filtered at 95% against antibodies and 90% against antigens, 247 complexes — was built by the ParaEM authors and used to evaluate only ParaEM (AUC-PR 0.706 / ROC AUC 0.954). Nobody has run Paragraph on it.
    • ⊘ There is a second overlap channel, through the folding step. The platform folds every sequence with ABodyBuilder2, which is itself trained on SAbDab. So a test antibody can be absent from Paragraph's training set and present in its structure predictor's. The Paraplume authors named this when retraining Paragraph with ABodyBuilder3: it "may slightly overestimate Paragraph's performance, as some sequences in the MIPE test set are also in the ABB3 training data."
    • ⊘⊘ The platform pairs your chain with trastuzumab, and nothing in the output says so. paragraph_predict accepts a flat sequences[] array with one chain_type, so a cognate VH/VL pair cannot be submitted as one job — a heavy chain and its real light chain become two separate jobs. In each, a fixed trastuzumab/Herceptin reference is substituted for the missing partner before folding. Paragraph is a graph neural network over the paired Fv: the partner chain's residues are in the neighbourhood graph, and CDR-L3 sits against CDR-H3. Every figure on this page was measured on cognate pairs. This is a known issue and the shape of the API is the cause, so the fix is an API change (accepting paired input and reporting the partner used), not a parameter.
    • ⊘ region labels were wrong for about six months and the deploy rung is ungraded. Until the fix landed on 2026-09-16, this app's region table was named for IMGT but held Chothia/Kabat-style ranges — a byte-identical copy of the same defect found in the platform's ANARCI tool. The offsets were CDR-H1 −1, CDR-H2 −5, CDR-H3 −12 and FR-H4 −15 positions, so framework residues were returned labelled as CDRs under status SUCCESS, with no error and no warning. For a paratope tool "which CDR is this binding residue in" is the headline field. The corrected table now holds the canonical IMGT boundaries (FR1 1–26, CDR1 27–38, FR2 39–55, CDR2 56–65, FR3 66–104, CDR3 105–117, FR4 118–128), which match the published definition. The fix is present at the compute repository's remote trunk; neither this page nor the docs repository can establish that the fixed image is the one serving your job, and the realized-harm population across historical Paragraph jobs has never been swept. Treat the region field on any stored result from before that date as unreliable, and re-derive it from position against the boundaries above.
    • position is trustworthy in a way region is not. Positions and probabilities are read from the same row of the model's own output, so a position cannot be misaligned against the score it carries. The region label, by contrast, is a post-hoc arithmetic overlay applied after the model runs — which is exactly the layer that shipped wrong.
    • mean_paratope_probability is not a quality score. It is the mean over only those residues that cleared your threshold, so it is bounded below by threshold and rises monotonically as you raise it. Raising the threshold always "improves" it. It is null, not 0, when nothing clears the bar. There is no description for this field in the machine-readable schema.
    • ⊘ scheme: "chothia" is offered and cannot work. Both Next-side surfaces advertise the enum ["imgt", "chothia"], and the compute app refuses anything but imgt — correctly, since its positions come from Paragraph's IMGT column on an IMGT-numbered structure, so a Chothia request has no honest answer. But the refusal lives only in the compute app, after dispatch, so selecting it burns a job submission and a container start before failing. This is a known issue; the fix is to drop chothia from the user-facing enum. ⚠︎ Whether the 2 credits are refunded on a failed job is not established here. For Chothia or Kabat numbering use ANARCI.
    • The ANARCI scheme residual does not reach this tool. The sibling defect — regions bounded by IMGT regardless of the scheme requested — cannot propagate here, because Paragraph only ever requests IMGT, consumes IMGT positions and now refuses every other scheme. There is no scheme to mistranslate. What the two tools did share was the mislabelled boundary table above, which is a different defect.
    • ⊘ operation_successful is a reached-the-end flag, not a verdict. It is True on every path that does not raise, including the case where every sequence failed to fold: that path returns an empty results array with success_count: 0 and a terminal status of SUCCESS. Read success_count, fail_count and failed_sequences, never the status alone. A renderer-side detector for this envelope does exist, but the job status still says success. This is a known issue.
    • ⚠︎ A silent zero is reachable. The app reads the upstream model's output columns with defaults — an empty string for the position and 0.0 for the probability — and installs Paragraph unpinned from its git repository. If an upstream release renamed a column, every residue would come back with probability 0.0, i.e. "no residue is a paratope," under status SUCCESS. Nothing asserts the columns were found.
    • Which model weights scored your sequence is not reported. Chain-specific weights are used when present and the paired weights otherwise, and the choice is written only to the container log. A missing weights file also logs a warning rather than failing.
    • paratope_sequence is not a sequence. It is the one-letter codes of non-contiguous residues joined in table order, with positions stripped, so it cannot be inverted back to positions. Use residue_predictions.
    • Framework coverage is limited to the ±2 flanks. Because Paragraph scores only the CDR loops plus two flanking positions, framework region values can legitimately appear in a result — those flanks fall in FR by IMGT boundaries — but a genuine framework paratope residue further out will never be scored at all. It will not read as low-probability; it will be absent.
    • No antigen means no epitope specificity. Paragraph takes no antigen, which is its main practical advantage and a hard ceiling. One antibody gets one predicted paratope. An antibody with two known epitopes has two real ones, and the field has no data on what the ceiling becomes in that case.
    • The ground truth is not reproducible to better than F1 ≈ 0.955, and that bound is itself cutoff-dependent. See the empirical ceiling.
    • Tool metadata misdescribes the tool. One catalog entry advertises pdb_s3_uri, vh_chain and vl_chain in its example input and declares pdb_structure inputs — none of which the tool accepts, since it takes sequences and folds them itself. A second entry declares smiles_array outputs and small-molecule chaining. Neither affects the result; both can misroute a model that reads the catalog.
    • Runtime estimates disagree across four surfaces — 10–60 s, 30–120 s (twice) and a 33 s padded figure in the price row — and the padded figure does not reconcile with the 2-credit charge at the T4 rate (about 3.6× apart). The credits column is authoritative; do not derive the cost from the runtime.

    Go / no-go

    Go — act on the result when:

    • You want an ordered shortlist of candidate contact positions to protect during humanization or to exclude from a redesign window, and you will treat the order as a prior rather than an answer.
    • You are sizing or prioritizing a mutagenesis panel. This is the use the evidence supports best: the prediction orders the panel and the panel produces the result.
    • You are reading residue_predictions with their probabilities, not just the boolean is_paratope. A residue at 0.9 and one at 0.51 are different claims, and the ones near 0.5 are where the structural ground truth is itself ambiguous.
    • Your antibody has close relatives in SAbDab and you understand that the published figures were measured that way.
    • You are inside the CDR loops, where this model is still competitive, and you have checked that your question is not about a framework position two or more residues outside a CDR.
    • You re-derive region from position against the IMGT boundaries above, rather than trusting a stored region from a job that may predate the boundary fix.

    No-go — do not act on the result when:

    • You need to know which residues are energetically load-bearing. No paratope predictor has been graded against mutagenesis, and in the one antibody pair where the comparison was measured, 3.8% of mutants at contacting CDR positions in three loops mattered against 40% in a fourth. Run the alanine scan.
    • You are ranking antibodies, variants or designs by mean_paratope_probability or paratope size. The mean is bounded below by your own threshold and rises when you raise it.
    • You are grading this tool, or any paratope method, by ROC AUC, accuracy or F1. A positional-frequency lookup table beats a graph neural network on ROC AUC here. Use AUC-PR.
    • You submitted a cognate heavy/light pair as two jobs and intend to read either result as the paired-Fv paratope. Each was scored against a trastuzumab partner chain.
    • Your antibody's epitope matters — you have two known epitopes, or you are working on a cross-reactive or polyspecific antibody. One prediction cannot be two paratopes.
    • You asked for scheme: "chothia". The job will fail after dispatch. Use imgt, or ANARCI for other schemes.
    • You read status SUCCESS without reading success_count. An all-failed job returns success with an empty result array.
    • You need the paratope established rather than proposed. That requires the complex structure for the contacts and the mutagenesis panel for the energetics — and the two answer different questions.

    Caveats on reading this page: every figure above is quoted from the cited source with its original metric, cutoff and sample. Figures from different studies are not directly comparable, because benchmark sets, split construction, input structure type, averaging convention and probability thresholds differ between them. Author-reported, third-party-tabulated and independently re-measured figures are labelled as such throughout, and the Paragraph paper's own body text was not readable — see the sourcing note in agreement with wet lab.

    Was this page helpful?

    On this page

    On this page

    Loading...