ACMG Methodology
This page documents the production processing stages, thresholds, database versions, and classification rules for clinical geneticists, laboratory directors, and accreditation auditors.
Variant classification follows the ACMG/AMP 2015 framework (Richards et al., Genetics in Medicine, 2015) with evidence-strength calibration informed by the Bayesian framework (Tavtigian et al., Hum Mutat. 2018;39(11):1485-1492. PMID: 30311386) with BayesDel ClinGen SVI calibrated thresholds (Pejaver et al., Am J Hum Genet. 2022;109(12):2163-2177. PMID: 36413997) and SpliceAI integration aligned to ClinGen SVI 2023 recommendations (Walker et al., Am J Hum Genet. 2023;110(7):1046-1067. PMID: 37352859). An optional ClinGen VCEP gene-specific overlay is available for approximately 50-60 genes. Deterministic rules, outside the machine-learning layer, determine pathogenicity. Versions v3.24 through v3.28 added eligibility guards for computational-only evidence and evidence inconsistent with the gene mechanism (AR-only LoF genes, dual-mechanism bypass, gnomAD LoF tolerance, ClinGen negative evidence).
Contents
Pipeline Overview
Six processing stages take variants from VCF input to annotated results. Processing time depends on variant count, reference lookups and available resources.
VCF Parsing
For supported small-variant records, each alternate allele called by the selected sample genotype is retained with its dosage. A 1/2 genotype yields both called alleles; 2|2 yields only the second alternate allele. Original genotype, phase separators and allele-depth positions remain available in source provenance. A spanning-deletion placeholder (*) is recorded separately and is not classified as an independent SNV. GRCh38 is required.
Quality Filtering
Configurable quality, depth, genotype-quality and allele-balance checks flag calls for review. Filtering after annotation also considers consequence and qualifying ClinVar evidence; retaining a call does not make it quality-passing.
VEP Annotation
Ensembl Variant Effect Predictor for consequence, impact, transcript, and protein annotations. Parallel processing across chromosomes.
Reference DB Annotation
Population frequencies, clinical significance, functional predictions, gene constraint, phenotype associations, and dosage sensitivity loaded from 16 production classification and reference databases in this core stage. Across all Folklore modules, the platform integrates 45 reference databases and curated sources.
ACMG Classification
The nuclear classifier applies evidence eligibility, strength, conflict guards and ordered ACMG/AMP combining rules. PS1 and BS2 remain unavailable automatically until suitable independent evidence is admitted.
Export
Gene-level summaries exported for streaming. Classified variants persisted to analytical database for downstream services.
Frequency and quality filtering
Population frequency alone does not remove a variant before classification: a common variant can receive Benign through BA1. Records without a gene or impact annotation are removed. After annotation, quality-failing LOW or MODIFIER calls are removed unless qualifying ClinVar evidence rescues them. HIGH or MODERATE calls can remain with their failed quality flag. Classification and call quality must therefore be reviewed separately.
Reference Databases
All reference data is stored locally on EU-based infrastructure. No variant data is sent to external APIs during processing. Database versions are fixed per deployment and documented here.
gnomAD
Population allele frequencies (global and population-specific), allele counts, homozygote counts
Used by: BA1 and BS1 frequency evidence; PM2 measured-frequency and separately governed covered-absence evidence. Population counts do not supply BS2.
Source: gnomad.broadinstitute.org
ClinVar
Clinical significance assertions, review star levels, disease associations, submitter information
Used by: PM5 different-amino-acid comparator evidence, legacy PP5/BP6, independent assertion verdicts and quality-filter rescue. An exact assertion does not supply PS1.
Source: ncbi.nlm.nih.gov/clinvar
dbNSFP
Functional impact predictions from multiple algorithms, conservation scores
Used by: PP3/BP4 primary tool: BayesDel_noAF with ClinGen SVI calibrated thresholds (Pejaver et al. 2022). Display predictors: SIFT, AlphaMissense, MetaSVM, DANN, PhyloP, GERP (available for clinical review, not used in classification logic)
SpliceAI
Splice impact predictions (4 delta scores: acceptor gain, acceptor loss, donor gain, donor loss)
Used by: PP3_splice (max score >= 0.2), BP4 guard (max score < 0.1), BP7 (synonymous splice check)
Source: Illumina / Ensembl
gnomAD Constraint
Gene-level constraint metrics indicating tolerance to loss-of-function and missense variation
Used by: PVS1 (LoF intolerance), PP2 (missense constraint), BP1 (LoF tolerance)
Source: gnomad.broadinstitute.org
MANE Select Transcripts
Canonical transcript definitions with CDS start/end coordinates for each protein-coding gene. MANE Select is the single representative transcript per gene agreed upon by NCBI and Ensembl. MANE Plus Clinical covers additional clinically relevant transcripts for 66 genes.
Used by: PVS1 MANE positional guard (v3.22.0, HELIX-CR-2026-055): variants outside MANE Select CDS do not receive PVS1 or PM4. Exon-level pext aggregation (CR-056): pext scores computed per MANE Select CDS exon.
gnomAD pext (Proportion Expressed)
Per-exon expression proportion across 49 GTEx v10 tissues. For each base in the coding sequence, pext measures what proportion of the gene total expression passes through that position. Aggregated to exon level as mean_pext (arithmetic mean across tissues) and max_tissue_pext (maximum across 49 tissues). Max tissue pext used for classification to avoid false negatives for tissue-specific genes.
Used by: PVS1 expression guard: <0.1 blocks; medium expression retains Strong unless the v3.39.9 exact-transcript sequence/NMD proof and existing clinical gates pass. Higher expression alone does not establish PVS1. PM4 remains blocked below 0.1.
Source: gnomAD / Broad Institute
HPO (Multi-Source Enriched)
Gene-to-phenotype associations aggregated from 6 curated sources: HPO Consortium (5,173 genes), Orphanet disease-to-HPO (3,176 genes with frequency data), DECIPHER G2P 7 clinical panels (2,125 genes), Monarch Initiative (4,791 genes), ClinVar-MedGen P/LP chain mapping (5,258 genes), and manual clinical curation. Source priority ordering with confidence-based filtering.
Used by: PP4 (patient phenotype matching), Phenotype Matching Service (semantic similarity scoring), Screening Service (gene clinical breadth proxy)
Source: HPO Consortium + Orphanet + G2P + Monarch + ClinVar-MedGen
ClinGen
Dosage sensitivity scores (haploinsufficiency, triplosensitivity)
Used by: PVS1 (haploinsufficiency_score = 3 as constraint gate fallback for X-linked genes, v3.11.5), BS1 (inheritance-aware frequency threshold proxy), BP2 (trans with pathogenic in recessive)
Source: clinicalgenome.org
Orphanet / Orphadata
Gene-disease-inheritance mode annotations for rare diseases (autosomal dominant, autosomal recessive, X-linked dominant, X-linked recessive)
Used by: BS1 (inheritance-aware frequency threshold: Orphanet AD/XLD -> 0.1%, Orphanet AR -> 5%), PVS1 disease association gate (gene must have Orphanet entry for PVS1 to apply)
Source: orphadata.com (INSERM, France)
ClinGen VCEP Specifications
Gene-specific ACMG criteria thresholds from ClinGen Variant Curation Expert Panels
Used by: BA1, BS1, PM2 (gene-specific frequency thresholds), PVS1 (applicability gate for gain-of-function genes), PVS1 disease association gate
Source: cspec.genome.network
Gene2Phenotype (G2P)
Gene-disease associations from 7 curated clinical panels: DD (developmental disorders), Eye, Cardiac, Skin, Skeletal, Cancer, Ear. Each entry includes allelic requirement, molecular mechanism (gain of function, loss of function, dominant negative), and confidence level (definitive, strong, moderate). Molecular mechanism data used for PVS1 GoF/DN guard (v3.17.0).
Used by: HPO enrichment pipeline (source 3 of 6, v3.12.0). PVS1 GoF/DN guard: gof_genes_unified view provides 348 pure GoF/DN/GoE monoallelic genes where PVS1 is blocked (v3.18.0, HELIX-REF-003). Sources: G2P (199 genes), GoFCards (179 genes), manual curation (27 genes). Dual-mechanism genes excluded from view to preserve PVS1 eligibility for LoF phenotypes.
Source: Gene2Phenotype / EMBL-EBI
Monarch Initiative
Gene-phenotype associations aggregated from HPO Consortium redistribution via Monarch Knowledge Graph. Broad coverage of gene-disease relationships from multiple biomedical ontologies.
Used by: HPO enrichment pipeline (source 4 of 6). Large-scale gene coverage complements primary HPO Consortium data.
ClinVar-MedGen HPO Mapping
Gene-phenotype associations derived from ClinVar P/LP variant submissions mapped through MedGen CUI to HPO terms. Chain: ClinVar P/LP variant -> gene -> disease (MedGen CUI) -> HPO terms. Largest single contributor of new genes to the HPO enrichment pipeline.
Used by: HPO enrichment pipeline (source 5 of 6). Covers 5,258 genes including many not present in primary HPO Consortium or Orphanet datasets.
Source: NCBI ClinVar + MedGen
UniProt SwissProt
Expert-curated protein sequence and feature annotation for the reviewed human proteome. Per-residue functional annotations parsed from the SwissProt flat file format: DISULFID (disulfide bonds), ACT_SITE (enzyme active sites), BINDING (substrate/cofactor binding sites), MOD_RES (post-translational modifications), and MOTIF (functional motifs). Includes UniProt-to-Ensembl cross-references for direct ENSP-based lookup at classification time.
Used by: PM1 Tier 1 (primary) -- residue-level critical functional residue evidence (v3.30.0, HELIX-CR-2026-082). 113,126 PM1-eligible features across 14,278 proteins replace previous domain-level Pfam-only logic (2,262x evidence density increase over v3.28). Eligibility determined by qualifier presence (any /evidence= or /note=); naked features excluded by default with optional config override for clinical cases.
InterPro / Pfam
Pfam entries loaded with domain accession, type (domain/family/repeat/motif), and functional annotation. Critical functional domains provide PM1 Tier 2 fallback evidence for VCEP-defined regions and domain-level evidence not yet captured at residue resolution by UniProt Tier 1 (v3.30.0).
Used by: PM1 Tier 2 fallback (critical functional domain detection via is_critical flag, v3.15.0). ~50 domains marked as critical across 14 categories: kinase, DNA binding, ion channel, GTPase, protease, signaling, tumor suppressor, calcium binding, structural, receptor, hearing, nuclear hormone receptor, ubiquitin, RNA binding. Migrated to Parquet-first Pattern A architecture in v3.30.0 (HELIX-CR-2026-082 Phase 5).
Source: EMBL-EBI InterPro
ClinGen Gene-Disease Validity
Gene-disease validity classifications (Definitive, Strong, Moderate, Limited) with mode of inheritance for autosomal dominant, autosomal recessive, and X-linked disorders. Curated by ClinGen Gene Curation Expert Panels.
Used by: PVS1 constraint gate (AD Definitive/Strong genes bypass pLI/LOEUF, v3.16.6). PVS1 AR LoF gene bypass (AR Definitive/Strong with verified LoF mechanism, v3.16.0). Disease association gate for PVS1, PP3_Strong, LP4/LP5/LP6, and ClinVar override (v3.16.0).
Source: clinicalgenome.org
GoFCards
Curated gain-of-function variant database with experimental evidence (animal model, cell model), pathways, disorder associations, and proprietary evidence score (Pscore). Each variant entry includes PMID, functional description, and experimental validation status.
Used by: PVS1 GoF guard via gof_genes_unified view (v3.18.0, HELIX-REF-003). Gene-level aggregation: genes with 3+ curated GoF variants, average Pscore >= 2.0, and at least one variant with animal or cell model evidence qualify as GoF with confidence "strong". 217 genes passed threshold and are integrated into gene_disease_mechanism table.
ClinGen Dosage Sensitivity (Full)
Full dosage sensitivity curation including haploinsufficiency score (0-3, 30, 40), triplosensitivity score, up to 6 PMIDs per gene, date last evaluated, and disease IDs. Replaces the legacy 3-column clingen table (v3.18.0). HI scores: 0 = no evidence, 1 = little evidence, 2 = emerging evidence, 3 = sufficient evidence, 30 = AR phenotype, 40 = dosage sensitivity unlikely.
Used by: PVS1 constraint gate (HI=3 as fallback for X-linked genes, v3.11.5). Disease association gate (HI IN 2, 3, 30 per HELIX-CR-2026-025, v3.18.1). BS1 inheritance proxy. BP2 (HI=30 for AR phenotype).
Source: clinicalgenome.org
Ensembl VEP
Variant consequence prediction, protein impact, transcript annotation, functional domain mapping
Used by: PVS1 (consequence type), PM1 (Pfam domains), PM4 (in-frame indels), BP3 (non-critical regions), BP7 (synonymous), all impact-based criteria
Source: ensembl.org
ACMG/AMP Classification
ACMG/AMP criteria are evaluated only where the required evidence is available and admissible. Segregation, functional and other clinical evidence require expert review. In v3.39.9, automatic nuclear PS1 and BS2 are unavailable.
Classification Priority Order
Classification logic is applied in strict priority order. Higher-priority rules are evaluated first, and the first matching rule determines the final classification:
ClinGen ERepo Expert-Panel Override
A ClinGen Expert Curation (ERepo) Pathogenic or Likely Pathogenic assertion from an FDA-recognized Variant Curation Expert Panel is applied at the top of the staircase, above the mechanical frequency-benign branches. An expert-panel P/LP assertion supersedes BA1/BS1/BS2 because the panel already weighed population frequency when it set the classification (canonical BTD c.1330G>C precedent: 5.56% Finnish frequency, yet Pathogenic). The join is variant-level only. Added v3.34.0 (HEL-CR-2026-CLASSIFIER-EREPO-OVERRIDE-001) and re-ordered to the top of the staircase at v3.35.0 (HELIX-CR-2026-093).
Established / Low-Penetrance Risk-Allele Suppress
An established or low-penetrance risk allele carried by a ClinGen expert-panel or ClinVar assertion is suppressed to VUS instead of remaining Benign, including at BA1-band frequency. Because the five-tier ACMG output has no risk-allele tier, VUS is the interim class and [RiskAllele] records the assertion. This path cannot produce P/LP. It uses ClinVar risk-allele significance with a documented Factor V Leiden carve-out and became active in v3.38.0 (HELIX-CR-2026-107) on the v3.33-era substrate (HELIX-CR-2026-102A).
BA1 Stand-alone
An eligible BA1 frequency supports a standalone Benign route, subject to higher-priority expert and risk-allele handling. BA1 with Strong or Very Strong pathogenic evidence remains VUS, including through later ClinVar processing.
Conflicting Evidence
If a variant has pathogenic evidence at moderate strength or above (PVS, PS, or PM criteria triggered) AND strong benign evidence (BS criteria triggered), the variant is classified as VUS regardless of the individual evidence strength. This is a conservative approach that prioritizes clinical safety.
ClinVar Override
ClinVar classification is applied only when no conflicting computational evidence exists. Requires minimum review star level (default: 1 star). ClinVar VUS does not override computational classification.
Ordered Combining Rules
The first eligible combining rule determines the verdict after the higher-priority branches. Evidence points describe strength; a point total alone does not override criterion eligibility, conflict guards or rule-specific restrictions.
Default
Variants that do not meet any of the above criteria are classified as Uncertain Significance (VUS).
Classification Output
Each variant receives a five-tier classification with the admitted criteria, their strengths and the recorded evidence context. Scores summarize evidence and do not independently establish clinical causality.
Pathogenic
>= 10 pts
confidence: 0.80-0.99
Likely Pathogenic
6-9 pts
confidence: 0.70-0.90
VUS
0-5 pts
confidence: 0.30-0.60
Likely Benign
-1 to -5 pts
confidence: 0.70-0.90
Benign
<= -6 pts
confidence: 0.80-0.99
Criterion Eligibility and Automation
The cards describe the current evidence paths and their limits. A missing or unavailable evidence source does not satisfy a criterion. PS1 and BS2 cards explain why their previous automatic shortcuts are no longer used.
Pathogenic Evidence
Null variant in gene where loss-of-function is a known disease mechanism
Conditions
- Qualifying loss-of-function consequence and impact, with established disease association and admissible LoF mechanism. VCEP, non-LoF mechanism, coding-region and expression guards apply.
- Terminal/NMD-escape contexts require reviewed terminal evidence and admitted strength. Missing terminal review withholds PVS1; exon position alone is not a positive NMD result.
- Expression below 0.1 blocks PVS1. The medium band (0.1 to <0.9) retains Strong unless exact-version MANE/protein agreement, native reference/strand checks and sequence-projected NMD proof support full PVS1 alongside the existing mechanism and clinical gates.
- The bounded medium-expression relief requires a projected stop beyond amino acid 50 and more than 52 nucleotides before the final exon junction. Unresolved sequence and start-proximal contexts retain conservative handling.
Exclusions
- NMD-escaping transcripts (consequence contains NMD_escaping_variant). Note: NMD_transcript_variant is NOT excluded - it indicates the transcript undergoes NMD, which is evidence FOR loss-of-function (v3.11.3).
- Non-canonical splice site variants: splice_donor_5th_base_variant (position +5), splice_donor_region_variant (positions +3 to +8), splice_acceptor_5th_base_variant (position -5). ClinGen PVS1 Decision Tree specifies canonical +/-1,2 only. Extended splice variants retain PP3_splice access (v3.11.4).
- Gain-of-function / dominant-negative / gain-of-expression genes: multi-source guard (v3.18.0, HELIX-REF-003). Primary: gof_genes_unified view (348 pure GoF/DN/GoE monoallelic genes from G2P + GoFCards + manual curation, confidence definitive/strong/moderate). Fallback: GOF_AD_GENES curated list (29 genes including ANKRD26, C1QTNF5, CALM2, MYH3, PRKAG2, SKI, TUBB3 and 22 others with PMID-documented non-LoF mechanism). Dual-mechanism genes (e.g., SCN5A, LMNA, KCNH2, MYH7) excluded from view and retain PVS1 eligibility. ClinGen PVS1 Decision Tree (Abou Tayoun 2018): "Is LoF a known mechanism of disease?" - if NO, PVS1 not applicable.
- Gain-of-function gene guard history: v3.16.8 (HELIX-CR-2026-022) introduced GOF_AD_GENES (36 curated genes). v3.17.0 (HELIX-CR-2026-023) added G2P as primary source, reduced GOF_AD_GENES to 14 fallback genes, and fixed GNAS dual-mechanism error.
- Stop-retained and stop-lost variants
- HLA gene family (HLA-A, HLA-B, HLA-C, HLA-DRA, HLA-DRB1, HLA-DRB5, HLA-DQA1, HLA-DQB1, HLA-DPA1, HLA-DPB1, HLA-E, HLA-F, HLA-G, HLA-DMA, HLA-DMB, HLA-DOA, HLA-DOB)
- Homozygous reference genotypes (hom_ref) from multi-allelic VCF sites
Databases: Reference DuckDB: curated disease/mechanism and constraint sources, MANE/Ensembl transcript sequences, Swiss-Prot protein sequences and gnomAD pext; VEP consequence and configured VCEP applicability.
Known limitations
- PVS1 strength is allele- and transcript-dependent; a gene name or constraint score alone is not sufficient.
- Medium-expression relief is restricted to the implemented sequence-proof path. It does not validate every transcript, rescue mechanism or terminal variant.
- A pathogenic recessive allele can be carried heterozygously. Allele classification does not establish biallelic disease or a patient diagnosis.
Same amino acid change as an established pathogenic variant
Conditions
- Unavailable automatically in the general nuclear classifier from v3.39.9. An independent pathogenic comparator with the same amino acid change and appropriate transcript/splicing context is required.
Databases: No governed independent-comparator contract currently admitted.
Known limitations
- An exact ClinVar allele assertion alone cannot supply PS1. Independent ClinVar/ERepo verdict routes remain available under their own guards. PM5 addresses a different alternate amino acid at the same codon.
Located in a mutational hot spot or well-established functional domain
Conditions
- Consequence: missense_variant (v3.20.1, HELIX-CR-2026-035). PM1 is defined for missense variants in critical functional domains (Richards 2015 Table 3, ClinGen SVI Walker 2023 Section 3.3). Synonymous, frameshift, splice, and other non-missense variants do not receive PM1.
- Three-tier PM1 evidence model (v3.30.0, HELIX-CR-2026-082):
- Tier 1 (PRIMARY) - UniProt residue-level evidence: variant overlaps a curated critical residue from UniProt SwissProt human reviewed proteome. 113,126 PM1-eligible features across 14,278 proteins covering DISULFID (disulfide bonds), ACT_SITE (enzyme active sites), BINDING (substrate/cofactor binding), MOD_RES (post-translational modifications), and MOTIF (functional motifs). Match performed via Ensembl protein (ENSP) cross-reference at the exact protein position parsed from hgvs_protein. Evidence eligibility uses UniProt qualifier presence (any /evidence= or /note=); naked features without qualifiers excluded by default (2,067 features, 1.8%).
- Tier 2 (FALLBACK) - InterPro Pfam critical domains: variant overlaps a critical functional domain from interpro_pfam_domains reference table (~50 domains marked is_critical=true, sourced from InterPro Pfam catalog, v3.15.0). Retained for VCEP-defined regions and domain-level evidence not yet captured at residue resolution.
- Tier 3 (RESERVED) - VCEP-specific PM1 region overrides: future expansion for gene-specific PM1 region definitions from published ClinGen Variant Curation Expert Panel specifications.
- PM1 boolean: triggered if Tier 1 OR Tier 2 matches. Single Moderate strength preserved (no tiered Moderate/Supporting split) to maintain compatibility with existing combining rules.
Databases: VEP (consequence, hgvs_protein), UniProt SwissProt human reviewed (uniprot_features, uniprot_ensembl_mapping reference tables, v3.30.0), InterPro Pfam (interpro_pfam_domains reference table)
Known limitations
- UniProt naked features (no /evidence= or /note= qualifiers, 2,067 features) excluded from PM1 eligibility by default. Config flag pm1_uniprot_include_naked allows clinical override for specific cases where curator inclusion in SwissProt is treated as curation evidence (e.g., INSR Cys234Tyr disulfide bond Cys223-Cys234).
- UniProt evidence is residue-level; some VCEP gene-specific PM1 regions (multi-residue critical regions defined by Variant Curation Expert Panels) are not yet integrated and rely on the Pfam fallback tier.
- Tier 2 Pfam fallback retains the curation scope of v3.15.0: ~50 critical domains across 14 categories (kinase catalytic, DNA-binding, ion channel pores, enzyme active sites, and other VCEP-documented domains). Generic structural domains (Caveolin, coiled-coil, DUF) and repetitive regions remain excluded.
- The pm1_evidence_source audit column records each PM1 source (format: uniprot:DISULFID:223-234:P06213 or pfam:PF00069) for per-variant review and frontend display.
Absent from controls or at extremely low frequency in population databases
Conditions
- Observed-frequency route: qualifying low measured gnomAD AF, with configured generic or VCEP thresholds and strength.
- Covered-absence route: PM2 Supporting requires a supported GRCh38 literal allele, complete bounded equivalent-allele absence, qualifying exome AN and mean depth above 20, acceptable masks and public expert scope. Multiple equivalent representations alone do not exclude an indel under policy v2.
Databases: Registered Reference DuckDB assets: gnomAD joint alleles 4.1, exome all-sites AN 4.1, exome depth 4.0, masks and public expert scope.
Known limitations
- Missing AF remains unknown, never zero or automatic absence. Incomplete, invalid or duplicate observations cannot establish covered absence.
- The current covered-absence candidate selector accepts het/hom_alt case genotypes. A public single-variant query with unknown genotype does not establish the same PM2 evidence.
- Regional AN and mean depth do not establish sensitivity for every individual indel. Observed-frequency thresholds and strengths remain independent of this Supporting route.
Detected in trans with a pathogenic variant for recessive disorders
Conditions
- Variant flagged as compound heterozygote candidate (compound_het_candidate = true)
- Compound-heterozygote splice-partner expansion (final v3.39.1, CR-2026-COMPHET-SPLICE-PARTNER-001): Tier A accepts splice donor, splice acceptor, fifth-base donor, and donor-region consequences directly; Tier B accepts splice-region and polypyrimidine-tract consequences only with SpliceAI >= 0.2 or VEP HIGH/MODERATE impact.
- Carrier-guard release (final v3.39.1, CR-2026-COMPHET-SPLICE-PARTNER-001) is tied to an actual PM3 trigger, not the presence of a bare compound_het_candidate flag.
- ClinVar partner validation guard (v3.25.1, HELIX-CR-2026-058): trans partner must be ClinVar Pathogenic or Likely Pathogenic with review_stars >= 2 and not Conflicting. Aligns with Richards 2015 Table 3: PM3 explicitly requires "detected in trans with a pathogenic variant". ClinVar annotation is external/immutable, avoiding circular dependency where partner classification depends on PM3.
Exclusions
- Gain-of-function / dominant-negative gene exclusion (v3.20.2, HELIX-CR-2026-036): PM3 not applied in pure GoF/DN genes. PM3 presupposes AR mechanism (Richards 2015 Table 3), biologically irrelevant for dominant disease genes.
- Dual-mechanism bypass (v3.20.3, HELIX-CR-2026-037): genes with both GoF/DN monoallelic AND biallelic LoF mechanism (gof_genes_exclusive view, 55 dual-mechanism genes excluded from GoF guard) retain PM3 for the AR LoF pathway.
Databases: Pipeline-internal (compound heterozygote detection), ClinVar (partner clinical_significance, review_stars), gof_genes_exclusive view (G2P + GoFCards + manual, 347 GoF/DN/GoE genes minus 55 dual-mechanism), GOF_AD_GENES fallback
Known limitations
- Compound heterozygote status inferred from genotype data without formal phasing
- Trio data or long-read phasing would provide definitive trans confirmation
- ClinVar partner requires 2+ review stars; partners with 1-star P/LP submissions do not satisfy PM3
- A candidate pair that fails the ClinVar partner guard does not release the remaining missense/computational guards. Phase remains a separate clinical question.
Protein length change in a non-repetitive region
Conditions
- In-frame insertion or deletion in an eligible critical Pfam domain, with positively established non-repetitive context.
- Existing HLA, coding-region, low-expression and PVS1 double-counting guards apply.
Exclusions
- HLA gene family (same exclusion list as PVS1)
Databases: VEP/Pfam and governed Reference DuckDB sequence/repeat context.
Known limitations
- Absence of a repeat annotation does not prove a non-repetitive region. MobiDB positive repeat observations cannot supply that negative conclusion.
- Unresolved sequence or repeat context cannot satisfy PM4.
Novel missense change at an amino acid residue where a different pathogenic missense change has been seen
Conditions
- Consequence: missense_variant with a parseable gene symbol and protein codon position
- A different alternate amino acid at the same gene and codon is present in the ClinVar-derived pathogenic-codon asset as Pathogenic or Likely Pathogenic with review_stars >= 2
- Enabled unconditionally in the final v3.39.1 classifier when the reference asset is available (CR-2026-PM5-ENABLEMENT-001)
Exclusions
- The same alternate amino acid is excluded from PM5 and requires separate PS1 assessment; it does not automatically establish PS1.
- Non-missense, nonsense, benign, and conflicting ClinVar records are excluded when the reference asset is built; the 2-star minimum is enforced when the classifier consumes the asset
Databases: ClinVar variant_summary.txt.gz-derived refdb.pm5_pathogenic_codons (gene_symbol, codon, ref_aa, alt_aa, review_stars)
Known limitations
- Requires a parseable protein-level HGVS codon and an available pm5_pathogenic_codons reference asset; a missing asset degrades safely to no PM5 evidence
- ClinVar assertions may lag behind current evidence for recently reclassified variants
PM5 was activated in the final v3.39.1 implementation (CR-2026-PM5-ENABLEMENT-001). It contributes Moderate observed evidence and can satisfy the observed-evidence requirement of the computational-only Likely Pathogenic guard.
Missense variant in a gene with low rate of benign missense variation
Conditions
- Consequence: missense variant
- Gene constraint: pLI > 0.5 AND mis_z > 2.0 (missense constraint)
- Disease association gate (v3.18.5): gene must have established disease association via same 7 sources as PVS1 gate. Prevents PP2 in genes without known Mendelian disease mechanism.
- MPC regional constraint guard (v3.18.6, HELIX-CR-2026-032): mpc_score >= 1.0 required when MPC data is available. Regions with mpc_score < 1.0 are unconstrained for missense - PP2 blocked. NULL MPC data falls back to gene-level constraint (bypass). Reference: Samocha et al. 2014.
Databases: VEP (consequence), gnomAD Constraint (pLI, mis_z), MPC regional constraint (mpc_score), disease association (7 sources)
Known limitations
- pLI measures loss-of-function constraint; mis_z measures missense constraint
- Both metrics are required: pLI > 0.5 indicates LoF intolerance, and mis_z > 2.0 indicates missense constraint (Samocha et al. 2014).
- MPC regional constraint data available for ~18K genes. NULL MPC falls back to gene-level constraint only.
Computational evidence supports a deleterious effect (two independent paths)
Conditions
- Path A (Missense - BayesDel): Requires consequence = missense_variant (v3.12.1, HELIX-CR-2026-009). BayesDel_noAF is calibrated exclusively for missense variants (Pejaver et al. 2022); non-missense variants (stop_gained, frameshift) receive spurious scores from dbNSFP positional overlap and are excluded. Three strength levels: PP3_Strong (>= 0.518, +4 points), PP3_Moderate (0.290-0.517, +2 points), PP3_Supporting (0.130-0.289, +1 point). Scores below 0.130 are indeterminate. Requires missense relevance guard v2.0 (v3.19.0, HELIX-CR-2026-033): 5 gates determine if missense is a disease mechanism. Gate 1: mis_z > 2.0 (direct constraint). Gate 2: mis_z > 1.5 AND pLI < 0.5 (AR genes). Gate 3: mis_z > 0.5 AND pLI > 0.9 (AD LoF-intolerant). Gate 4a: gene in refdb.clinvar_missense_genes (2,136 genes with ClinVar P/LP missense evidence). Gate 4b: pLI > 0.7 AND mis_z > 0.5 AND gene has disease association (gray-zone genes). NULL fallback: pLI > 0.5 without mis_z data. PP3_Strong additionally requires established disease association (v3.8.1 gate, same 7 sources as PVS1 gate).
- PM1 + PP3 double-counting guard: When PM1 (functional domain) applies alongside PP3_Strong, PP3 is downgraded to PP3_Moderate. Combined PM1 + PP3 capped at Strong equivalent (4 points) per ClinGen SVI.
- Path B (Splice evidence - 3 strength levels, v3.15.1): SpliceAI max_score evaluated with evidence strength modulation. PP3_splice_Strong (>= 0.8, +4 points), PP3_splice_Moderate (0.5-0.799, +2 points), PP3_splice (0.2-0.499, +1 point Supporting). PP3_splice_Strong requires disease association gate (same as PP3_Strong missense). All levels excluded when PVS1 applies (ClinGen SVI 2023 double-counting guard).
- Paths A and B are independent. A variant can trigger both if it has a BayesDel score and a splice prediction.
Exclusions
- PP3_splice not applied when PVS1 is triggered at any strength level (Very Strong or Strong/last-exon). Prevents double-counting loss-of-function and splice evidence per ClinGen SVI 2023.
- PP3_splice missense-tolerated guard (v3.25.7, HELIX-CR-2026-065): PP3_splice (all levels) blocked for pure missense variants without VEP splice consequence when BayesDel noAF data is available. ClinGen SVI (Walker 2023 Section 3.2): PP3 is a single criterion - when BayesDel indicates tolerated and SpliceAI predicts cryptic splice, evidence is conflicting, not additive. BayesDel IS NULL bypass preserved.
- PP3 + PP3_splice mutual exclusion (v3.25.8, HELIX-CR-2026-066): for dual-consequence variants (missense AND splice_region/donor/acceptor), PP3 BayesDel is blocked when PP3_splice applies. SpliceAI is the more specific tool when VEP confirms splice proximity. Together with v3.25.7, exactly one PP3 path per variant - never both.
- BayesDel indeterminate range (-0.180 to 0.129): no PP3 or BP4 applied
Databases: dbNSFP 4.9c (bayesdel_noaf_score), SpliceAI (max_score)
Known limitations
- BayesDel_noAF used to avoid circular reasoning with PM2/BA1/BS1 frequency criteria (Pejaver et al. 2022)
- PM1 + PP3 cap assumes PM1 = Moderate (2 points). Extensible if future VCEP upgrades PM1 strength.
- BayesDel does not reach PP3_Very_Strong per Pejaver calibration data
Patient phenotype is highly specific for a disease with a single genetic etiology
Conditions
- Requires patient HPO terms to be provided for the analysis session
- Trigger condition A: >= 3 patient HPO terms match the gene HPO profile
- Trigger condition B: >= 2 patient HPO terms match AND gene has <= 5 total HPO associations (highly specific gene-phenotype relationship)
Exclusions
- Not evaluated when no patient HPO terms are provided
Databases: HPO (gene-phenotype associations)
Known limitations
- HPO matching is exact term overlap, not semantic similarity (ontology hierarchy not used at this stage)
- Semantic similarity-based matching is performed by the downstream Phenotype Matching Service
Reputable source reports variant as pathogenic
Conditions
- ClinVar clinical significance: Pathogenic, Pathogenic/Likely_pathogenic, or Likely_pathogenic
- ClinVar review stars >= 1 and < 2 under the retained legacy configuration.
Exclusions
- ClinVar verdict ownership and criterion trace handling remain separate from automatic PS1, which is unavailable.
Databases: ClinVar (clinical_significance, review_stars)
Known limitations
- ClinGen SVI has recommended retiring PP5 as a standalone criterion; retained for maximum sensitivity
Benign Evidence
Allele frequency is above 5% in population databases
Conditions
- gnomAD Grpmax Filtering AF (af_grpmax) > 0.05 (5%). v3.31.0 (HELIX-CR-2026-090) switched the effective BA1/BS1 frequency from global allele frequency to the gnomAD v4 Grpmax Filtering AF per ClinGen SVI guidance (March 2024), with global allele frequency retained only as a fallback. A bottleneck guard skips BA1/BS1 where af_grpmax is NULL or zero (gnomAD intentionally excludes the bottlenecked AJ/FIN/AMI/MID populations from the Grpmax FAF).
Databases: gnomAD v4.1 (af_grpmax Grpmax Filtering AF primary, global_af fallback)
Known limitations
- Uses the gnomAD Grpmax Filtering AF (af_grpmax) as the effective frequency with global allele frequency as fallback (v3.31.0); per-gene population-specific BA1 thresholds beyond the VCEP overlay are not implemented
An eligible BA1 frequency supports a standalone Benign route, subject to higher-priority expert and risk-allele handling. BA1 with Strong or Very Strong pathogenic evidence remains VUS, including through later ClinVar processing.
Allele frequency is greater than expected for the disorder
Conditions
- Effective frequency: gnomAD Grpmax Filtering AF (af_grpmax), with global allele frequency as fallback and a NULL/zero bottleneck guard (v3.31.0, HELIX-CR-2026-090, per ClinGen SVI March 2024). The cascade threshold is then selected inheritance-aware:
- Inheritance-aware frequency threshold determined by a 5-level cascade (v3.7.0):
- Priority 1 - VCEP gene-specific: BS1 threshold from published ClinGen VCEP specification (~100 genes)
- Priority 2 - ClinGen HI score = 3: allele frequency >= 0.001 (0.1%) (~400 genes)
- Priority 3 - Orphanet AD inheritance: allele frequency >= 0.001 (0.1%) for genes with autosomal dominant disease association (~1,694 genes)
- Priority 3b - Orphanet XLD inheritance: allele frequency >= 0.001 (0.1%) for genes with X-linked dominant disease association (~90 genes). XLR genes intentionally excluded (fall to AR default).
- Priority 4 - HPO AD fallback: allele frequency >= 0.001 (0.1%) for genes annotated with HP:0000006 (autosomal dominant inheritance) (~200-400 additional genes)
- Recessive-LoF legitimacy guard (v3.39.0, HELIX-CR-2026-108): genes supported by both a definitive/strong/moderate biallelic LoF mechanism in gene_disease_mechanism and autosomal-recessive inheritance in GenCC bypass the generic pure-AD 0.1% clauses and fall through to the AR threshold unless a higher-priority VCEP or ClinGen-HI rule applies.
- HPO-AD completion (v3.39.1, HELIX-CR-2026-108 follow-up): the same biallelic LoF set also bypasses the adjacent HPO-AD fallback, closing the TSHR-class fall-through found after v3.39.0.
- Default - AR threshold: allele frequency >= 0.05 (5%) for all remaining genes
- Upper bound: allele frequency <= BA1 threshold (BA1 takes precedence)
- Chromosome consistency (v3.39.2): on known autosomes 1-22, incompatible X-linked inheritance flags are ignored when selecting BS1. The numerical threshold and its recorded source use the same ordered decision. Existing mixed AD/AR precedence and configured thresholds are preserved; this is not a general relaxation for recessive genes.
Exclusions
- Does not apply when BA1 applies (BA1 takes precedence)
- XLR (X-linked recessive) genes do not receive the AD threshold - carrier females are unaffected and higher carrier frequencies are expected
Databases: gnomAD v4.1 (af_grpmax Grpmax Filtering AF primary, global_af fallback), ClinGen (haploinsufficiency_score), Orphanet/Orphadata (orphanet_gene_inheritance: has_ad, has_ar, has_xld), HPO (hpo_ids for HP:0000006), gnomAD Constraint (pLI, oe_lof_upper for constraint-implied AD fallback), AR_LOF_GENES curated list, gene_disease_mechanism plus GenCC autosomal-recessive evidence (v3.39.0-v3.39.1)
Known limitations
- Orphanet covers rare diseases only; some common AD conditions may not be catalogued (covered by HPO AD fallback or AR default)
- Dual AD+AR inheritance genes (1,027 genes, e.g. KCNJ11) receive the AD threshold (0.1%) as conservative default - AR pathogenic variants are typically well below 0.1% AF
- Orphanet data updated twice per year (June + December releases). Coverage expands with each release.
- When VCEP gene-specific specifications are enabled, VCEP thresholds take highest priority and override all other cascade levels
- Criteria string includes inheritance source annotation: BS1[ClinGen-HI], BS1[Orphanet-AD], BS1[Orphanet-XLD], BS1[HPO-AD]
- If either recessive-LoF reference source is absent or their intersection is empty, the v3.39 guard is a no-op and the pre-v3.39 threshold cascade is preserved.
Data source: Orphadata (INSERM, France). License: CC-BY-4.0. Attribution: Orphadata: Free access data from Orphanet. INSERM 1999. Available on https://www.orphadata.com.
Observed in a healthy adult individual for a fully penetrant early-onset disorder
Conditions
- Unavailable automatically in the general nuclear classifier from v3.39.9. Healthy-adult observations must establish the relevant genotype, disease and expected penetrance.
Exclusions
- gnomAD homozygote counts and gene-level age of onset do not establish this evidence.
Databases: No governed disease-specific healthy-control contract currently admitted.
Known limitations
- Population counts remain annotations and may inform independent frequency criteria. They are not phenotyped healthy-control observations. Mitochondrial interpretation is separate.
Missense variant in a gene for which primarily truncating variants are known to cause disease
Conditions
- Positive, reviewed whole-gene truncating-disease mechanism is required. CSpec source text and low pLI alone do not establish eligibility.
- Consequence: missense variant
- Impact: MODERATE
- Gene constraint: pLI < 0.1 (gene is tolerant to loss-of-function)
- pLI value must be present (non-NULL)
- Missense constraint guard (v3.6.8): mis_z must be < 2.0 or absent. Genes with high mis_z have missense as primary disease mechanism.
- ClinVar pathogenic missense guard (v3.8.2): BP1 does not apply when ClinVar has a session-local Pathogenic/Likely Pathogenic missense variant in the same gene. If ClinVar confirms pathogenic missense in the patient VCF, the premise of BP1 is falsified.
- Reference-based ClinVar missense guard (v3.20.9, HELIX-CR-2026-044): BP1 additionally blocked when gene is in refdb.clinvar_missense_genes (>= 2 ClinVar P/LP missense at 2+ stars). Reference-level check covers genes with established missense disease mechanism not present in the current patient VCF (extends session-local guard).
- GoF / DN gene exclusion (v3.20.6, HELIX-CR-2026-039v2): BP1 not applied for missense variants in gain-of-function or dominant-negative genes. BP1 presupposes LoF mechanism (Richards 2015 Table 3); GoF/DN genes have non-LoF truncating mechanism, so the BP1 premise is inapplicable. Same guard sources as PVS1 GoF guard: refdb.gof_genes_exclusive + GOF_AD_GENES fallback.
Exclusions
- Genes with mis_z >= 2.0 (missense is a known disease mechanism)
- Genes with session-local ClinVar Pathogenic/Likely Pathogenic missense variants
- Genes with reference-level ClinVar missense evidence (refdb.clinvar_missense_genes, 2,136 genes)
- GoF/DN genes (refdb.gof_genes_exclusive view + GOF_AD_GENES fallback)
- Curated AR LoF genes (~150 genes with biallelic LoF disease mechanism)
Databases: VEP (consequence, impact), gnomAD Constraint (pLI, mis_z), ClinVar (clinical_significance, consequence), refdb.clinvar_missense_genes (reference-level missense mechanism), refdb.gof_genes_exclusive (G2P + GoFCards + manual), GOF_AD_GENES, AR_LOF_GENES
Known limitations
- Constraint is an additional guard, not a substitute for positive mechanism evidence.
- mis_z measures heterozygous missense constraint. AR enzyme genes (e.g. MCCC2) may have low mis_z despite pathogenic homozygous missense - the ClinVar missense guards (v3.8.2 session-local + v3.20.9 reference-based) address this gap.
- GoF/DN gene coverage limited to G2P 2026-02-28 release + GoFCards Release 1.0 + curated GOF_AD_GENES. Genes with novel non-LoF mechanism not yet curated may receive incorrect BP1.
Observed in trans with a pathogenic variant for a fully penetrant dominant disorder
Conditions
- Compound heterozygote candidate (compound_het_candidate = true)
- ClinGen haploinsufficiency score = 30 (dosage sensitivity unlikely)
Databases: Pipeline-internal (compound heterozygote detection), ClinGen (haploinsufficiency_score)
Known limitations
- Trans observation inferred without formal phasing
- Haploinsufficiency score of 30 is a specific ClinGen code for "dosage sensitivity unlikely"
In-frame insertion or deletion in a repetitive region without a known function
Conditions
- Consequence: in-frame insertion or in-frame deletion
- Located in a repetitive/low-complexity region (domains contain "tandem", "repeat", "lowcomplexity", or "Seg"), OR not in any Pfam domain, OR no domain annotation available
Databases: VEP (consequence, domains)
Known limitations
- Complementary to PM4 (PM4 requires Pfam domain; BP3 requires absence of critical domain)
Computational evidence suggests no impact on gene or gene product
Conditions
- Path A (Missense - BayesDel): Requires consequence = missense_variant (v3.12.1, HELIX-CR-2026-009). BayesDel_noAF score evaluated with ClinGen SVI calibrated thresholds (Pejaver et al. 2022). Two strength levels: BP4_Moderate (<= -0.361, -2 points), BP4_Supporting (-0.360 to -0.181, -1 point). SpliceAI max_score must be < 0.1 or absent.
- Path B (Non-canonical splice - BP4_splice): v3.25.2 (HELIX-CR-2026-060). Supporting benign for non-canonical splice region variants (splice_donor_region, splice_donor_5th_base, splice_acceptor_5th_base, splice_region, splice_polypyrimidine_tract) when SpliceAI max_score <= 0.1. Excludes synonymous (BP7 handles) and missense (BP4 BayesDel handles). PVS1 guard: not applied when PVS1 condition is satisfied (no double-counting splice/LoF evidence). Threshold consistent with BP7 (SpliceAI <= 0.1). References: Jaganathan 2019 PMID:30661751, Walker 2023 PMID:37352859, de la Hoya 2022 PMID:35202600.
- Criteria string marker: BP4 (BayesDel path) and BP4_splice (non-canonical splice path) reported separately.
Exclusions
- BayesDel indeterminate range (-0.180 to 0.129): no BP4 missense path applied
- BP4_splice not applied when PVS1 is triggered (canonical splice +/-1,2 with constraint pass)
Databases: dbNSFP 4.9c (bayesdel_noaf_score), SpliceAI (max_score), VEP (consequence)
Known limitations
- BayesDel_noAF does not reach BP4_Strong per Pejaver calibration data
- SpliceAI guard prevents BP4 missense path for variants with any predicted splice impact
- BP4_splice covers only non-canonical splice region consequences. Deep intronic variants without VEP splice tags require RNA validation per ClinGen SVI (Walker 2023).
Reputable source reports variant as benign
Conditions
- ClinVar clinical significance: Benign, Benign/Likely_benign, or Likely_benign
- ClinVar review stars >= 1
Databases: ClinVar (clinical_significance, review_stars)
Known limitations
- ClinGen SVI has recommended retiring BP6 as a standalone criterion; retained for maximum sensitivity
Synonymous variant with no predicted impact on splicing
Conditions
- Consequence: synonymous variant
- Not in a splice region (consequence does not contain "splice_region")
- SpliceAI max_score <= 0.1 or absent
Databases: VEP (consequence), SpliceAI (max_score)
Known limitations
- Conservation filter intentionally omitted per Walker et al. 2023 Table S13 recommendation ("no improvement in negative predictive value" with conservation filter)
Aligned with ClinGen SVI 2023 (Walker et al.) Figure 4 decision tree for synonymous variant classification.
Computational Predictors (PP3 / BP4)
PP3 and BP4 use BayesDel_noAF as the primary classification tool with ClinGen SVI calibrated thresholds (Pejaver et al. 2022). BayesDel is a Bayesian framework that integrates deleteriousness scores from multiple underlying predictors into a single calibrated score. The noAF variant (without allele frequency) is used to avoid circular reasoning with PM2, BA1, and BS1 frequency criteria.
| BayesDel_noAF Score | Evidence Strength | ACMG Code | Bayesian Points |
|---|---|---|---|
| >= 0.518 | Strong pathogenic | PP3_Strong | +4 |
| 0.290 - 0.517 | Moderate pathogenic | PP3_Moderate | +2 |
| 0.130 - 0.289 | Supporting pathogenic | PP3_Supporting | +1 |
| -0.180 to 0.129 | Indeterminate | None | 0 |
| -0.360 to -0.181 | Supporting benign | BP4_Supporting | -1 |
| <= -0.361 | Moderate benign | BP4_Moderate | -2 |
PM1 + PP3 Double-Counting Guard
When PM1 (functional domain, Moderate = 2 points) applies alongside PP3_Strong (4 points), the combined evidence would exceed the ClinGen SVI recommended cap of Strong equivalent (4 points). In this case, PP3_Strong is downgraded to PP3_Moderate (2 points), yielding a combined 2 + 2 = 4 points. PP3_Moderate and PP3_Supporting are not affected by this cap.
Why BayesDel
The ClinGen SVI Working Group calibrated four computational tools (BayesDel, MutPred2, REVEL, VEST4) and demonstrated that a single calibrated tool with evidence strength modulation provides more accurate classification than a fixed-threshold multi-predictor consensus. BayesDel_noAF was selected because it explicitly excludes allele frequency from its model (avoiding circular reasoning with PM2/BA1/BS1), is precomputed in dbNSFP 4.9c, and reaches both PP3_Strong and BP4_Moderate in the Pejaver calibration - providing the widest evidence strength range among available tools.
Display Predictors (Not Used in Classification)
The following predictors are available alongside every variant for the reviewing geneticist to inspect, but they are not used in the PP3/BP4 classification logic. They were used in the weighted consensus approach prior to v3.4 and are retained for clinical reference:
SpliceAI Integration
Splice impact predictions are integrated following ClinGen Sequence Variant Interpretation (SVI) Working Group recommendations (Walker et al., 2023).
SpliceAI predicts the impact of each variant on mRNA splicing through four delta scores: acceptor gain (DS_AG), acceptor loss (DS_AL), donor gain (DS_DG), and donor loss (DS_DL). The maximum of these four scores is used for classification thresholds.
Scores come from Ensembl precomputed MANE transcript predictions and are not computed at runtime. The recorded prediction source supports reconstruction without a runtime dependency on external services.
Thresholds
- SpliceAI >= 0.8 → PP3_splice_Strong: Strong evidence for spliceogenicity (+4 points). Requires disease association gate (v3.15.1).
- SpliceAI 0.5 - 0.799 → PP3_splice_Moderate: Moderate evidence for spliceogenicity (+2 points).
- SpliceAI 0.2 - 0.499 → PP3_splice_Supporting: Supporting evidence for spliceogenicity (+1 point).
- SpliceAI < 0.1 → BP4 guard: Required for BP4 to apply. Prevents benign classification when splice impact is predicted.
- SpliceAI <= 0.1 → BP7: Required for synonymous variant BP7 classification. Confirms no splice impact.
PVS1 Double-Counting Guard
When PVS1 (loss-of-function) is triggered for a variant, PP3_splice is not applied. This prevents double-counting the same biological mechanism (splice disruption leading to loss of function) as both PVS1 and PP3 evidence, per ClinGen SVI recommendation.
Reference: Walker et al., Am J Hum Genet. 2023;110(7):1046-1067. PMID: 37352859
Classification Logic
Final classification uses an ordered decision staircase with evidence-admission and conflict guards. Bayesian points describe evidence strength but are not a substitute for the implemented combining rules.
Bayesian Evidence Points
Points summarize evidence strength. The illustrative point bands below do not determine the production verdict independently of the priority and combining rules.
Pathogenic Evidence Points
- Very Strong (PVS)+8
- Strong (PS)+4
- Moderate (PM)+2
- Supporting (PP)+1
Benign Evidence Points
- Stand-alone (BA1)Standalone Benign route, subject to priority and conflict guards
- Strong (BS)-4
- Supporting (BP)-1
Point bands (illustrative, not the final decision rule)
Pathogenic
>= 10 pts
Likely Path.
6 - 9 pts
VUS
0 - 5 pts
Likely Benign
-1 - -5 pts
Benign
<= -6 pts
High-Confidence Conflict Safety Check
Pathogenic evidence at Moderate or above together with Strong benign evidence enters the conflict route and yields VUS. BA1 with Strong or Very Strong pathogenic evidence also remains VUS, subject to higher-priority expert and risk-allele handling.
Implemented Combining Rules
These combinations are evaluated after higher-priority expert, risk-allele, frequency, conflict and ClinVar branches. Eligibility and mechanism guards still apply. BS2 is currently unavailable automatically, so combinations naming BS2 cannot be satisfied by population counts.
Pathogenic (8 rules)
- P1: 1 Very Strong (PVS) + >= 1 Strong (PS)
- P2: 1 Very Strong (PVS) + >= 2 Moderate (PM)
- P3: 1 Very Strong (PVS) + 1 Moderate (PM) + 1 Supporting (PP)
- P4: 1 Very Strong (PVS) + >= 2 Supporting (PP)
- P5: >= 2 Strong (PS)
- P6: 1 Strong (PS) + >= 3 Moderate (PM)
- P7: 1 Strong (PS) + 2 Moderate (PM) + >= 2 Supporting (PP)
- P8: 1 Strong (PS) + >= 4 Moderate (PM)
Likely Pathogenic (7 rules)
- LP1: 1 Very Strong (PVS) + 1 Moderate (PM)
- LP1b: PVS1 Very Strong + >= 1 Supporting (PP)
- LP2: 1 Strong (PS) + 1-2 Moderate (PM) - gated by computational-only LP guard (v3.25.6 CR-064 / v3.25.9 CR-067): blocked when sole Strong is PP3_Strong or PP3_splice_Strong with PM2 only and no PP4/PP5/PS1/PM3/PM4. v3.27.2 CR-081: bypass for PP3_splice_Strong in AD/XL LoF-intolerant genes with disease association and splice proximity.
- LP3: 1 Strong (PS) + >= 2 Supporting (PP)
- LP4: >= 3 Moderate (PM) with disease association, missense-mechanism and computational-only guards.
- LP5: 2 Moderate (PM) + >= 2 Supporting (PP) with disease association, missense-mechanism and computational-only guards.
- LP6: 1 Moderate (PM) + >= 4 Supporting (PP) with disease association, missense-mechanism and computational-only guards.
Benign (3 rules)
- B1: 1 Stand-alone (BA1) - frequency > 5%
- B3: >= 1 Very Strong benign (BS1_VeryStrong, -8 pts) - v3.33.0 (HELIX-CR-2026-094): a single Very Strong benign criterion is sufficient alone for Benign under the ClinGen SVI Bayesian framework (Tavtigian 2018, Pejaver 2022). Fires for the MYO15A and OTOF Hearing-Loss genes at the multi-tier BS1 Supporting band (ClinGen CSPEC GN023). Evaluated after B1 and before B2 (CASE order B1 -> B3 -> B2).
- B2: >= 2 actual Strong benign (BS1, BS2) - v3.26.6 (BB-007): explicit Strong-only count. BP4_Moderate (Moderate benign per Pejaver 2022) is included in bs_count for LB1 participation but excluded from B2. Tavtigian 2020 (PMID:32720330): BS1(-4) + BP4_Moderate(-2) = -6 pts = LB, not B (requires <= -7 pts). v3.33.0 (HELIX-CR-2026-094): Strong count uses has_bs1_strong, excluding BS1_VeryStrong (handled by B3) to prevent double-counting.
Likely Benign (2 rules)
- LB1: 1 Strong benign (BS or BP4_Moderate mapped to bs_count) + 1 Supporting benign (BP)
- LB1b: 1 actual Strong benign (BS1 or BS2) + BP4_Moderate - v3.26.6 (BB-007) explicit fallthrough: Tavtigian BS1(-4) + BP4_Moderate(-2) = -6 pts = LB. Prevents BS1 + BP4_Moderate (without other BP) from incorrectly falling to VUS.
- LB2: >= 2 Supporting benign (BP)
Conflicting Evidence Handling
Conflicting evidence is not resolved by simply subtracting points. For example, PM2 Moderate with BS1 Strong enters the VUS conflict route. LP1b requires PVS1 Very Strong plus Supporting evidence; PVS1 Strong plus a single Supporting criterion does not satisfy it.
VCEP Gene-Specific Specifications
ClinGen Variant Curation Expert Panels (VCEPs) adapt generic ACMG/AMP 2015 criteria to specific genes or diseases. Folklore implements approved VCEP specifications as an optional overlay on top of the standard classification.
How It Works
The standard classification pipeline runs first, producing a generic ACMG classification for all variants. For variants in genes with available VCEP specifications, gene-specific thresholds are applied via a lightweight overlay that modifies frequency cutoffs (BA1, BS1, PM2) and criterion applicability (PVS1) based on the published VCEP specification. The Bayesian point total is then recalculated with the modified criteria.
What VCEPs Modify
- BA1: Gene-specific allele frequency threshold for stand-alone benign (e.g., 0.1% for Cardiomyopathy genes instead of generic 5%)
- BS1: Gene-specific elevated frequency threshold, already mode-of-inheritance-aware
- PM2: Gene-specific absent-in-controls threshold (e.g., 0% for RASopathy genes)
- PVS1: Gene-specific applicability gate. Set to FALSE for gain-of-function genes (e.g., MYOC in glaucoma)
Toggle Behavior
VCEP overlay is enabled by default and can be disabled per case in case settings. When enabled, variants in VCEP-covered genes display an audit trail marker (e.g., "[VCEP:Hearing Loss v1.0]") in the criteria string.
Coverage
Approved VCEP specifications are sourced from the ClinGen Criteria Specification Registry (CSpec). Approximately 50-60 genes have published specifications, including panels for Hearing Loss, Cardiomyopathy (MYH7, MYBPC3), RASopathy (PTPN11, BRAF, SOS1), PTEN, CDH1, TP53, PAH, and BRCA1/BRCA2 (ENIGMA). For all other genes, generic ACMG 2015 thresholds are used.
ClinVar Override Logic
ClinVar clinical significance assertions are used as classification evidence, but only under specific conditions that prevent overriding computational evidence when conflicts exist.
When ClinVar override IS applied
ClinVar has a Pathogenic, Likely Pathogenic, Benign, or Likely Benign assertion with at least 1 review star, AND no conflicting computational evidence exists (no BA1, no conflicting pathogenic+benign criteria at moderate+ strength). For P/LP assertions with only 1 review star (single submitter), the gene must also have an established disease association via at least one of five sources: ClinVar P/LP (gene-level, requires 2+ review stars to prevent circular self-validation), Orphanet, ClinGen haploinsufficiency score, curated AR LoF gene list, or VCEP coverage (v3.10.0 disease association gate, v3.10.1 CTE fix). P/LP assertions with 2+ review stars bypass this gate. Benign/Likely Benign assertions are not gated.
When ClinVar override is NOT applied
ClinVar cannot bypass an eligible standalone BA1 route or the BA1 plus Strong/Very Strong pathogenic conflict. Other pathogenic/benign conflicts, insufficient review stars, VUS assertions and the single-submitter disease-association gate also restrict this route.
Default minimum review stars for override: 1 (configurable per deployment)
When ClinVar classification is used, the criteria string includes "ClinVar" as the first element (e.g., "ClinVar,PM2,PP3") to make the evidence source explicit. When a ClinVar P/LP override is blocked by the disease association gate (v3.10.0), the criteria string shows "ClinVar_gated" as the first element to indicate that the ClinVar assertion was present but not applied. ClinVar review star level is available alongside every variant for the reviewing geneticist to assess assertion quality. In v3.39.2, the direct ClinVar provenance marker follows the same BA1 and pathogenic-evidence guard as the final classification. A route that was blocked is not described as the source of the verdict. This correction does not introduce a new policy for single-submitter benign conflicts.
Criteria Requiring Clinical Review
These criteria require information that cannot be determined from a single-sample VCF file - family segregation data, functional study results, confirmed de novo status, or case-level clinical context. They must be evaluated by the reviewing geneticist.
De novo variant (confirmed paternity and maternity)
Requires trio sequencing data and confirmed parental relationships. Cannot be determined from single-sample VCF analysis.
Well-established in vitro or in vivo functional studies show a deleterious effect
Requires curation of published functional assay data. Automated literature extraction of functional evidence is not yet implemented.
Prevalence of the variant in affected individuals is significantly increased compared with controls
Requires case-control study data or odds ratios not available in standard annotation databases.
Assumed de novo without confirmation of paternity and maternity
Requires family structure information not available in single-sample analysis.
Cosegregation with disease in multiple affected family members
Requires multi-generational pedigree data and segregation analysis.
Well-established in vitro or in vivo functional studies show no deleterious effect
Requires curation of published functional assay data (benign counterpart of PS3).
Lack of segregation in affected members of a family
Requires family segregation data not available in single-sample analysis.
Variant found in a case with an alternate molecular basis for disease
Requires clinical case-level information about alternative diagnoses.
Quality Filtering
Three configurable presets set quality, depth and genotype-quality thresholds. Quality checks begin before annotation; subsequent filtering also uses consequence and ClinVar annotations.
| Preset | Quality (QUAL) | Depth (DP) | Genotype Quality (GQ) | Recommended Use |
|---|---|---|---|---|
| Strict | >= 30 | >= 20 | >= 30 | High-confidence clinical reporting |
| Balanced | >= 20 | >= 15 | >= 20 | Standard clinical analysis (default) |
| Permissive | >= 10 | >= 10 | >= 10 | Maximum sensitivity / research |
Retained calls and allele balance
Qualifying ClinVar pathogenic or conflicting assertions can preserve low-quality calls for review. Retention does not turn a failed quality check into a pass. At multiallelic sites, allele balance uses the selected ALT read count divided by the sum of all source allele depths, including other ALTs. Missing or malformed depths remain unavailable. The existing 0.15 heterozygous allele-balance threshold and its depth conditions are unchanged in 3.39.2.
Limitations and Disclaimers
- Folklore is a clinical decision support tool, not a diagnostic device. All classifications require review and confirmation by a qualified clinical geneticist.
- Some criteria require segregation, functional, de novo or phenotype evidence beyond a single-sample VCF. Automatic nuclear PS1 and BS2 are unavailable in this release.
- SpliceAI predictions are computational. RNA splicing studies remain the gold standard for confirming splice-altering effects.
- Population frequency data from gnomAD may underrepresent certain ethnic groups and geographic populations. Allele frequency thresholds should be interpreted in the context of the patient's ancestry.
- ClinVar assertions vary in quality and currency. Review star levels are displayed alongside all ClinVar-derived evidence to enable informed interpretation.
- SV/CNV processing is mandatory for every case. Constitutional copy-number losses and gains that meet the shipped applicability predicates are classified under the Riggs 2020 ClinGen/ACMG framework; typed INS, INV, BND, ambiguous CNV, and other non-applicable SV rows retain no nuclear ACMG, MMDWG, or Riggs verdict. The final v3.39.1 implementation makes the nuclear boundary explicit with sv_type IS NULL and deterministic mandatory SV routing (CR-2026-VA-MANDATORY-DETERMINISTIC-SV-PROCESSING-001). Repeat expansions are not classified by this pipeline.
- Mitochondrial variants are routed to a dedicated classification module implementing the MMDWG 2020 specifications. They are not approximated with nuclear ACMG rules; mitochondrial-specific criteria, evidence sources, and limitations are documented on the mtDNA methodology page.
- VCEP gene-specific specifications are implemented as a threshold overlay for BA1, BS1, PM2, and PVS1 applicability. The overlay does not implement VCEP-specific functional assay interpretation (PS3/BS3) or gene-specific segregation logic (PP1/BS4), which require manual curation. Coverage is limited to approximately 50-60 genes with published ClinGen CSpec specifications; all other genes use generic ACMG 2015 thresholds.
- PM5 uses a normalized ClinVar-derived pathogenic-codon asset and requires a different alternate amino acid at the same gene and codon with a P/LP assertion at 2+ review stars (final v3.39.1, CR-2026-PM5-ENABLEMENT-001). If that asset is unavailable, the classifier degrades safely to no PM5 evidence.
- Compound-heterozygote candidates require clinical phase review. Unresolved cis/trans or composite haplotypes are not resolved by classifying each allele independently.
- LoF evidence depends on the curated disease mechanism, transcript and sequence context. Reference-source coverage is incomplete; absence of an assertion is not proof of absence of disease.
- Homozygous reference genotypes (hom_ref) from multi-allelic VCF sites are excluded from classification. These represent alleles not present in the patient.
- Computational-only and missense-mechanism guards remain. The heterozygous recessive LoF carrier guard was removed in v3.39.4: allele pathogenicity, genotype and patient diagnosis are separate questions.
- Population observations do not establish that an individual is a phenotyped healthy control. Legacy regional-tolerance annotations require clinical review and do not restore automatic BS2.
- ClinGen negative evidence guard (v3.26.9, HELIX-CR-2026-078): genes with ClinGen Gene-Disease Validity classifications limited to Limited / Disputed / Refuted (no Definitive / Strong / Moderate) are no longer accepted as having disease association via Orphanet entry alone. This blocks ClinVar 1-star override and LP rules in genes with negative ClinGen evaluation, preventing single-submitter ClinVar promotion in genes that ClinGen has examined and found insufficient evidence.
- Results should always be interpreted in the context of the patient's clinical presentation, family history, and other available clinical information.
- Classification does not establish that a sequence call is technically valid or clinically causal. Review quality flags and the disease mechanism. To recover an allele omitted during earlier multiallelic ingestion, process the original VCF again; reclassification of existing rows is insufficient.
Version History
Classifier versions identify changes to classification logic. Reference databases, Atlas and VEP have separate versions. A classifier release does not by itself update those assets. Related input-processing changes are identified separately below.
Show older versions (90 more)
- PVS1: medium-expression variants can retain Very Strong evidence only with exact-version MANE/protein agreement and sequence-projected NMD proof, in addition to existing mechanism and clinical gates. Low expression, unresolved sequence and terminal contexts retain their conservative handling.
- Automatic nuclear PS1 and BS2 are unavailable: an exact ClinVar assertion is not an independent same-amino-acid comparator, and population homozygote counts do not establish healthy adults with disease-specific penetrance. Independent ClinVar/ERepo verdicts and mitochondrial interpretation remain separate.
- BA1 with Strong or Very Strong pathogenic evidence remains VUS through the later ClinVar branch. Moderate-only evidence does not disable the existing standalone BA1 route; expert-panel precedence is unchanged.
- Covered-absence PM2 policy v2 accepts supported small indels with multiple equivalent representations when the complete bounded allele family passes absence, regional AN/depth, mask and expert-scope checks. Representation count alone no longer excludes an allele.
- The evidence contributes PM2 Supporting. Missing frequency remains unknown, reference observations retain their identity, and historical results are not rewritten. Regional coverage is not a guarantee of detection sensitivity for every indel.
- Further PM2 query optimization uses nearest-window ASOF joins for point observations and streams batches into the evidence writer, reducing repeated scans and intermediate memory use.
- Clinical eligibility, missing-value handling and Reference DuckDB ownership are unchanged. This is an implementation optimization, not a new scientific policy or a universal turnaround-time guarantee.
- PM2 reference lookups are batched across merged observation windows; evidence rows are written in typed Arrow batches. This replaces repeated per-allele queries and row-by-row insertion.
- Scientific policy, interval boundaries and duplicate-observation rejection are preserved. Explicit source-row ordering makes previously ambiguous duplicate ordering deterministic.
- The public scientific reference sources introduced in v3.39.4 are migrated from the external runtime package into registered tables in the shared Reference DuckDB, with managed source provenance and lifecycle. Runtime reference reads use those governed tables.
- An independent covered-absence route adds PM2 Supporting only for supported GRCh38 literal alleles with complete equivalent-allele absence, qualifying exome AN and mean-depth observations, acceptable masks and expert scope. NULL AF is never converted to zero.
- The observed-frequency PM2 route remains separate. Classifier, reference assets, Atlas and VEP retain independent versions.
- Adds public gene-mechanism evidence from G2P, ClinGen CSpec provenance for BP1, MobiDB repeat observations, and MANE/Ensembl and Swiss-Prot sequence context for terminal PVS1 and PM4 evidence admission. Missing context remains unresolved.
- BP1 requires positively reviewed whole-gene mechanism evidence; source text or low constraint alone is insufficient. Positive repeat observations cannot establish a non-repetitive region.
- Allele pathogenicity is separated from recessive carrier status: the heterozygous LoF carrier guard is removed. LP1b requires PVS1 Very Strong plus Supporting evidence; PVS1 Strong plus one Supporting criterion is insufficient.
- This release initially used a separate runtime reference package. Version 3.39.5 replaces that storage design with the shared Reference DuckDB.
- Unpublished candidate. This version was not released to production. It is listed to explain the numbering gap; it must not be treated as a shipped scientific or reference-data change.
- BS1 chromosome consistency: incompatible X-linked inheritance annotations no longer select an X-linked frequency rule for variants on known autosomes 1-22. Existing mixed AD/AR precedence and frequency thresholds are preserved.
- BS1 evidence traceability: the numerical threshold and its displayed source now come from one ordered decision, retaining the previous numeric fallback behavior.
- ClinVar provenance: the direct-route marker uses the same BA1 and pathogenic-evidence guard as the final verdict, so the explanation does not claim a ClinVar route that was blocked.
- VCF ingestion, released alongside the classifier: each called literal ALT is retained with the correct dosage. Original genotype, phase and allele-depth positions are preserved. Spanning-deletion placeholders are audited separately.
- Allele-balance calculation now uses the selected ALT depth and all source allele depths. Missing values are not shifted to another allele. Quality thresholds are unchanged; a retained or P/LP-classified call may still fail quality checks.
- Previously omitted alleles require processing the original VCF again. Reclassifying existing rows cannot recover missing input alleles. This release does not replace Reference DB, Atlas or VEP assets.
- Completed the BS1 recessive-LoF legitimacy guard for the HPO-AD fallback (HELIX-CR-2026-108 follow-up). Evidence-backed biallelic LoF genes now bypass both the pure-AD clauses introduced in v3.39.0 and the adjacent HPO-AD clause, closing the TSHR-class fall-through while retaining higher-priority VCEP and ClinGen-HI rules.
- Activated PM5 Moderate evidence from a normalized ClinVar pathogenic-codon asset (CR-2026-PM5-ENABLEMENT-001). A different P/LP missense alternate at the same gene and codon with 2+ review stars now contributes observed evidence; the final implementation applies PM5 whenever the asset is available and degrades safely when it is absent.
- Expanded compound-heterozygote splice partners and tightened carrier-guard semantics (CR-2026-COMPHET-SPLICE-PARTNER-001). Canonical/fifth-base/donor-region splice partners are accepted directly, broader splice-region/polypyrimidine candidates require SpliceAI or HIGH/MODERATE impact support, and guard release now requires PM3 to fire after ClinVar partner validation.
- Made the nuclear/SV boundary explicit in the final v3.39.1 code (CR-2026-VA-MANDATORY-DETERMINISTIC-SV-PROCESSING-001): nuclear ACMG evaluates only rows with sv_type IS NULL, while applicable constitutional losses and gains route deterministically to the Riggs methodology.
- Added an evidence-backed recessive-LoF legitimacy set built as the intersection of definitive/strong/moderate biallelic LoF entries in gene_disease_mechanism and autosomal-recessive support in GenCC (HELIX-CR-2026-108). Missing or empty reference data preserves the previous behavior.
- Guarded BS1 pure-autosomal-dominant 0.1% clauses for genes in that set so biologically legitimate recessive LoF variants can fall through to the 5% AR threshold instead of receiving overly strong benign frequency evidence (HELIX-CR-2026-108).
- Suppressed BS2 for those genes only when the variant also has canonical pathogenic signal - HIGH frameshift/stop-gained/canonical splice/start-lost consequence or qualifying ClinVar P/LP evidence - preventing healthy-carrier homozygote counts from being treated as blanket strong benign evidence (HELIX-CR-2026-108).
- Established and low-penetrance risk-allele suppression activated (HELIX-CR-2026-107). The classification staircase now assigns an established or low-penetrance risk allele to VUS at STEP -0.5, above BA1, instead of leaving it Benign at BA1-band frequency. The signal comes from ClinVar clinical significance ('risk_allele'), with a documented Factor V Leiden (ClinVar 642) carve-out. This widens the v3.33-era 102A predicate, which was inactive on the ERepo-only substrate. A risk allele cannot produce a P/LP classification; the assertion appears as a [RiskAllele] annotation.
- Inheritance- and penetrance-aware BS1/BS2 (HELIX-CR-2026-100): benign-frequency strength is gated by inheritance mode, including a G6PD X-linked-recessive guard. Conservative-for-benign.
- BP4_splice eligibility narrowed (HELIX-CR-2026-101): BP4_splice is withheld inside the conserved canonical donor/acceptor motif, where a low SpliceAI score is not sufficient evidence of benign splicing.
- Risk-allele SUPPRESS substrate introduced (HELIX-CR-2026-102A): the established / low-penetrance risk-allele suppress branch added to the staircase (inert until its ClinVar substrate is wired at v3.38.0).
- PVS1 AR loss-of-function reference coverage extended and audit re-gated (HELIX-CR-2026-103); PVS1 canonical-donor +5 position exclusion fix (HELIX-CR-2026-104). Cohort-3 directed under-call batch.
- ClinGen-AR completeness set supersedes the GenCC autosomal-recessive fallback (HELIX-CR-2026-096): a clean cutover of the BS1 AR-evidence gene set to the ClinGen-curated source, reclassifying SPG7.
- gnomAD VCF FILTER carried into the gnomAD asset (HELIX-CR-2026-099): BA1/BS1 are refused on a non-PASS gnomAD site, correcting the PRSS1 A16V frequency artifact.
- ERepo expert-panel P/LP override re-ordered to the TOP of the classification staircase (HELIX-CR-2026-093), above BA1 stand-alone and the conflict guard: an FDA-recognized VCEP P/LP assertion supersedes the mechanical frequency-benign branches (predicates unchanged; only the position moved).
- PVS1 LOEUF constraint threshold raised 0.35 -> 0.45 with the move to gnomAD constraint v4.1.1 (chrX/chrY constraint added), per the gnomAD v4.1.1 (2026-03-30) LoF-constraint recommendation.
- GenCC dual-mechanism BS1 inheritance fallback (HELIX-CR-2026-092).
- ClinGen ERepo expert-panel P/LP override inserted into the classification staircase (HEL-CR-2026-CLASSIFIER-EREPO-OVERRIDE-001, Phase B): an ERepo Pathogenic assertion yields P and an ERepo Likely Pathogenic assertion yields LP, placed above the ClinVar override and below the conflict guard. Variant-level join only; surfaced as an [ERepo] annotation. (Re-ordered to the top of the staircase at v3.35.0.)
- B3 Very Strong benign combining rule added (HELIX-CR-2026-094): >= 1 Very Strong benign criterion (BS1_VeryStrong, -8 pts) is sufficient alone for Benign under the ClinGen SVI Bayesian framework (Tavtigian 2018, Pejaver 2022). Evaluated in CASE order B1 -> B3 -> B2; B2 now counts has_bs1_strong to avoid double-counting Very Strong evidence.
- Multi-tier BS1 Supporting band for 7 Hearing-Loss autosomal-recessive genes (CDH23, GJB2, MYO15A, MYO7A, OTOF, SLC26A4, USH2A) per ClinGen CSPEC GN005/GN023; helena_curated BS1 source label.
- BS1 MOI threshold-selection fix for dual-mechanism (AD+AR) and X-linked genes (HELIX-CR-2026-091): inheritance-mode threshold selection stratified to the ClinGen Definitive/Strong autosomal-recessive evidence gene set (~226 genes), with an HPO autosomal-dominant guard. Subtractive for BS1; conservative-for-benign.
- BS1/BA1 effective frequency aligned to the gnomAD v4 Grpmax Filtering AF (af_grpmax) (HELIX-CR-2026-090), per ClinGen guidance to VCEPs on gnomAD v4 (March 2024): Grpmax Filtering AF is the allele frequency for BA1/BS1, and gnomAD intentionally excludes the bottlenecked AJ/FIN/AMI/MID populations from it. global allele frequency is retained as a fallback only, with a NULL/zero bottleneck guard; audited by the [af_grpmax] marker. Benign-only - cannot create new P/LP.
- PM1: UniProt residue-level evidence integration (HELIX-CR-2026-082). Three-tier PM1 evidence model replaces domain-level Pfam-only logic. Tier 1 (primary): UniProt SwissProt human reviewed proteome, 113,126 PM1-eligible features across 14,278 proteins (DISULFID, ACT_SITE, BINDING, MOD_RES, MOTIF). Tier 2 (fallback): InterPro Pfam critical domains (~50 domains, retained for VCEP-defined regions). Tier 3 (reserved): VCEP-specific PM1 region overrides (future). PM1 boolean unchanged (single Moderate strength), preserving existing combining rules.
- PM1 evidence density: 2,262x increase over v3.28 (50 hardcoded Pfam domains -> 113,126 expert-curated UniProt residues). Architecture follows Folklore Pattern A (Parquet as source of truth, DuckDB as disposable cache). hgvs_protein parsing handles NULL, empty, multi-transcript pipe-delimited, version-suffix-stripped ENSP, and missense-only consequence guard.
- Naked feature handling (Strategy D): UniProt features lacking /evidence= and /note= qualifiers (2,067 features, 1.8% of total) excluded from PM1 eligibility by default. Config flag pm1_uniprot_include_naked allows clinical override for specific cases (e.g., INSR Cys234Tyr disulfide bond Cys223-Cys234, naked DISULFID). Default conservative; opt-in for full UniProt coverage when curator inclusion in SwissProt is treated as curation evidence.
- Audit trail: pm1_evidence_source column populated for every PM1 hit (uniprot:DISULFID:223-234:P06213 or pfam:PF00069). Frontend variant detail panel displays human-readable evidence source with UniProt entry link. Replaces generic "PM1: critical functional domain" annotation.
- InterPro Pfam loader Pattern B remediation: load_interpro_pfam.py migrated from direct DROP TABLE + INSERT to Parquet-first architecture, matching all other reference datasets. CRITICAL_DOMAINS dict retained as manual override layer.
- Reference: Richards 2015 PMID:25741868 (PM1 definition), Walker 2023 PMID:37352859 (ClinGen SVI Section 3.3), UniProt Consortium 2023 PMID:36408920.
- Processing notes refactor (HELIX-CR-HEL-VA-2026-001): sentinel-guarded deduplication of classifier-generated processing notes. All 14 ACMG note categories prefixed with [ACMG] sentinel. Symmetric refactor in artifact detection stage with [ARTIFACT] sentinel. Eliminates stale note preservation across reclassification runs (Finding-1: Case 13 IFT140 missing Cat 4 bypass note) and N-fold note duplication on repeated classifier runs (Finding-2: AIRE sessions 11-18x duplication). Zero classification logic changes.
- Note structure invariant: [ACMG] and [ARTIFACT] note text must not contain "; " internally. MNV notes structurally safe (split/rejoin lossless for internal STRING_AGG).
- Scope: acmg_classifier.py (18 hunks), artifact_detection_stage.py (3 hunks), rerun_classifier_pipeline.py (1 hunk).
- LP2 splice bypass for AD/XL LoF genes (HELIX-CR-2026-081). LP2 computational-only guard (CR-042/064/067) extended with bypass for PP3_splice_Strong (SpliceAI >= 0.8) in autosomal dominant or X-linked dominant LoF-intolerant genes with established disease association. SpliceAI >= 0.8 in a LoF gene is qualitatively different from BayesDel missense PP3_Strong + PM2: high-confidence splice disruption prediction in an established LoF-mechanism gene approaches a functional LoF proxy.
- Bypass conditions (six mandatory): has_pp3_splice_strong AND NOT has_pp3_strong AND ad_lof_constraint_satisfied AND gene_has_disease_association AND splice_proximity_satisfied AND NOT outside_mane_region. MANE guard prevents bypass from reactivating LP through PP3_splice_Strong backdoor when PVS1 is blocked for positional reasons.
- ad_lof_constraint_satisfied excludes AR-only paths (carrier state, not haploinsufficiency), GoF/DN genes via gof_genes_exclusive + GOF_AD_GENES (analogous to PVS1 CR-022 v3.16.8), and dual-mechanism biallelic LoF genes that retain biallelic-only mechanism (CR-079 compatible: IFT140 retains AD path).
- splice_proximity_satisfied excludes pure missense (CR-066 handles dual-consequence), pure synonymous without splice VEP tag, UTR variants, and deep intronic without splice VEP (requires RNA per Walker 2023).
- Additive change: VUS to LP. Cannot create new B/LB or remove existing P/LP. Clinical trigger: HG2024_252 TCOF1 c.1279-6C>G VUS vs CG Pathogenic.
- Reference: Jaganathan 2019 PMID:30661751, Walker 2023 PMID:37352859, Abou Tayoun 2018 PMID:30192042, Richards 2015 PMID:25741868.
- Processing notes CASE priority fix (HELIX-CR-2026-080). Single first-match-wins CASE structure replaced with independent CASE WHEN concatenation. Variants matching multiple conditions now receive all applicable notes separated by semicolons.
- Cat 2 pext guard: Added NOT outside_mane_region guard to prevent conflicting notes when variant is both outside MANE and has pext data.
- Outer CASE guard: Checks if at least one condition matches before entering concatenation. ELSE preserves original processing_notes unchanged.
- Zero classification impact: no changes to acmg_class, acmg_criteria, or confidence_score. Additive notes only. Trigger: BBS9 p.Glu501Ter (Case 3, HG2022_042) - pext downgrade note was masking ar_biallelic_het_lof_guard note.
- Dual-mechanism AD/AR LoF guard bypass (HELIX-CR-2026-079). ar_biallelic_het_lof_guard (CR-063) extended with bypass for genes with documented monoallelic LoF mechanism. Guard was designed for AR-only LoF genes (AMACR, CFTR, GBA1) where het LoF is carrier state. Dual-mechanism genes (biallelic LoF + monoallelic LoF) have an AD pathway where het LoF is pathogenic.
- Two bypass paths: gene_disease_mechanism monoallelic LoF (definitive/strong/moderate) OR CLINVAR_LOF_AD_GENES Python constant (IFT140, GCM2). ClinGen AD Definitive/Strong path removed in v2 review: ClinGen AD moi does not distinguish LoF from GoF/DN.
- Additive change: VUS to LP for het LoF in dual-mechanism AD/AR LoF genes. Cannot create new B/LB. Cannot remove existing P/LP. Affected gene: IFT140 (3rd ADPKD gene per Senum 2022 PMID:34890546).
- Clinical trigger: IFT140 c.640del p.Val214CysfsTer55 (session 6692b88f). Phenotype: HP:0000107 (Renal cyst). Precedent: CR-037 (gof_genes_exclusive, v3.20.3) - analogous dual-mechanism bypass for PVS1/PM3 GoF guard.
- ClinGen negative evidence guard (HELIX-CR-2026-078). gene_has_disease_association Orphanet branch guarded by clingen_negative_genes CTE. When ClinGen has evaluated a gene AND all evaluations are non-actionable (Limited/Disputed/Refuted, no Definitive/Strong/Moderate), Orphanet entry alone is insufficient for gene_has_disease_association.
- clingen_negative_genes CTE: SELECT DISTINCT gene_symbol from ClinGen GDV where classification IN (Limited/Disputed/Refuted) AND gene NOT IN disease_associated_genes_clingen. ~480 genes. Materialized by DuckDB.
- Affects ClinVar 1-star override gate, LP4/LP5/LP6 disease gate, PVS1 disease gate, PP3_Strong disease gate, de novo projection P6/P7/P8 and LP4/5/6.
- Subtractive change: LP -> VUS for 1-star ClinVar override in genes with ClinGen negative-only evaluation. Cannot create new P/LP. 205 affected genes (Orphanet + ClinGen negative-only out of 480 total).
- Clinical trigger: TNC p.Arg108His LP [ClinVar,BP4] (PD2025_120). ClinGen Limited (Hearing Loss VCEP). BayesDel = -0.322 (benign). pLI = 0.0.
- Reference: Strande 2017 PMID:28552198, Richards 2015 PMID:25741868.
- BS2 inheritance-aware AR threshold (HELIX-CR-2026-074). AR-only genes (Orphanet has_ar=TRUE, has_ad=FALSE, or HI=30) with early-onset-only diseases use bs2_ar_homozygote_threshold (10) instead of generic (15).
- Onset guard from refdb.orphanet_disease_onset (HELIX-REF-005). EXISTS guard: gene must be in orphanet_disease_onset (no data = generic threshold). NOT EXISTS guard: gene must not have Adult/Elderly/All ages onset. Aligns with Richards 2015 Table 3: BS2 "with full penetrance expected at an early age".
- AD BS2 from gnomAD not implemented. Harrison 2019 PMID:31159682: gnomAD is general population, not healthy controls. APC VCEP (Curia 2023 PMID:37805481) excludes gnomAD for AD BS2. XL BS2 deferred (ac_hemi column not in annotation pipeline).
- Criteria string: BS2[AR-hom:N] for AR path, BS2 for generic path. Subtractive change: BS2 adds benign evidence only. Cannot create new P/LP. 2 P -> VUS via conflicting evidence (TGM5 p.Gly113Cys 14 hom, DUOX2 p.Phe966SerfsTer29 14 hom).
- Clinical trigger: HG2022_073 CBS p.Ala114Val P with 6 hom in gnomAD (CBS excluded by 6 < 10 threshold and Adult onset blocking onset guard).
- PS1 minimum review stars correction (HELIX-CR-2026-073). ps1_min_stars: 1 -> 2 in processing.yaml. YAML override from commit 39f97c7e (2025-12-16) allowed PS1 (Strong) at ClinVar 1-star, bypassing v3.10.0 disease association gate. Code default was already 2.
- PP5 restoration: review_stars = 1 ClinVar P/LP now correctly receives PP5 (Supporting) instead of PS1 (Strong). PP5 range (>= 1 AND < 2) no longer empty set.
- PM3 partner validation: partner.review_stars >= ps1_min_stars (shared config, identical semantics per Richards 2015 Table 3: both PS1 and PM3 require established pathogenic variant). 0 PM3 variants in production have partner with review_stars = 1 (verified 151 sessions).
- Subtractive change: PS1 removed from 1-star variants. Cannot create new P/LP. 3 LP -> VUS across 151 sessions (P4HA1, HLA-DRB1, NDUFAF7). All 3 genes without disease association in Orphanet/ClinGen/gene_disease_mechanism.
- Clinical trigger: HG2022_016 P4HA1 chr10:73043951 LP [PS1,PM2] - deep intronic in gene without disease association.
- Reference: Richards 2015 PMID:25741868 (Table 3, PS1/PM3 definitions), Walker 2023 PMID:37352859 (ClinGen SVI PS1 2-star minimum).
- B2 combining rule BP4_Moderate exclusion (Bug Bounty BB-007). B2 (>= 2 Strong benign) replaced with explicit (has_bs1 + has_bs2) >= 2. BP4_Moderate (Moderate benign, -2 pts Tavtigian) was incorrectly counted in bs_count for B2 firing, causing B2 (>= 2 Strong) to fire with 1 Strong (BS1) + 1 Moderate (BP4_Moderate). Richards 2015 Table 5 rule (ii): B2 requires >= 2 Strong benign. Tavtigian 2020 PMID:32720330: BS1(-4) + BP4_Moderate(-2) = -6 pts = LB, not B (requires <= -7).
- bs_count unchanged: BP4_Moderate remains in bs_count for LB1 participation (bs_count >= 1 AND bp_count >= 1). Only B2 check uses explicit Strong-only count.
- LB1b fallthrough added: 1 actual Strong benign (BS1/BS2) + BP4_Moderate = LB. Prevents BS1 + BP4_Moderate (without other BP) from falling to VUS.
- Subtractive change for B: B -> LB when BS1 + BP4_Moderate was the sole B2 trigger. Cannot create new P/LP. Cannot remove existing LB.
- Reference: Richards 2015 PMID:25741868 (Table 5 rule ii), Tavtigian 2020 PMID:32720330, Pejaver 2022 PMID:36413997.
- PM2 af_grpmax = 0.0 edge case fix (Bug Bounty BB-006). PM2 af_grpmax path: af_grpmax = 0.0 now treated as absent from controls, consistent with global_af path (v3.21.2, CR-050). gnomAD records AC=0 variants with af_grpmax=0.0 (NOT NULL). At pm2_threshold=0.0 (RASopathy "absent from controls"), 0.0 < 0.0 is false, blocking PM2.
- Affects only VCEP genes with pm2_frequency_field=af_grpmax AND pm2_threshold=0.0 (currently RASopathy genes). Neutral/additive change: restores PM2 for variants incorrectly blocked. Cannot remove existing P/LP.
- Reference: HELIX-CR-2026-050 (v3.21.2 global_af fix), HELIX-CR-2026-047 (v3.21.0 af_grpmax path), Richards 2015 PMID:25741868 (PM2 absent from controls).
- De novo projection compound het + hemizygous (Bug Bounty BB-003). compound_het_candidate guard removed from de_novo_projection outer CASE. De novo and compound het are compatible: allele 1 de novo + allele 2 inherited from carrier parent = legitimate compound het. PS2 (origin) and PM3 (biallelic configuration) are orthogonal evidence types.
- Hemizygous genotype support: rv.genotype IN (het, hom_alt) with chromosome guard (X/chrX/Y/chrY). Hemizygous males on X/Y correctly eligible for de novo projection. Autosomal hom_alt excluded.
- Dead LP rules documentation: LP1/LP1b/LP4/LP5/LP6 annotated as unreachable in de novo context (ps_count+1 >= 1 tautological, P-rules pre-empt). Retained for ACMG completeness.
- Additive change: new de_novo_candidate=true for compound het VUS and hemizygous X/Y VUS. No change to acmg_class (de novo projection is prospective only).
- Reference: Richards 2015 PMID:25741868 (PS2, PM3 definitions), Abou Tayoun 2018 PMID:30192042.
- P8 combining rule fix (Bug Bounty BB-001). P8 combining rule: ps_count >= 1 AND pm_count >= 4 replaced with ps_count >= 1 AND pm_count >= 1 AND pp_count >= 4. Richards 2015 Table 5 rule (viii): >=1 Strong AND >=1 Moderate AND >=4 Supporting.
- Previous implementation was dead code (subsumed by P6: ps>=1 AND pm>=3) and encoded a non-existent rule. De novo projection P8: same fix applied to de_novo_projection CTE. Docstring P8 description corrected.
- Subtractive/neutral change: dead code replaced with correct rule. Profile 1S+1M+4PP rare in current 19-criteria implementation (PS1 triggers ClinVar override before ACMG scoring). No classification changes expected in simulation.
- Reference: Richards 2015 PMID:25741868 (Table 5 rule viii), Tavtigian 2018 PMID:29300386 (Bayesian validation: 4+2+4=10 pts = P).
- De novo projection AF ceiling + post-projection conflict guard (HELIX-CR-2026-071). De novo AF ceiling: de_novo_projection CTE filters by AF. global_af > 0.001 OR af_grpmax > 0.001 blocks de novo projection. PS2 (de novo) presupposes variant not inherited; AF > 0.001 implies ~150+ carriers in gnomAD v4.1 (152K genomes). Config parameter de_novo_af_ceiling (default 0.001).
- Post-projection conflict guard: bs_count > 0 now blocks de novo projection unconditionally. Previous guard checked pre-projection conflict (pvs/ps/pm > 0 AND bs > 0), missing cases where PS2 projection itself creates the conflict.
- Subtractive change: removes false de novo candidates. Cannot create new P/LP or new de novo candidates.
- Clinical trigger: PEX2 intron_variant HG2022_079 (AF=0.0039, false de_novo_candidate=true).
- LP2 computational-only guard PP3_splice_Strong extension (HELIX-CR-2026-067). LP2 computational-only guard (CR-042/064) extended: has_pp3_strong replaced with (has_pp3_strong OR has_pp3_splice_strong). PP3_splice_Strong + PM2 without observed evidence now blocked, same as PP3_Strong + PM2.
- Subtractive change: LP -> VUS. Cannot create new P/LP. De novo projection unchanged (PS2 is observed, LP2 legitimate).
- Clinical trigger: IRF1 p.Arg123Gly LP [PP3_splice_Strong,PM2] (CR-065/066 simulation, computational-only profile).
- PP3 + PP3_splice mutual exclusion (HELIX-CR-2026-066). PP3 (BayesDel, all levels: Strong, Moderate, Supporting) blocked for dual-consequence variants where VEP consequence includes splice_region, splice_donor, or splice_acceptor in addition to missense. ClinGen SVI (Walker 2023 Section 3.2): PP3 is single criterion. SpliceAI (PP3_splice) is the more specific tool when VEP confirms splice proximity.
- Symmetric with CR-065: CR-065 blocks PP3_splice for pure missense (no splice VEP). CR-066 blocks PP3 for missense WITH splice VEP. Together: exactly one PP3 path per variant, never both.
- Subtractive change: PP3 removed from dual-consequence variants where PP3_splice also applies. Cannot create new P/LP. Clinical trigger: CR-065 simulation IRF1 p.Arg123Gly VUS to LP (PP3_Supporting + PP3_splice_Strong + PM2, double-counting).
- PP3_splice missense-tolerated guard (HELIX-CR-2026-065). PP3_splice (all levels: Strong, Moderate, Supporting) blocked for pure missense variants (no VEP splice_region/splice_donor/splice_acceptor consequence) when BayesDel noAF data is available. ClinGen SVI (Walker 2023 Section 3.2): when BayesDel indicates tolerated/indeterminate and SpliceAI predicts cryptic splice, evidence is conflicting, not additive.
- Subsumes CR-043 (v3.20.8) double-counting guard. New guard covers both BayesDel >= 0.130 (CR-043 case) and BayesDel < 0.130 (CR-065 case) in single condition. BayesDel IS NULL bypass preserved (SpliceAI as sole in silico evidence). Missense + splice VEP consequence bypass preserved (VEP confirms splice proximity).
- Subtractive change: PP3_splice removed from pure missense with BayesDel. Cannot create new P/LP.
- Clinical trigger: PD2025_101 DICER1 c.5524A>G p.Ile1842Val LP [PP3_splice_Strong,PM2,PP2] vs ClinVar Expert Panel VUS (3 stars).
- LP2 computational-only guard PP2 bypass fix (HELIX-CR-2026-064). LP2 combining rule guard (CR-042) extended: pp_count = 0 condition replaced with (pp_count = 0 OR (pp_count > 0 AND NOT has_pp4 AND NOT has_pp5)). PP2 (gene-level constraint) no longer bypasses the PP3_Strong+PM2 computational-only LP guard. PP4 (HPO match, observed) and PP5 (ClinVar 1-star, observed) still override the guard legitimately.
- Subtractive change: LP -> VUS. Cannot create new P/LP. De novo projection unchanged: PS2 + PP3_Strong = ps_count >= 2 -> P5.
- Clinical trigger: PD2025_002 MEN1 p.Arg115His LP [PP3_Strong,PM2,PP2] vs ClinVar VUS (2 stars, 70 P/LP missense in gene).
- Het LoF LP guard for AR/biallelic-only LoF genes (HELIX-CR-2026-063). All LP combining rules (LP1-LP6) blocked for het LoF (HIGH impact) variants in AR/biallelic-only LoF genes without compound het partner. Het LoF in AR-only gene = carrier state, not pathogenic event. Richards 2015 Table 3: PVS1 presupposes pathogenic context.
- Guard logic: ar_biallelic_het_lof_guard boolean. True when genotype=het, impact=HIGH, compound_het_candidate=false/NULL, AND gene in gene_disease_mechanism (LoF, biallelic, definitive/strong/moderate) OR (Orphanet AR-only AND gene_disease_mechanism LoF). P rules NOT blocked: P1 with ClinVar PS1 is legitimate override.
- De novo projection: blocked by guard. pLI~0 + LOEUF>1 = het LoF tolerated in gnomAD. De novo het LoF not informative for AD mechanism.
- Interaction: orthogonal to CR-061 (missense), CR-062 (computational). Subtractive change: LP -> VUS. Cannot create new P/LP.
- Clinical trigger: PD2025_084 AMACR c.857del LP [PVS1_Strong,PM2] vs ClinVar VUS (2 stars). AMACR: pLI=0.000001, LOEUF=1.108, AR-only Orphanet, biallelic LoF definitive G2P.
- Computational-only LP guard for LP4/LP5/LP6 (HELIX-CR-2026-062). LP4/LP5/LP6 combining rules blocked when ALL pathogenic criteria are computational/annotation-based: PM1 (domain), PM2 (frequency), PP2 (gene constraint), PP3 (BayesDel, any level), PP3_splice (SpliceAI, any level). At least one observed/clinical criterion required: PS1 (ClinVar observed), PM3 (compound het), PM4 (inframe indel), PP4 (phenotype match), or PP5 (ClinVar low confidence).
- De novo projection: LP4/LP5/LP6 NOT gated by this guard. PS2 (de novo) is observed evidence - if confirmed, LP is legitimate even with computational moderates.
- Subtractive change: cannot create new P/LP. LP -> VUS when entire evidence profile is computational. 0 impact on PVS1-based LP, PP3_splice LP, ClinVar override LP, compound het LP, or PM4 LP.
- Clinical trigger: PD2025_106 JAG1 p.Gly309Arg LP [PM1,PM2,PP2,PP3_Supporting] vs ClinVar VUS (2 stars).
- Monoallelic missense LP guard for AR/biallelic LoF genes (HELIX-CR-2026-061). PP2 blocked for het missense in AR/biallelic LoF genes without documented missense disease mechanism. Richards 2015 Table 3: PP2 requires "missense variants are a common mechanism of disease". AR LoF genes without ClinVar P/LP missense (clinvar_missense_genes) do not satisfy this premise.
- LP4/LP5/LP6 combining rules blocked (ar_biallelic_missense_guard) for het missense variants in AR/biallelic LoF genes without compound het partner and without ClinVar P/LP missense evidence.
- De novo projection: LP4/LP5/LP6 blocked by same guard. LP2 (PS2 + PM) intentionally NOT blocked - de novo is direct phenotypic observation, not computational prediction.
- Subtractive change: cannot create new P/LP. ~44 LP -> VUS (het missense in AR/biallelic LoF genes). 0 impact on PVS1-based LP, PP3_splice LP, ClinVar override LP, or compound het candidates.
- Clinical trigger: PD2025_127 ABCA2 p.Arg1064Cys LP [PM1,PM2,PP3_Moderate,PP2] vs ClinVar VUS (2 stars, multiple submitters, no conflicts).
- BP4_splice_benign for non-canonical splice (HELIX-CR-2026-060). Supporting benign for non-canonical splice region variants with SpliceAI <= 0.1. Covers splice_donor_region, splice_donor_5th_base, splice_acceptor_5th_base, splice_region, and splice_polypyrimidine_tract consequences. Excludes synonymous (BP7 handles) and missense (BP4 BayesDel handles).
- SpliceAI threshold <= 0.1: consistent with BP7 synonymous guard. Jaganathan 2019 PMID:30661751, de la Hoya 2022 PMID:35202600.
- PVS1 guard: NOT pvs1_cond (pre-split, covers both full and last-exon). Same guard as PP3_splice paths. No double-counting splice/LoF evidence. Criteria string: BP4_splice (Supporting benign).
- Subtractive change: adds benign evidence only. Cannot create new P/LP. VUS with BS1/BS2 + BP4_splice = LB (LB1 rule). VUS without Strong benign remain VUS (1 BP insufficient for LB2).
- Clinical trigger: PD2025_087 HNF4A c.426+4C>T (splice_donor_region, SpliceAI=0.0, VUS without criteria). Geneticist flag by D. Maneva.
- PM3 ClinVar partner validation guard (HELIX-CR-2026-058). compound_het_candidate = true alone no longer satisfies PM3. Partner must have ClinVar P/LP (clinical_significance LIKE Pathogenic% OR Likely_pathogenic%, NOT LIKE %Conflicting%) with review_stars >= ps1_min_stars (currently 2). Richards 2015 Table 3: detected in trans with a pathogenic variant - partner pathogenicity is explicit.
- ClinVar-only guard (no acmg_class dependency): avoids circular reference where partner classification depends on PM3 which depends on partner classification. ClinVar annotation is external/immutable.
- Subtractive change: PM3 can only be removed, not added. 241 LP -> VUS expected (PM3 was decisive). 5 LP unchanged (validated partner). De novo projection inherits PM3 change via pm3_cond.
- Clinical trigger: HG2022_037 F5 p.Met1874Thr LP [PM2,PM3,PP3_Moderate,BP2] vs ClinVar VUS (2 stars). Partner: Factor V Leiden (p.Arg534Gln, AF=2.14%, ClinVar drug_response 3 stars). PM3 incorrectly fired without partner pathogenicity validation.
- Impact: 188 sessions, 52,929 PM3 variants, 241 LP -> VUS, 0 new P/LP.
- BP_regional Phase 3 - gnomAD LoF population tolerance as Supporting benign (HELIX-CR-2026-057 Phase 3). Supporting benign (bp_count) for HIGH impact variants outside MANE CDS where gnomAD demonstrates regional LoF tolerance in healthy individuals. Builds on v3.24.0 informational signal.
- AD genes excluded - het LoF tolerance in AD is a different clinical argument. Compound het candidates excluded - they may contribute to biallelic LoF.
- Conditions: gls.gene_symbol IS NOT NULL, position outside MANE CDS, impact=HIGH, NOT compound_het_candidate, inheritance_mode IS NULL OR IN (AR, AD/AR, XL). Autosomal: max_nhomalt >= 2. X-linked: max_ac_hemi >= 2.
- Criteria string marker: BP_regional[gnomAD_LoF].
- gnomAD LoF population tolerance signal (HELIX-CR-2026-057 Phase 1). Boolean gnomad_lof_tolerant: gene has HC LoF variants with hom/hemi > 0 outside MANE CDS in gnomAD genomes. Phase 1 informational only, no ACMG criteria change.
- Reference data: gnomad_lof_tolerant_gene_summary table loaded. Aggregates max_nhomalt, max_ac_hemi, lof_variant_count per gene with example_variant audit trail.
- Activated by mt.gene_symbol IS NOT NULL (positional context mandatory) and position outside MANE CDS region.
- Phase 2 (CR-057 Phase 3, v3.25.0): gnomad_lof_tolerant signal is converted into BP_regional Supporting benign criterion.
- PVS1: Expression-aware guard using gnomAD v4.1 pext data (GTEx v10, GRCh38, 49 tissues). Per-exon max_tissue_pext modulates PVS1 application (HELIX-CR-2026-056, Cummings et al. 2020 PMID:32461655). Three tiers: max_tissue_pext >= 0.9 = PVS1 Very Strong (unchanged), 0.1-0.9 = PVS1_Strong[pext] (downgraded from Very Strong to Strong), < 0.1 = PVS1 blocked (exon not expressed). NULL pext = Very Strong (conservative fallback). PM4 receives binary pext guard (blocked at < 0.1).
- PVS1: 189,856 exon records for 18,923 MANE Select genes loaded from gnomAD v4.1 base-level pext TSV. Distribution: 56.3% full (>= 0.9), 42.5% downgrade (0.1-0.9), 1.2% block (< 0.1). Uses max_tissue_pext (maximum across 49 GTEx v10 tissues) to avoid false negatives for tissue-specific genes.
- PVS1: Human-readable annotations in acmg_criteria ("[PVS1 blocked: low exon expression (pext X.XX)]", "[PVS1 downgraded: partial exon expression (pext X.XX)]") and processing_notes (full sentence with gene name, threshold, source).
- Reference databases: gnomAD pext (v4.1, GTEx v10) and MANE Select transcripts (v1.4) added as reference data sources.
- Scientific basis: Cummings 2020 demonstrated that expression-based annotation selectively filters 22.8% of falsely annotated pLoF variants while removing less than 4% of true pathogenic variants.
- PVS1: MANE Select positional guard (HELIX-CR-2026-055, Abou Tayoun 2018 PMID:30192042). Variants outside the MANE Select/Plus Clinical CDS region do not receive PVS1 or PM4. Addresses false PVS1 application on variants annotated by VEP against non-canonical transcripts that extend beyond the canonical coding sequence.
- PVS1: 19,354 MANE transcripts (19,288 Select + 66 Plus Clinical) with CDS coordinates loaded from MANE GFF3 v1.4. LEFT JOIN with GROUP BY prevents row duplication for 66 genes with both Select and Plus Clinical transcripts.
- PVS1: Inline NULL-safe guards on 6 sites (pvs_count, ps_count/pvs1_last_exon, pm_count/pm4, has_pvs1_full, has_pvs1_last_exon, has_pm4). NULL MANE data = PVS1 applied (conservative fallback for genes not yet in MANE).
- Criteria string: [PVS1_BLOCKED:outside_MANE_CDS] marker appended for HIGH impact variants outside MANE CDS. Processing notes: PVS1_BLOCKED:outside_MANE_CDS(gene,mane_gene) audit trail.
- Clinical trigger: HG2022_057 FANCB chrX:14797196 p.Gln864Ter classified LP (PVS1+PM2) against non-canonical transcript ENST00000696353. Position is 46 kb upstream of MANE Select CDS (14,843,567-14,865,510). Reclassified to VUS (PM2 only).
- CLCN1 removed from AR_LOF_GENES (HELIX-CR-2026-053). Myotonia congenita has both AD (Thomsen) and AR (Becker) forms. Het LoF can cause AD Thomsen disease. CLCN1 receives AD/AR via dual HPO check.
- Annotation Phase 7.5: dual HPO inheritance detection (HELIX-CR-2026-051). Genes with both HP:0000006 (AD) and HP:0000007 (AR), confirmed by gene_disease_mechanism biallelic, now receive AD/AR instead of AD. 312 genes annotation improved.
- CYP11A1 added to AR_LOF_GENES. Congenital adrenal insufficiency, AR. OMIM #613743.
- PM2 frequency field alignment for VCEP FAF thresholds (HELIX-CR-2026-047). VCEP genes with pm2_frequency_field=af_grpmax now compare PM2 against af_grpmax instead of global_af. K1 bottlenecked NULL guard: af_grpmax NULL + global_af NOT NULL = PM2 not satisfied.
- PM2 criteria string audit trail: PM2[af_grpmax] and PM2_Supporting[af_grpmax] markers.
- BP1: reference-based missense mechanism guard (HELIX-CR-2026-044). BP1 blocked when gene is in refdb.clinvar_missense_genes (>= 2 ClinVar P/LP missense at 2+ stars). Extends session-local ClinVar guard with reference-level check.
- PP3_splice missense double-counting guard (HELIX-CR-2026-043). PP3_splice blocked when variant already receives PP3 from BayesDel missense path. ClinGen SVI: PP3 is a single criterion.
- BP1: GoF/DN gene guard (HELIX-CR-2026-039v2). BP1 blocked in GoF/DN genes where truncating variants do not cause disease via LoF. PLIN1 added to GOF_AD_GENES (DN mechanism, FPLD4).
- PVS1/PM3: Dual-mechanism gene guard (HELIX-CR-2026-037). gof_genes_exclusive view excludes 55 dual-mechanism genes from GoF guard, restoring PVS1/PM3 for AR LoF pathway.
- PM3: GoF/DN gene exclusion (HELIX-CR-2026-036). Compound het in pure GoF/DN genes no longer satisfies PM3. PM3 presupposes AR mechanism.
- Disease association gate: gene_disease_mechanism table added as 7th source in pvs1_disease_gate and gene_has_disease_association (HELIX-CR-2026-026). 256 genes in gene_disease_mechanism (G2P 225, GoFCards 35, manual 2) were not covered by existing 6 disease gate sources. Confidence filter: definitive/strong/moderate only (predicted excluded per CTO directive). Clinical trigger: SNRPN c.-391+1_-391+2insGA false VUS after v3.18.1 HI fix.
- Disease association gate: haploinsufficiency_score IS NOT NULL replaced with IN (2, 3, 30) in pvs1_disease_gate and gene_has_disease_association (HELIX-CR-2026-025). HI=0 (no evidence), HI=1 (little evidence), HI=40 (dosage sensitivity unlikely) no longer satisfy disease gate. 475 genes lost false disease association, 117 with no other disease source. Clinical trigger: SLC22A18 c.-133+2T>C false LP in gene without Mendelian disease.
- PVS1 GoF/DN guard: gof_genes_g2p view (198 genes) replaced by gof_genes_unified view (347 genes) as primary PVS1 GoF exclusion source (HELIX-REF-003 Phase 2A). gof_genes_unified draws from 3 sources: G2P (199 genes), GoFCards (179 genes), manual curation (27 genes). Dual-mechanism genes correctly excluded. GOF_AD_GENES Python constant retained as fallback.
- Reference database: gene_disease_mechanism table created in reference_db (2,617 records). Unified schema for molecular mechanism data from G2P, GoFCards, and manual curation. Columns: gene_symbol, disease_id, disease_name, mechanism (LoF/GoF/DN/GoE), confidence, source, allelic_requirement, pmid, curation_date, curator, last_reviewed, notes.
- Reference database: GoFCards Release 1.0 integrated (579 genes, 3,161 curated GoF variants). Gene-level aggregation threshold: 3+ variants, Pscore >= 2.0, at least 1 variant with animal or cell model evidence = confidence "strong". 217 genes qualified.
- Reference database: ClinGen Dosage Sensitivity full TSV integrated (1,626 genes, 23 columns). Replaces legacy 3-column clingen table. Backward-compatible clingen table recreated from full data.
- Reference: GoFCards PMID:39578693, ClinGen clinicalgenome.org, HELIX-REF-003.
- PVS1: 12 GoF/DN/GoE AD genes added to GOF_AD_GENES (HELIX-REF-003 Phase 2B). Systemic gap analysis: 28 AD genes depend ONLY on ClinGen AD Definitive path for PVS1, without mechanism check. 13 identified as HIGH risk (established non-LoF mechanism). TRAF7 deferred (insufficient germline functional evidence).
- Genes added: CALM2 (DN calmodulinopathy), CALM3 (DN calmodulinopathy), DNAJB6 (DN myofibrillar myopathy), GJB6 (DN deafness, ClinGen AR=Refuted), GREM1 (regulatory GoE), HSPB8 (toxic GoF CMT2L), INF2 (DN formin FSGS5), NEFL (DN neurofilament CMT), PRKAG2 (GoF AMPK activation), SKI (DN Shprintzen-Goldberg), TNNC1 (GoF Ca2+ sensitivity HCM), TUBB3 (DN microtubule CFEOM3A).
- Cross-referenced with LoGoFunc (variant-level GoF/LoF predictions), GoFCards (curated GoF variants), ClinGen Dosage (HI=0 signal), and G2P mechanism data.
- PVS1: ANKRD26 and C1QTNF5 added to GOF_AD_GENES (HELIX-CR-2026-024). ANKRD26: Thrombocytopenia 2, gain-of-expression mechanism - 5UTR mutations disrupt RUNX1/FLI1 silencing. ClinGen Dosage explicitly states "gain-of-function rather than haploinsufficiency". C1QTNF5: Late-onset retinal degeneration, dominant-negative mechanism - mutant destabilizes wildtype in gC1q domain co-expression.
- Clinical trigger: PD2025_095 ANKRD26 chr10:27044191 classified P [PVS1,PM2,PM3], should be VUS. C1QTNF5 chr11:119339479 received PVS1_Strong for frameshift despite all known pathogenic being missense.
- PVS1: G2P molecular mechanism integration (HELIX-CR-2026-023). DECIPHER Gene2Phenotype (G2P) database now provides primary GoF/DN guard for PVS1. gof_genes_g2p view contains 198 pure GoF/DN monoallelic genes where PVS1 is blocked. G2P is queried at classification time via reference_db ATTACH.
- PVS1: GOF_AD_GENES reduced from 36 to 14 fallback genes (genes not in G2P: 6 neurodegeneration/toxic aggregation, 3 somatic/neomorphic, 5 absent from G2P 2026-02-28). PRSS1 added to fallback (GoF trypsinogen autoactivation, clinical trigger PD2025_090).
- PVS1: GNAS removed from GOF_AD_GENES (dual-mechanism: McCune-Albright = GoF, pseudohypoparathyroidism 1A = LoF). G2P view correctly excludes GNAS. GNAS LoF variants now receive PVS1.
- PVS1: 49 dual-mechanism genes (SCN5A, LMNA, KCNH2, KCNQ1, FGFR1, etc.) excluded from GoF view, preserving PVS1 for legitimate LoF phenotypes.
- PVS1: G2P confidence filter: only definitive, strong, moderate included. Limited confidence excluded to prevent blocking PVS1 on weak GoF evidence.
- PVS1: Guard order: G2P view (primary) -> GOF_AD_GENES (fallback). Identical pattern to refdb.ar_lof_genes_clingen and refdb.disease_associated_genes_clingen.
- DECIPHER G2P: Molecular mechanism data (g2p_gene_mechanism table, 2,372 records) added to reference_db alongside existing HPO enrichment data (v3.12.0).
- Loader script: scripts/load_g2p_mechanism.py with dry-run, force flags, and 9-point validation (total records, mechanism distribution, view count, dual-mechanism exclusion, spot checks).
- Subtractive change: can only remove PVS1 from GoF/DN genes. Cannot create false P/LP.
- Clinical trigger: PD2025_090 PRSS1 p.Gly177Ter (stop_gained). GoF gene, PVS1 scientifically incorrect. BA1 protected in this case (AF 41%), but rare PRSS1 truncating variants without BA1 could reach LP[PVS1,PM2] incorrectly.
- Reference: Abou Tayoun 2018 PMID:30192042, Josephs 2023 PMID:37884986, HELIX-CR-2026-023.
- PVS1: GoF AD gene exclusion (HELIX-CR-2026-022). GOF_AD_GENES curated list (36 genes) blocks PVS1 for autosomal dominant genes where the disease mechanism is gain-of-function, dominant-negative, or toxic aggregation. ClinGen PVS1 Decision Tree Node 1: "Is LoF a known mechanism of disease?" - if NO, PVS1 not applicable.
- PVS1: GOF_AD_GENES categories: RAS/MAPK pathway (12 genes), receptor tyrosine kinases (10), PI3K/AKT/mTOR (2), GTPases (3), metabolic enzymes (2), kinases (2), neurodegeneration (6). Each gene documented with PMID for GoF mechanism.
- PVS1: ClinGen AD Definitive/Strong genes retain PVS1 access even if in GOF_AD_GENES - VCEP and ClinGen disease validity take precedence.
- Clinical trigger: PD2025_082 RAC1 p.Val14SerfsTer4 (frameshift in GoF gene). SOD1 discordance in same session.
- Reference: Abou Tayoun 2018 PMID:30192042, HELIX-CR-2026-022.
- LP classification: Disease association gate for LP rules LP4, LP5, LP6 (HELIX-CR-2026-021). LP rules that rely solely on moderate and supporting criteria now require established disease association via at least one of five sources (same as PVS1 and PP3_Strong gates).
- LP4 (>=3 PM), LP5 (2 PM + >=2 PP), LP6 (1 PM + >=4 PP): these rules can be satisfied by PM1+PM2+PM4 or similar combinations without any gene-disease evidence. Gate prevents LP classification in genes without known Mendelian disease mechanism.
- LP1, LP2, LP3 not gated: they require PVS or PS criteria, which already have their own disease association gates.
- Subtractive change: can only downgrade LP to VUS, cannot upgrade.
- PVS1: ClinGen AD Definitive/Strong genes bypass pLI/LOEUF constraint gate. Genes with ClinGen Gene-Disease Validity rating of Definitive or Strong for autosomal dominant inheritance now qualify for PVS1 regardless of population constraint metrics.
- PVS1: This addresses genes like TUBB1 (pLI near 0, LOEUF=1.586) with ClinGen AD Definitive that were excluded from PVS1 by the population constraint gate.
- ClinGen Gene-Disease Validity integration: ar_lof_genes_clingen and disease_associated_genes_clingen reference tables added to reference_db. Replaces in-memory Python constants for AR LoF gene list and disease association checks.
- PVS1 AR gene bypass now queries refdb.ar_lof_genes_clingen at classification time instead of Python AR_LOF_GENES constant.
- Disease association check now queries refdb.disease_associated_genes_clingen for PVS1, PP3_Strong, LP disease gates, and ClinVar override gate.
- Reference database count: 14 (previously 13).
- PM1: Critical functional domains migrated from Python constant (CRITICAL_PFAM_DOMAINS) to reference database table (refdb.interpro_pfam_domains). HELIX-CR-2026-012.
- PM1: Full InterPro Pfam catalog (27,481 entries) loaded into reference_db. 49 domains marked as critical (is_critical=true) across 14 categories.
- PM1: Pre-build approach - critical accessions loaded from refdb at classification time, OR LIKE clauses generated in Python. Zero performance regression vs v3.14.0.
- PM1: Adding a new critical domain is now a database UPDATE, not a code change + rebuild + deploy.
- InterPro / Pfam added as 13th reference database.
- Loader script: scripts/load_interpro_pfam.py with InterPro API fetch, JSON cache for offline fallback, and hard-fail validation.
- Reference: HELIX-CR-2026-012.
- PM1: CRITICAL_PFAM_DOMAINS converted from Pfam short names to InterPro-verified Pfam accession numbers (HELIX-CR-2026-011). VEP annotation records domain data as Pfam:PFxxxxx accession numbers, but PM1 SQL searched for short names (RyR, Pkinase, Ion_trans). Result: 0 legitimate PM1 applications since curated list introduction. Fix: all 49 domains now use verified accession numbers.
- PM1: Removed Rho (covered by PF00071 Ras superfamily, VEP confirms RAC1 annotated with PF00071) and Peptidase_S1 (covered by PF00089 Trypsin, VEP confirms F10 annotated with PF00089).
- PM1: Corrected accessions - Dynamin_N: PF01031 (Dynamin_M) corrected to PF00350 (Dynamin_N). PH: PF00168 (C2 domain) corrected to PF00169 (PH domain). FBN_EGF: mapped to PF00008 (EGF-like domain).
- PM1: All 49 accessions verified against InterPro REST API (ebi.ac.uk/interpro) on 2026-03-16. Domain coverage validated against patient VCF data (RYR1 PF01365, KRAS PF00071, KCNH2 PF00520, CDH23 PF00028, MYO7A PF00063, COL1A1 PF01391, CFTR PF00005, EGFR PF07714).
- PM1: Post-fix validation on HG2023_206: PM1 count increased from 2 (false positive) to 1,139 (legitimate). RYR1 c.6635T>C correctly receives PM1. CRYGD false positives eliminated. Zero B/LB classification changes.
- Clinical trigger: HG2023_206 RYR1 c.6635T>C (p.Val2212Ala) in RyR domain (Pfam:PF01365) classified VUS [PM2,PP3_Supporting] without PM1. CG classified LP. PM1 now applied: VUS [PM1,PM2,PP3_Supporting].
- Reference: HELIX-CR-2026-011, Richards et al. 2015 PMID:25741868, ClinGen SVI PM1 guidance.
- PVS1: ClinVar LOF evidence added as fifth constraint gate path (HELIX-CR-2026-010). Small autosomal dominant genes with ClinVar P/LP LOF variants (2+ review stars) but uninformative gnomAD constraint (pLI < 0.9, LOEUF >= 0.35, HI != 3) now qualify for PVS1 via CLINVAR_LOF_AD_GENES curated list.
- gene_has_disease_association: CLINVAR_LOF_AD_GENES added as sixth source in the disease association check.
- Clinical trigger: GCM2 p.Arg131Ter (stop_gained) in PD2025_098. GCM2 is a 5-exon AD gene for Familial hypoparathyroidism with ClinVar Pathogenic p.Tyr136Ter (2 stars) but pLI=0.0, LOEUF=1.205, HI=NULL. Now LP [PVS1,PM2].
- Reference: Abou Tayoun 2018 PMID:30192042, HELIX-CR-2026-010.
- PP3/BP4: Missense consequence guard (HELIX-CR-2026-009). PP3 BayesDel path (Strong/Moderate/Supporting) and BP4 BayesDel path (Moderate/Supporting) now require consequence = missense_variant. BayesDel_noAF is calibrated exclusively for missense variants (Pejaver et al. 2022).
- Clinical trigger: GCM2 p.Arg131Ter (stop_gained) in PD2025_098 received PP3_Strong (BayesDel=0.66) + PM2 = LP. Correct: PM2 only = VUS. 2 non-missense variants with false PP3_Strong eliminated.
- Subtractive change: can only downgrade (LP to VUS), cannot upgrade. PP3_splice (SpliceAI) unaffected.
- Reference: Pejaver 2022 PMID:36413997, Walker 2023 PMID:37352859, HELIX-CR-2026-009.
- HELIX-REF-001: Multi-Source HPO Enrichment Pipeline. HPO annotation expanded from single-source (HPO Consortium, 5,173 genes, 320K records) to multi-source enriched view (6 sources, 5,688 genes, 927K records, +10% gene coverage).
- HPO sources: HPO Consortium (primary), Orphanet disease-to-HPO via Orphadata XML (3,176 genes with frequency data), DECIPHER G2P from 7 clinical panels (2,125 genes), Monarch Initiative (4,791 genes), ClinVar-MedGen chain mapping from P/LP variants (5,258 genes), and manual clinical curation for common-disease genes.
- Enrichment depth: 3,292 existing genes received additional HPO terms. 515 net new genes added. 1,505 genes covered by all 5 automated sources.
- Source priority ordering: Orphanet > G2P > HPO Consortium > Monarch > ClinVar-MedGen. Low-confidence entries filtered from clinical view.
- PP4 criterion evaluates against enriched HPO set. No ACMG criteria logic changes.
- Data integrity validated: 0 NULLs, 0 invalid HPO IDs, 0 duplicate PKs across 926,930 records.
- PVS1: Non-canonical splice site variants excluded from PVS1 application. VEP consequence terms splice_donor_5th_base_variant (position +5), splice_donor_region_variant (positions +3 to +8), and splice_acceptor_5th_base_variant (acceptor position -5) now block PVS1. ClinGen PVS1 Decision Tree (Abou Tayoun et al. 2018) specifies canonical +/-1,2 splice sites only. Extended splice region variants retain access to PP3_splice (SpliceAI >= 0.2) at Supporting evidence level.
- Clinical trigger: PDE6B c.1401+4_1401+48del in PD2025_061 - VUS vs ClinVar Benign (2 stars). VEP annotates as splice_donor_5th_base_variant. PVS1 created false conflicting evidence (PVS1 vs BS1+BS2+BP6 = VUS).
- Impact: 2 of 18 splice_donor PVS1 variants affected in PD2025_061. 0 P/LP variants affected. Subtractive change (cannot create false P/LP).
- Log strings now use CLASSIFIER_VERSION constant instead of hardcoded version.
- Reference: HELIX-CR-2026-008, Abou Tayoun 2018 PMID:30192042.
- PVS1: NMD_transcript_variant no longer blocks PVS1. VEP NMD_transcript_variant annotation means the transcript UNDERGOES nonsense-mediated decay, which is additional evidence FOR loss-of-function, not against it. The exclusion now targets NMD_escaping_variant (transcripts that escape NMD - truncated protein expressed, may retain partial function).
- Previous behavior: frameshift_variant,NMD_transcript_variant -> PVS1 blocked. New behavior: frameshift_variant,NMD_transcript_variant -> PVS1 applies. frameshift_variant,NMD_escaping_variant -> PVS1 blocked (correct).
- Clinical trigger: HG2022_057 review (KCNN2 frameshift).
- Reference: VEP documentation (Ensembl), Abou Tayoun et al. 2018 PMID:30192042.
- De novo projection (PS2): Prospective computation of whether adding PS2 (confirmed de novo, Strong) would upgrade a VUS to LP or P. Identifies variants where trio confirmation has the highest clinical impact.
- Excludes: non-VUS, non-heterozygous, BA1 active, compound het candidates (biologically exclusive with de novo), and conflicting evidence variants.
- Minimum evidence guard (v3.11.2): PM2 alone is insufficient for de novo candidacy - requires at least one additional pathogenic criterion beyond PM2.
- De novo projection is informational only - it does not change the current ACMG classification. It flags variants where parental testing would resolve VUS status.
- disease_genes_clinvar CTE: Added review_stars >= 2 filter. The shared CTE that provides gene-level ClinVar disease association evidence (Source 1 of 5 in the disease association check) previously included all ClinVar P/LP genes without a star minimum. This created a circular reference: a 1-star ClinVar P/LP submission simultaneously triggered the ClinVar override AND provided the disease association evidence that allowed the v3.10.0 gate to pass. SHROOM2 (1-star Likely Pathogenic, zero disease association from Orphanet/ClinGen/AR_LOF_GENES/VCEP) self-validated its own gate.
- The review_stars >= 2 threshold is consistent with PS1 (ps1_min_stars = 2): a single unreviewed ClinVar submission does not constitute gene-level disease association evidence. Two or more independent submitters with concordant interpretation (2+ stars) provide meaningful gene-disease validation.
- Impact on PVS1 and PP3_Strong disease gates: minimal. Both gates reference the same CTE, but genes where PVS1 or PP3_Strong activate have redundant disease evidence from Orphanet, ClinGen haploinsufficiency, curated AR LoF gene list (~150 genes), or VCEP coverage. A gene relying solely on 1-star ClinVar for disease evidence is exactly the type of gene that should not receive PVS1 (Very Strong) or PP3_Strong.
- Clinical trigger: SHROOM2 p.Gly211Ser remained LP after v3.10.0 deployment. Now correctly classified as VUS (ClinVar_gated).
- ClinVar override: P/LP override with review_stars = 1 (single submitter, no peer review) now requires the gene to have an established disease association via at least one of five sources: ClinVar P/LP (gene-level), Orphanet entry, ClinGen haploinsufficiency score, curated AR LoF gene list (~150 genes), or VCEP coverage. Without this gate, a single ClinVar submission in a gene without any known Mendelian disease mechanism could promote a variant to Likely Pathogenic.
- ClinVar override: P/LP assertions with 2+ review stars (multiple concordant submitters) bypass the disease association gate. Benign and Likely Benign ClinVar overrides are not affected by this gate.
- ClinVar override: Gated variants (1-star P/LP in genes without disease association) fall through to standard ACMG scoring, which typically produces VUS when no ACMG criteria are activated.
- gene_has_disease_association: New boolean column in the criteria evaluation stage. Reuses the same 5-source disease check as the PVS1 gate (v3.8.0) and PP3_Strong gate (v3.8.1). Zero new data sources, zero performance overhead.
- clinvar_disease_gated: New audit trail boolean. The criteria string shows the "ClinVar_gated" prefix when the disease-association gate blocks a ClinVar P/LP override, identifying the gated variant for review.
- Clinical trigger: SHROOM2 p.Gly211Ser in PD2025_060 - classified as LP from a single ClinVar submission (1 star) in a gene with zero disease association across all five reference sources (Orphanet, ClinGen, HPO, VCEP, AR_LOF_GENES), zero constraint data (pLI/LOEUF/mis_z all NULL), and population frequency of 0.23%.
- Reference: HELIX-CR-2026-007, Ghosh et al. 2018 PMID:30311383 (limitations of single-submitter ClinVar entries).
- PVS1: Last-exon truncating variants downgraded from Very Strong (+8 points) to Strong (+4 points). ClinGen PVS1 Decision Tree (Abou Tayoun et al. 2018) Figure 1, Node 3: truncating variants in the last exon escape nonsense-mediated mRNA decay (NMD) because there is no downstream exon-exon junction complex.
- PVS1: is_last_exon detection uses VEP exon_number column (format X/Y, last exon when X == Y). NULL or missing format defaults to Very Strong (conservative fallback). Single-exon genes (1/1) correctly receive PVS1_Strong.
- PVS1: Criteria string shows PVS1 for Very Strong (non-last-exon) and PVS1_Strong for last-exon downgraded variants. Consistent with PP3_Strong, BP4_Moderate naming convention.
- PVS1: PP3_splice double-counting guard unchanged - uses original PVS1 condition covering both Very Strong and Strong paths.
- PVS1: AR_LOF_GENES last-exon downgrade applies regardless of inheritance mode. NMD escape is a biophysical mechanism independent of AD/AR inheritance.
- PVS1: Classification impact - PVS1_Strong + PM2 = 6 points = Likely Pathogenic (most common minimal combination unaffected). PVS1_Strong + PS1 drops from Pathogenic to Likely Pathogenic.
- Clinical trigger: PD2025_058 review (MYO6 p.Lys972GlufsTer5, exon 27/32 - NOT last exon, unaffected by change).
- Reference: Abou Tayoun et al. 2018 PMID:30192042.
- BP1: ClinVar pathogenic missense guard - BP1 no longer applies when ClinVar has a Pathogenic missense variant in the same gene. If ClinVar confirms pathogenic missense, the BP1 premise is falsified. Uses session-local ClinVar data.
- BP1: Clinical trigger - MCCC2 p.Val339Met in PD2025_099 received BP1 despite being ClinVar Pathogenic missense. AR enzyme genes have low mis_z but pathogenic homozygous missense.
- PP3_Supporting: Criteria string label changed from PP3 to PP3_Supporting for consistency with PP3_Strong and PP3_Moderate. ClinGen SVI (Walker et al. 2023) recommends explicit evidence strength labeling.
- PP3_Strong: Disease association gate - PP3_Strong (BayesDel >= 0.518, Strong evidence level) now requires the gene to have an established disease association via at least one of five sources: ClinVar P/LP (gene-level), Orphanet gene-disease entry, ClinGen haploinsufficiency score, curated AR LoF gene list, or VCEP coverage.
- PP3_Strong: Without this gate, PP3_Strong + PM2 could reach Likely Pathogenic in genes without any known Mendelian disease mechanism. Clinical trigger: PD2025_056 identified POU2F2 p.Val324Met and RYR3 p.Arg285Gln as false LP classifications.
- PP3_Strong: Scientific basis - Pejaver et al. 2022 calibrated BayesDel on ClinVar variants in disease genes; Walker et al. 2023 (ClinGen SVI) Section 3.2 restricts PP3/BP4 calibrated thresholds to genes with established disease mechanism.
- PP3_Moderate and PP3_Supporting are NOT gated by disease association (cannot reach LP alone).
- PP3_splice path unchanged (splice prediction independent of missense disease mechanism).
- PVS1: Disease association gate - PVS1 now requires the gene to have an established disease association via at least one of five sources: ClinVar P/LP (gene-level), Orphanet gene-disease entry, ClinGen haploinsufficiency score, curated AR LoF gene list (~150 genes), or VCEP coverage. Population constraint (pLI/LOEUF) alone is no longer sufficient.
- PVS1: Genes with high pLI but no known Mendelian disease mechanism (e.g., TTC28, ABL1, HTT) are correctly excluded from PVS1. Gene audit across 5 validation cases: 250 genes blocked, 92 genes pass, ACMG SF v3.2 safety check passed (0 of 81 genes affected).
- PVS1: Reference: Abou Tayoun et al. 2018 (ClinGen PVS1 Decision Tree) - "PVS1 is applicable when loss of function is a known mechanism of disease." HELIX-CR-2026-003.
- BS1: Constraint-implied AD fallback - when no inheritance mode data exists from any source (Orphanet, ClinGen, HPO) but the gene is LoF-constrained (pLI > 0.9 or LOEUF < 0.35), BS1 uses the AD threshold (0.1%) instead of the AR default (5%). Resolves the architectural inconsistency where PVS1 treated a gene as AD-haploinsufficient but BS1 treated it as AR.
- BS1: Explicit Orphanet AR and curated AR_LOF_GENES added as cascade priorities 5-6, so explicit AR evidence overrides constraint-implied AD inference.
- BS1: Cascade expanded from 5 to 8 levels: VCEP > ClinGen HI > Orphanet AD > Orphanet XLD > HPO AD > Orphanet AR > AR_LOF_GENES > Constraint-implied AD > Default AR.
- BS1: Criteria string now includes BS1[Orphanet-AR] and BS1[constraint-AD] source annotations.
- Reference databases: Orphanet/Orphadata and VCEP gene-specific specifications now documented as separate reference databases (9 total, previously 7).
- Clinical validation: TTC28 p.Arg21Ter (PD2025_100) changes from LP to VUS. Discordance analysis: frequency_conflict CRITICAL findings reduced from 1 to 0.
- BS1: Orphanet inheritance cascade for inheritance-aware frequency thresholds. 5-level priority: VCEP gene-specific -> ClinGen HI score=3 -> Orphanet AD -> Orphanet XLD -> HPO AD fallback -> AR default.
- BS1: Orphanet AD coverage: 1,694 autosomal dominant genes (4x improvement over ~400 from ClinGen HI alone).
- BS1: XLD/XLR distinction: X-linked dominant genes (90) receive AD threshold (0.1%); X-linked recessive genes (663) receive AR default (0.05%). XL-unspecified mapped to XLR as conservative default.
- BS1: HPO AD fallback (HP:0000006) as Priority 4 catches AD genes not in Orphanet (e.g. KCNQ1, KCNH2 - also covered by ClinGen HI).
- BS1: Criteria string now includes inheritance source annotation: BS1[ClinGen-HI], BS1[Orphanet-AD], BS1[Orphanet-XLD], BS1[HPO-AD].
- Reference DB: orphanet_gene_inheritance table added (3,197 genes, LEFT JOIN at classification time, <2ms overhead).
- Data source: Orphadata CC-BY-4.0 (INSERM, France). Covers ~6,100 rare diseases with gene-disease-inheritance annotations.
- Validation: 9/10 known AD genes confirmed (KCNJ11, GCK, HNF1A, FGFR3, SCN1A, etc.), 4/4 AR-only genes unchanged, 5/5 dual-inheritance genes correct.
- BP1: Added mis_z < 2.0 guard to prevent BP1 in missense-constrained genes.
- BP1: Genes with pLI < 0.1 AND mis_z >= 2.0 (e.g. KCNJ11, ABCC8, KCNQ1, SCN1A) have missense as primary disease mechanism - BP1 ("primarily truncating variants cause disease") is factually incorrect for these genes.
- Clinical validation: KCNJ11 p.Leu270Val correctly loses BP1 after this change.
- PP3: Missense relevance guard added. PP3 (BayesDel) now requires evidence that missense variants cause disease in the gene before applying computational prediction.
- PP3 guard has four gates: (1) mis_z > 2.0 for direct missense constraint, (2) mis_z > 1.5 AND pLI < 0.5 for AR genes like BRCA2/MLH1/ATM, (3) mis_z > 0.5 AND pLI > 0.9 for strong AD LoF-intolerant genes, (4) NULL fallback for genes without mis_z but with pLI > 0.5.
- PP3_splice path unchanged (splice prediction independent of missense mechanism).
- BP4 unchanged (benign prediction consistent with low missense constraint).
- Scientific basis: Pejaver et al. 2022 calibrated BayesDel on missense-mechanism genes; applying to LoF-mechanism genes is methodologically incorrect.
- PM1: Curated CRITICAL_PFAM_DOMAINS list (~60 domains) replaces generic Pfam presence check.
- PM1: Only well-characterized functional domains with documented pathogenic variant clustering trigger PM1.
- PM1: Excluded domains: generic structural (Caveolin, coiled-coil), DUF, transmembrane helices, repetitive regions.
- PM1: Included domains: kinase catalytic (PF00069, PF07714), DNA-binding (PF00870, PF00505, PF00096, PF00533), ion channel pores (PF00520, PF00029, PF01365), GTPase (PF00071), enzyme active sites (PF00089), and ~40 additional VCEP-documented domains. Domain matching uses Pfam accession numbers since v3.14.0.
- Scientific basis: ACMG 2015 requires PM1 for "critical and well-established functional domain without benign variation" - not any Pfam annotation.
- PP2: Now requires mis_z > 2.0 in addition to pLI > 0.5.
- PP2: ACMG 2015 requires "missense variants are a common mechanism of disease" - pLI alone measures LoF constraint, not missense constraint.
- PP2: mis_z > 2.0 indicates that the gene is missense-constrained (Samocha et al. 2014, Karczewski et al. 2020).
- Genes like CAV1 (pLI=0.846, mis_z=0.86) with LoF disease mechanism no longer incorrectly trigger PP2.
- PVS1: AR LoF gene list expanded from approximately 35 to approximately 150 genes
- AR LoF gene list covers all major AR disease categories: neurodegeneration, metabolic (amino acid, fatty acid oxidation, glycogen storage, lysosomal, peroxisomal), ciliopathies, sensory (hearing, vision), immune/hematologic, cardiac, neuromuscular, connective tissue, kidney, endocrine, liver, and respiratory
- Every gene in the curated list has ClinGen Definitive/Strong validity or equivalent published evidence for biallelic LoF disease mechanism
- VCEP AR genes (CDH23, GJB2, MYO7A, PAH, SLC26A4, USH2A) handled via VCEP pvs1_applicable gate, not duplicated in curated list
- Homozygous reference genotype guard: variants with genotype hom_ref (0/0) excluded from ACMG classification
- hom_ref variants arise from multi-allelic VCF sites where the sample has 0 ALT reads for a specific allele but was included due to another ALT allele at the same position
- Without this guard, hom_ref frameshift/stop variants in LoF-intolerant genes received PVS1+PM2 = Likely Pathogenic despite not being present in the patient
- 20 false Pathogenic/Likely Pathogenic classifications eliminated in validation (Case 19)
- PM2: NULL gnomAD allele frequency now correctly satisfies PM2 (absent from controls = never observed in ~800K individuals)
- PM2: Previous behavior required frequency data to be present (non-NULL), incorrectly excluding truly absent variants
- PVS1: Curated AR LoF gene list (~35 genes) replaces broad HPO-based bypass (v3.6 used HP:0000007 with 3,127 AR genes - too broad, caused 43 false Likely Pathogenic)
- PVS1: Curated list includes only genes with Definitive/Strong evidence for biallelic LoF disease mechanism (ClinGen Gene-Disease Validity, literature)
- PVS1: Autosomal recessive genes bypass pLI/LOEUF constraint gate using HPO inheritance annotation (HP:0000007)
- PVS1: Aligned with ClinGen PVS1 Decision Tree (Abou Tayoun et al. 2018) which does not require population constraint for genes with established LoF disease mechanism in recessive inheritance
- HPO database now used for PVS1 AR gene identification in addition to PP4 phenotype matching
- Note: HPO-based bypass replaced by curated gene list in v3.6.1 due to excessive breadth
- ClinGen VCEP gene-specific specification overlay (optional, enabled by default)
- BA1, BS1, PM2: gene-specific frequency thresholds from published VCEP specifications (~50-60 genes)
- PVS1: gene-specific applicability gate (disabled for gain-of-function genes)
- VCEP audit trail: criteria string includes [VCEP:Panel vX.Y] marker when gene-specific thresholds applied
- VCEP toggle: can be enabled/disabled per case in case settings
- Source: ClinGen Criteria Specification Registry (CSpec)
- Bayesian point-based classification framework (Tavtigian et al. 2018, 2020) replaces sequential 18-rule evaluation
- All 18 original ACMG combining rules produce identical results under the point system (backward compatible)
- Point system fills gaps: evidence combinations not covered by original 18 rules now classified properly
- PP3/BP4: BayesDel_noAF single-tool replaces weighted 6-predictor consensus (ClinGen SVI calibration, Pejaver et al. 2022)
- PP3 evidence strength modulation: Strong (>= 0.518), Moderate (0.290-0.517), Supporting (0.130-0.289)
- BP4 evidence strength modulation: Moderate (<= -0.361), Supporting (-0.360 to -0.181)
- PM1 + PP3 double-counting guard: combined evidence capped at Strong equivalent (4 points)
- Continuous confidence scores derived from point distance to classification threshold boundary
- Conflicting evidence handled by point summation instead of a binary VUS default
- High-confidence conflict safety check: Strong/Very Strong pathogenic vs. Strong benign flagged for manual review
- Legacy predictors (SIFT, AlphaMissense, MetaSVM, DANN, PhyloP, GERP) retained as display data only
- SpliceAI PP3 threshold aligned to ClinGen SVI 2023 recommendation (lowered from 0.5 to 0.2)
- PP3_splice excluded when PVS1 applies (ClinGen SVI double-counting guard)
- BP7 upgraded: synonymous + not splice_region + SpliceAI <= 0.1 (Walker et al. Figure 4)
- BP7 conservation filter intentionally omitted per Walker et al. Table S13
- Evidence strength modulation (PP3_Moderate for high SpliceAI) deferred pending VCEP specifications
- SpliceAI integration: PP3_splice path for splice evidence
- BP4 SpliceAI guard: requires max_score < 0.1 for benign consensus
- Criteria string distinguishes PP3 (missense) from PP3_splice (splice)
- Maximum sensitivity approach: removed all frequency and impact pre-filtering
- All quality-passing variants proceed through classification
- Clinicians decide clinical relevance using classification + annotations
- Conflicting evidence priority: pathogenic + benign evidence produces VUS
- BA1 stand-alone override: allele frequency > 5% always classified Benign
- ClinVar override restricted to non-conflicting evidence only
- SQL-based classification engine (100x performance improvement)
- PM2: required non-NULL frequency data (corrected in v3.6.1)
References
- Tavtigian SV, Greenblatt MS, Harrison SM, et al. Modeling the ACMG/AMP variant classification guidelines as a Bayesian classification framework. Human Mutation. 2018;39(11):1485-1492. PMID: 30311386
- Tavtigian SV, Harrison SM, Boucher KM, Biesecker LG. Fitting a naturally scaled point system to the ACMG/AMP variant classification guidelines. Human Genetics. 2020;139(8):1057-1067. PMID: 32666219
- Pejaver V, Byrne AB, Feng BJ, et al. Calibration of computational tools for missense variant pathogenicity classification and ClinGen recommendations for PP3/BP4 criteria. American Journal of Human Genetics. 2022;109(12):2163-2177. PMID: 36413997
- Richards S, Aziz N, Bale S, et al. Standards and guidelines for the interpretation of sequence variants: a joint consensus recommendation of the American College of Medical Genetics and Genomics and the Association for Molecular Pathology. Genetics in Medicine. 2015;17(5):405-424. PMID: 25741868
- Walker LC, Hoya M, Wiggins GAR, et al. Using the ACMG/AMP framework to capture evidence related to predicted and observed impact on splicing: Recommendations from the ClinGen SVI Splicing Subgroup. American Journal of Human Genetics. 2023;110(7):1046-1067. PMID: 37352859
- Jaganathan K, Kyriazopoulou Panagiotopoulou S, McRae JF, et al. Predicting Splicing from Primary Sequence with Deep Learning. Cell. 2019;176(3):535-548.e24. PMID: 30661751
- Karczewski KJ, Francioli LC, Tiao G, et al. The mutational constraint spectrum quantified from variation in 141,456 humans. Nature. 2020;581(7809):434-443. PMID: 32461654
- Cheng J, Novati G, Pan J, et al. Accurate proteome-wide missense variant effect prediction with AlphaMissense. Science. 2023;381(6664):eadg7492. PMID: 37733863
- McLaren W, Gil L, Hunt SE, et al. The Ensembl Variant Effect Predictor. Genome Biology. 2016;17(1):122. PMID: 27268795
- Landrum MJ, Lee JM, Benson M, et al. ClinVar: improving access to variant interpretations and supporting evidence. Nucleic Acids Research. 2018;46(D1):D1062-D1067. PMID: 29165669
- Abou Tayoun AN, Pesaran T, DiStefano MT, et al. Recommendations for interpreting the loss of function PVS1 ACMG/AMP variant criterion. Human Mutation. 2018;39(11):1517-1524. PMID: 30192042
- Josephs KS, Roberts AM, Grozeva D, et al. Beyond gene-disease validity: capturing structured data on inheritance, allelic requirement, disease-relevant variant classes, and mechanism for inherited cardiac conditions. Genome Medicine. 2023;15:86. PMID: 37884986
- Cummings BB, Karczewski KJ, Kosmicki JA, et al. Transcript expression-aware annotation improves rare variant interpretation. Nature. 2020;581(7809):452-458. PMID: 32461655
Questions About Our Methodology?
Clinical geneticists and laboratory directors can contact us with technical questions about the classification method.