Single variant report
Looking up one variant? This is the place. For a list of variants, use the Batch evidence pack — the main flow, on the Batch tab.
Enter a gene and a variant, or pick from the scored universe as you type. Reports are generated live by the evidence agent from records frozen at the declared cutoff. Variants outside the scored universe have no model report — for those, live retrieved evidence is offered instead, with no score attached.
Public demo — please do not upload patient data. Use example or de-identified variants only.
Loading the scored universe…
How to read the probability
These are evidence-summary probabilities, not clinical classifications.
Start here — the main flow
Batch evidence pack
Paste your variants, run once, and get one cited evidence pack — with PDF, CSV and spreadsheet downloads right in the results. Every variant is cited, or the agent declines it, in the open.
Paste several variants — one per line or
comma-separated, each as a gene and a variant (for example
CFTR c.1373G>T) — or enter a single gene name on
its own to expand it to that gene's variants in the scored
universe. Or upload a file with your variants instead.
Limits, in plain words: at most
500 variants per batch; duplicates are removed.
Uploaded files may be up to 2 MB, in
.txt (one variant per line), .csv
or .tsv form — a spreadsheet file needs a first
row naming a gene column (gene or symbol)
and a variant column (variant, hgvs,
c. or change). Each variant goes through
the same flow as a single report: variants in the scored universe
get the agent's cited report (or its decline), and variants
outside it get live retrieved evidence instead, labelled as live
evidence, with no model score. Live retrieval runs one variant at
a time, for at most 50 variants per batch;
variants beyond that are listed as “live lookup not run in this
batch” — never dropped silently. Larger batches are processed in
the background and this page shows their progress.
Larger sets go to the queued path automatically: if a pasted or uploaded set resolves to more than 500 variants, this page submits it as a queued job instead — up to 25,000 variants per job, uploads up to 10 MB on that path — and shows its progress with counts as it runs (at most 4 jobs process at once, with up to 8 more waiting). Queued jobs run no live lookups: variants outside the scored universe are reported “not found in the scored universe”, and declined variants are exported as declined. Finished queued batches download through the same PDF / CSV / XLSX links; the last 20 completed batches are retained.
Public demo — please do not upload patient data. Use example or de-identified variants only.
Not for clinical use.
How to read the probability
These are evidence-summary probabilities, not clinical classifications. Rows in the middle band are marked Borderline in the results above.
Variant normaliser
Paste a variant in any spelling the Report tab
accepts — the full transcript name
(NM_000492.4(CFTR):c.1373G>T), the colon form
(CFTR:c.1373G>T), gene and variant, variant
alone, or an allele id — and see the cleaned form the agent
uses, its status in the scored universe, and, when it is in
the universe, its calibrated probability. The same parser and
the same lookup answer here as in the Report tab, so the two
can never disagree.
Gene explorer
Open one gene: how many of its variants sit in the scored universe, how many the agent summarises and how many it declines, its published per-gene calibration where one exists, and the variants themselves — select any of them to open its report.
Intended use
Evidence summarisation for variant interpretation research — a reviewer aid. The system takes a variant of uncertain significance, retrieves the records that bear on it from sources frozen at a declared cutoff, and returns either a cited evidence summary with a calibrated probability, or an explicit refusal. Its own verdict line states the boundary: “evidence summary (not a clinical classification)”. A calibrated probability is not a clinical classification; ACMG classification remains a human, guideline-driven judgement.
Validation design
A temporal split, built from dated ClinVar releases — never a random split. Random splits leak: a variant reclassified using predictor scores reappears, with those scores as features, in both train and test, so a model is graded on evidence it has already seen.
- 1,103,657 training variants, labelled at the cutoff and frozen (pathogenic 240,752 / benign 862,905)
- 27,748 test variants — uncertain at the cutoff, reclassified afterwards (pathogenic 8,856 / benign 18,892). No test label existed at training time
- Near-duplicate guard: test rows sharing gene and name with training rows are removed
- Stated caveat: post-cutoff reclassifications are themselves partly predictor-influenced. The temporal split removes the direct leak; it does not make labels pure
Performance
Full ablation on the post-freeze test set. Lower ECE and Brier are better; higher AUROC is better. The middle rows are reported, not hidden: adding the gene prior lifted AUROC while raw calibration collapsed, and Platt calibration fitted on the training window made probabilities worse at unchanged AUROC.
| Model | AUROC | ECE | Brier |
|---|---|---|---|
| AlphaMissense alone | 0.921 | 0.040 | 0.113 |
| AlphaMissense + Platt (fit on training window) | 0.921 | 0.157 | 0.141 |
| Ensemble (AlphaMissense + gene prior), raw | 0.959 | 0.251 | 0.176 |
| Ensemble + isotonic (fit on train holdout) | 0.958 | 0.017 | 0.078 |
| Ensemble + REVEL + isotonic | 0.968 | 0.023 | 0.066 |
| Random forest + REVEL + isotonic | 0.970 | 0.024 | 0.063 |
| Gradient boosting + REVEL + isotonic — adopted 2026-10-26 | 0.970 | 0.025 | 0.062 |
REVEL ablation — coverage on the test set: REVEL 39.7% · AlphaMissense 37.4% · either 39.8%.
| Model | n | AUROC | ECE | Brier |
|---|---|---|---|---|
| AlphaMissense + prior | 10,373 | 0.958 | 0.017 | 0.078 |
| REVEL + prior | 11,023 | 0.952 | 0.019 | 0.081 |
| AlphaMissense + prior + REVEL | 10,357 | 0.968 | 0.023 | 0.066 |
Per-gene calibration (final model, isotonic ECE)
Calibration is reported per gene because the aggregate figure hides badly miscalibrated subgroups. The worst genes are listed, not trimmed.
| Gene | n | ECE | Gene | n | ECE |
|---|---|---|---|---|---|
| ADGRV1 | 130 | 0.005 | DMD | 97 | 0.053 |
| RAI1 | 94 | 0.011 | BRCA2 | 158 | 0.058 |
| ABCA4 | 86 | 0.019 | SCN1A | 83 | 0.074 |
| DNAH11 | 118 | 0.031 | BRCA1 | 138 | 0.081 |
| LDLR | 74 | 0.033 | NF1 | 81 | 0.130 |
| KMT2D | 94 | 0.034 | MUTYH | 86 | 0.154 |
| GCK | 71 | 0.035 | |||
| FBN1 | 68 | 0.037 | USH2A | 74 | 0.204 |
USH2A, at ECE 0.204 under the adopted model (0.290 under the previous logistic model), remains the worst-calibrated gene in this table and is carried visibly here. MUTYH moved the other way under the adopted model — 0.083 to 0.154 — and is carried visibly too.
Failure modes, as published
- A confident call the future disagreed with. RANBP2 c.1754C>T (p.Thr585Met) received a cited summary at calibrated P(pathogenic) 0.006 — confidently benign-leaning. Its later reclassification was Pathogenic/Likely pathogenic.
- Under-confident calls. PROC c.629C>T received P(pathogenic) 0.464 from the adopted model and was later reclassified Pathogenic/Likely pathogenic. Two calls published here under the previous model — HOGA1 c.289C>T and GLB1 c.601C>T, each 0.493 — are resolved by the adopted gradient-boosting model, at 0.808 and 0.979.
- Predictor-influenced labels. Evaluation labels are partly predictor-influenced, so measured performance is performance against real-world reclassification practice, not against predictor-free ground truth.
- Coverage limits. AlphaMissense covers 37.4% of the test set; it is missense-only and precomputed-only, so no novel-variant scoring exists beyond the precomputed predictions. The agent summarises 10,357 of 27,748 test variants and declines the rest.
- A documented method trap. Building the gene prior from all frozen training rows instead of only scored rows silently drops AUROC to 0.933–0.935: the prior must describe the scored population the model actually serves.
- No gnomAD allele frequency in the model. The available allele-number file is locus-level only and cannot yield allele frequency; the model ships without it rather than with a fabricated one.
Human oversight design
- Cite, or decline. Never invent. Every claim in a report must carry a citation to a retrieved record; the renderer refuses to emit an uncited claim. This is enforced in code, not in a prompt.
- Minimum-evidence rule. At least 3 distinct evidence items are required before the agent says anything at all. Below that, the verdict is fixed: “insufficient evidence — remains VUS.”
- Reports are evidence summaries, not classifications. Every non-declined report carries that verdict line.
- Declines are a designed output, not an error. 17,391 of 27,748 test variants are declined — typically a single conflicting record with no predictor score, where the system stays silent instead of building a story.
Reproducibility
Fully public data; runs on CPU. Inputs are pinned: ClinVar releases are dated snapshots (the temporal split depends on it), and the REVEL file was checksum-verified against its public record. AlphaMissense scores are linked from source, not redistributed.
What this is
Calibrated VUS reclassification with an evidence-citing agent. Clinical variant interpretation, done honestly.
Variants of Uncertain Significance (VUS) are the daily bottleneck of clinical genomics. Predictors disagree, most published models are trained and tested on random ClinVar splits — leaking variants that were reclassified using the same evidence — and an AUROC of 0.99 tells a laboratory nothing about whether a “90% pathogenic” call is right 90% of the time.
The gap is not another AUROC point. The gap is:
- Temporal validity — train on classifications frozen at a cutoff; test only on variants reclassified after it.
- Calibration — a probability that means what it says, reported per gene family, including where calibration fails.
- Evidence provenance — every claim in a report cited to a retrieved record, with an explicit allowed answer: “insufficient evidence — remains VUS.”
That third piece is the differentiator: an evidence agent with one hard rule — cite, or decline. Never invent.
Honest limits
- Temporal reclassification labels are themselves partly predictor-influenced. That circularity is discussed, not hidden.
- AlphaMissense scores cover missense variants only, and are precomputed only.
- A calibrated probability is not a clinical classification. ACMG classification remains a human, guideline-driven judgement.
Not for clinical use.
Public API
The same evidence path is available as a bounded public API: single-variant lookup, search, gene explorer, batches and the lab-shaped downloads (PDF, CSV, XLSX). The full contract — every endpoint, parameters, examples, response shapes and the enforced bounds — is served by the application itself:
API documentation (JSON) — /api/docs
Try a single variant: /api/variant?gene=CFTR&variant=c.1373G>T
Not for clinical use.