Last month I wrote up the variant-identity resolver we built on GA4GH VRS: computed, sequence-derived identifiers instead of HGVS string matching, tested against a corpus of 185 real variants pulled from 95 manufacturer-published sample reports. That corpus is real, but it's small, and it's curated in the sense that a vendor sample report only shows variants worth showing. I wanted to know what happens when the same resolver meets something bigger and messier: real-world data at a scale no sample-report corpus reaches, with no editorial hand picking which variants make the cut.
AACR Project GENIE is that dataset. It's a real-world, de-identified genomic and clinical registry pooled across contributing cancer centers and released publicly on Synapse. The current public release, v20.0-public, carries 289,869 samples across 242,866 patients and a mutation-call file with 3,191,158 real variant rows. We pulled it, ran it through the resolver, and I'm writing up what we found the same way we wrote up the first corpus: the real numbers, not the ones that would look best in a deck.
Attribution, per the GENIE data use agreement: AACR Project GENIE Consortium. AACR Project GENIE: Powering Precision Medicine Through an International Consortium. Cancer Discov. 2017 Aug;7(8):818-831. The authors would like to acknowledge the American Association for Cancer Research and its financial and material support in the development of the AACR Project GENIE registry, as well as members of the consortium for their commitment to data sharing. Interpretations here are UNMIRI's own and are the responsibility of this post's authors, not the consortium.A reproducible sample, not a cherry-picked one
We drew a reservoir sample of 2,000 variants from the full 3.19-million-row mutation file, seeded so the exact sample is replayable, and ran every one through the resolver in vrs_only mode against the same pinned reference data as the first corpus run: ga4gh.vrs 2.3.3, biocommons.seqrepo 0.6.11, the 2024-12-20 SeqRepo snapshot. The one change was scope: the first corpus run's MANE Select disambiguation table was scoped to the 82 genes that actually showed up in those 95 reports, which would have been a quiet form of selection bias against a genuinely random real-world sample. For this run we built the full-genome table, all 19,363 MANE Select genes, from the same pinned NCBI MANE release.
1,804 of 2,000 (90.2%) resolved cleanly to a computed VRS identifier. That's higher than the 68.6% we measured on the vendor-report corpus, and it has a real explanation rather than being a number to just quote.
GENIE's coding and protein HGVS fields come out of a single VEP-based annotation pipeline, applied the same way across every contributing center, and an explicit RefSeq transcript accession is present on about 89% of real rows. The vendor corpus, by contrast, drew from nine different manufacturers' PDF and free-text formats, and 43.8% of its extracted coding-HGVS values carried no stated transcript at all, which forces the resolver to fall back on MANE Select inference far more often, with everything that entails. Uniform machine annotation resolves more cleanly than heterogeneous human-authored report text. That's not a surprising result once you say it out loud, but it's a different claim than "the resolver works better on GENIE," and worth being precise about.
The remaining 9.8% split across the same failure-mode categories the first corpus surfaced, but not in the same proportions. 127 of the 196 unresolved cases, about two-thirds of all failures, were intronic positions, a real and documented limitation of VRS and vrs-python: a VRS Allele is defined relative to a transcript's mature or coding sequence, not its introns. That's a much bigger share than the vendor corpus showed, and the reason is the data itself: GENIE's mutation file is unfiltered, capturing every sequencing-pipeline call, while a vendor's clinical PDF report only ever surfaces the subset a lab considers actionable enough to print. An unbiased, at-scale sample runs into intronic and splice-adjacent calls a curated report simply never contains.
The four variant-class checks, on real cases this time
The narrower and more important question is whether the resolver's central claim holds on real-world cases specifically. We pulled every real GENIE point-mutation call for four genes central to precision oncology (EGFR, BRAF, KRAS, NTRK1) and every real NTRK1 structural-variant call, and checked four pairs:
- EGFR L858R vs. T790M. The activating mutation and the resistance mutation that emerges after first-generation TKI therapy. Different clinical meaning, same gene, adjacent in the protein.
- BRAF V600E vs. a Class III residue. V600 is the well-known hotspot. Class III mutations (RAS-dependent, kinase-impaired, per Yao et al., Cancer Cell 2017) are a mechanistically distinct category that needs different treatment logic entirely, and we cross-referenced the 24 specific Class II/III residues from that paper against real GENIE BRAF calls: all 24 turned up in the data, with real case counts from single digits up into the hundreds.
- KRAS G12C vs. a non-G12C hotspot (G12D). G12C has an FDA-approved targeted therapy. The other common KRAS hotspots don't, or not the same one.
- NTRK1 gene fusion vs. NTRK1 point mutation. A fusion isn't a single sequence alteration, so it can't be a VRS Allele by construction; the resolver has to route it to the typed graph instead of forcing it into the wrong model.
All three point-mutation pairs resolved to genuinely distinct VRS identifiers on real GENIE-sourced cases, not the synthetic fixtures we used to validate this logic originally. And all 371 real NTRK1 fusion calls in the GENIE release correctly routed to the typed-graph path rather than being coerced into an Allele identifier that would have been meaningless for a fusion. That's the full population, not a sample; the fusion-type guard fires before any resolution attempt, so checking every real case cost nothing extra.
What this doesn't show
GENIE arrives as pre-extracted, structured variant calls: gene symbol, HGVS strings, transcript accession, sample metadata, already parsed and normalized by the consortium's own pipeline before it ever reaches us. None of this exercises the part of UNMIRI's stack that has to read an actual Foundation Medicine, Tempus, Caris, or Guardant PDF and pull a variant table out of inconsistent formatting, vendor-specific shorthand, and OCR noise. That's a real and different problem, and the only thing that's actually tested it so far is the 95-report vendor corpus from last month's post. A strong result on GENIE is not evidence about parsing accuracy on messy real-world report formats, and we're not going to let one get read as the other.
What this run does add: the same resolver, tested against roughly eleven times as many real-world variant calls as the first corpus, pulled from a real GENIE mutation file that runs into the millions of rows, on data nobody curated for us in advance, with the same falsification discipline. The four variant-class distinctions the whole identity layer depends on held on real cases. The failure modes are named, counted, and explained rather than absorbed into a vague miss rate. That's what "tested," not just "built," is supposed to mean.
Related references
Related post
Resolving variant identity with GA4GH VRS
The resolver and the original 95-report corpus this run follows up on.
Product
NGS Interpretation API (Engine 1)
The cross-vendor parsing and normalization layer this resolver sits underneath.
Related post
Cross-vendor NGS report parsing
The messy-format parsing problem this GENIE run does not test.
Related post
Why vector RAG fails for oncology
Why exact variant identity, not similarity scoring, is the right substrate.
Frequently asked questions
- What is AACR Project GENIE and why use it to test variant resolution?
- AACR Project GENIE is a multi-institution, publicly available registry of real-world, de-identified genomic and clinical data from cancer patients, pooled across contributing cancer centers and released on a regular cadence via Synapse. It's real-world data at a scale (millions of variant calls) that no single vendor sample-report corpus reaches, which makes it a useful stress test for a variant-identity resolver: does the resolution rate and failure-mode mix hold up outside a curated set of example reports?
- Why did the real GENIE resolution rate come out higher than the earlier vendor-report corpus?
- Two real, identifiable reasons, not a fluke. GENIE's coding and protein HGVS fields come from a single, uniform VEP-based annotation pipeline applied the same way across every contributing center, with an explicit transcript accession present on about 89% of real rows. The 95-report vendor corpus drew from nine different vendors' free-text and PDF formats, and 43.8% of its extracted coding-HGVS values had no stated transcript at all, forcing transcript inference far more often. Separately, GENIE's unfiltered variant-call file includes a meaningfully larger share of intronic and splice-adjacent calls than a curated vendor report does, and VRS/vrs-python has a real, documented limitation there, which shows up as a bigger share of the resolver's remaining unresolved cases.
- Does this validate UNMIRI's cross-vendor report parsers?
- No, and we're stating that plainly rather than letting a strong number get read that way. GENIE data arrives as pre-extracted, structured variant calls, not as the original PDF or XML lab reports UNMIRI's nine production parsers are built to handle. This run says nothing about parsing accuracy on real-world vendor report formats. That capability is still tested only by the 95-report corpus described in the earlier post, which is a separate, smaller, and still-ongoing validation effort.
- What are the four variant classes this run specifically checked?
- EGFR L858R versus T790M, BRAF V600E versus a Class III (RAS-dependent, kinase-impaired) non-V600 residue, KRAS G12C versus a non-G12C hotspot, and an NTRK1 gene fusion versus an NTRK1 point mutation. Each pair needs to resolve to genuinely distinct identifiers, or route correctly out of the Allele model entirely in the fusion case, for the resolver's core claim to hold. All three point-mutation pairs resolved to distinct VRS identifiers on real GENIE-sourced cases, and all 371 real GENIE NTRK1 fusion calls correctly routed away from the Allele model rather than being forced into it.
Umair Khan
Founder and CTO, UNMIRI
Building UNMIRI, a precision oncology infrastructure company with four product surfaces: cross-vendor NGS interpretation, genomics-aware decision support, oncology literature intelligence, and a free cross-vendor unification tool for clinicians. Writing here on architecture, clinical data, and HIPAA-ready AI.
Related posts
Architecture & engineering · 7 min read
Resolving Variant Identity With GA4GH VRS Computed Identifiers
UNMIRI's variant-identity layer now resolves cross-vendor variant calls to GA4GH VRS computed identifiers instead of relying on HGVS string matching alone.
Industry & compliance · 4 min read
Somdutta Saha Joins UNMIRI as Technical and Scientific Advisor
Somdutta Saha, PhD, a translational bioinformatics leader with biopharma NGS and biomarker experience, joins UNMIRI as Technical and Scientific Advisor.