- name
- bio-clinical-databases-acmg-classification
- description
- Applies ACMG/AMP 2015 framework with ClinGen SVI specifications, Tavtigian 2018/2020 Bayesian point system, Abou Tayoun 2018 PVS1 decision tree, Pejaver 2022 and Bergquist 2025 calibrated PP3/BP4 thresholds for REVEL/BayesDel/AlphaMissense, Brnich 2020 PS3/BS3 OddsPath, Walker 2023 SpliceAI splicing framework, and AMP/ASCO/CAP 2017 tumor tiers. Use when classifying germline variants P / LP / VUS / LB / B, applying VCEP-specific CSpec rules, computing Whiffin BS1, or assigning cancer Tier I-IV per Li 2017.
- tool_type
- python
- primary_tool
- requests
## Version Compatibility
Reference examples tested with: requests 2.31+, pandas 2.2+, AutoPVS1 (Xiang 2020), InterVar 2.2+, GeneBe 1.0+ (Stawiński 2024 *Clin Genet*). ACMG/AMP Bayesian point system is Tavtigian 2018 *Genet Med* / 2020 *Hum Mutat*. Pejaver 2022 *AJHG* PP3/BP4 calibrated thresholds. ClinGen Splicing Subgroup 2023 (Walker *AJHG*). v3.2 ACMG SF list (Miller 2023). The ACMG 2.0 framework is in development as of May 2026; not yet published.
Before using code patterns, verify installed versions match. If versions differ:
- Python: `pip show <package>` then `help(module.function)` to check signatures
- CLI: `<tool> --version`
If code throws ImportError, AttributeError, or TypeError, introspect the installed package and adapt the example to match the actual API rather than retrying. VCEP-specific CSpec rules override default ACMG application; the authoritative directory is `https://cspec.genome.network/cspec/ui/svi/all`.
# ACMG/AMP Variant Classification Framework
**'Classify this variant per ACMG/AMP'** -> Apply 28-criterion framework using Tavtigian point system; gate on ClinGen SVI specifications and VCEP-specific overrides; assign P / LP / VUS / LB / B classification with evidence trail.
- Python (automated): GeneBe API `https://api.genebe.net/cloud/api-public/v1/variant`
- Python (rule-based): InterVar -> `python InterVar.py -i input.vcf -b hg38 --table_annovar table_annovar.pl`
- Web tools: VarSome (commercial), Franklin/Genoox (commercial), ClinGen VCI (gold standard for SVI)
- Citation: Richards 2015 *Genet Med* 17:405 (original framework); Tavtigian 2020 *Hum Mutat* 41:1734 (point system)
## The Tavtigian Bayesian Point System: The Engine Inside All Modern Classifiers
Richards 2015 specified 28 criteria with strength labels (Supporting / Moderate / Strong / Very Strong); combination rules produced P / LP / VUS / LB / B. **Tavtigian 2018/2020 demonstrated this framework is mathematically a Bayesian classifier and proposed the naturally-scaled point system that every modern automated classifier implements:**
| Strength | Points | Odds of pathogenicity |
|----------|--------|----------------------|
| Supporting | 1 | 2.08:1 |
| Moderate | 2 | 4.33:1 |
| Strong | 4 | 18.7:1 |
| Very Strong | 8 | 350:1 |
Benign codes are negative-signed. Final classification:
| Sum of points | Category |
|---------------|----------|
| >= 10 | **Pathogenic** |
| 6-9 | **Likely Pathogenic** |
| 0-5 | **VUS** |
| -1 to -6 | **Likely Benign** |
| <= -7 | **Benign** |
InterVar / GeneBe / VarSome / Franklin all implement Tavtigian point summation under the hood. Combinations never appearing in the 2015 combining rules (e.g., PVS1_VeryStrong + PM2_Supporting -> LP) emerge naturally from point arithmetic.
## PVS1 Decision Tree (Abou Tayoun 2018 *Hum Mutat* 39:1517)
PVS1 is the most consequential code: pathogenic Very Strong (8 points) for predicted loss-of-function in a gene where LoF is established disease mechanism. The 2018 decision tree refined PVS1 from a binary into a graded code based on:
1. **Variant type**: nonsense / frameshift / canonical +-1,2 splice / initiation codon / single-exon deletion / multi-exon deletion.
2. **NMD prediction**: variant in 5'-most exon OR >50bp upstream of last exon-exon junction -> NMD-triggered. Else truncated protein.
3. **Critical region**: removal of >10% of coding sequence OR removal of a critical functional domain.
4. **Alternative isoform**: does the variant affect a transcript expressed in disease-relevant tissue?
Output strengths:
| Output | Original Strength |
|--------|-------------------|
| PVS1_VeryStrong | Strongest (Very Strong) |
| PVS1_Strong | Strong |
| PVS1_Moderate | Moderate |
| PVS1_Supporting | Supporting |
**Subsumption rule** (Abou Tayoun 2018): PVS1 + PP3 -> only PVS1 counts (PP3 is subsumed). Same for PVS1 + PM4.
**>15 VCEP-specific PVS1 trees exist** as of 2024 (CDH1, ENIGMA BRCA1/2, FH LDLR/APOB/PCSK9, InSiGHT MMR, RASopathies, hearing loss, hypertrophic cardiomyopathy, Rett/Angelman, etc.). The automated implementation is **AutoPVS1** (Xiang 2020).
## Pejaver 2022 PP3/BP4 Calibrated Thresholds (the load-bearing 2024+ calibration)
Pejaver 2022 *AJHG* 109:2163 Bayesian-calibrated 13 missense predictors to PP3/BP4 strength levels using ClinVar P/B variants with leave-one-gene-out cross-validation.
| Predictor | BP4_Strong | BP4_Moderate | BP4_Supporting | PP3_Supporting | PP3_Moderate | PP3_Strong | Fails when |
|-----------|-----------|--------------|----------------|----------------|--------------|------------|-----------|
| **REVEL** | <= 0.016 | <= 0.183 | <= 0.290 | >= 0.644 | >= 0.773 | >= 0.932 | Stacked with BayesDel/VEST4 (training overlap; double-counting) |
| **BayesDel (no AF)** | n/a | <= -0.36 | <= -0.18 | >= 0.13 | >= 0.27 | >= 0.50 | No BP4_Strong reached; combine no-AF version with PM2_Supporting |
| **VEST4** | n/a | <= 0.302 | <= 0.449 | >= 0.764 | >= 0.861 | >= 0.965 | No BP4_Strong reached; indels (missense-trained); regulatory variants |
| **MutPred2** | (Pejaver 2022) | -- | -- | -- | -- | -- | Genes with sparse MAVE training data |
| **AlphaMissense** | NOT ClinGen-endorsed | -- | -- | Use as supporting only | -- | NOT ClinGen-endorsed | Developer threshold 0.564 misapplied as PP3 |
**The numbers to memorize: REVEL >= 0.932 = PP3_Strong; REVEL <= 0.016 = BP4_Strong (<= 0.003 BP4_VeryStrong); the 0.290-0.644 band is indeterminate (no criterion).**
**AlphaMissense calibration** (Bergquist 2025 *Genet Med* 27:101402, ClinGen SVI; originally Bergquist et al. bioRxiv 2024.09.17): this ClinGen SVI calibration extends the graded PP3/BP4 options to AlphaMissense, reaching **PP3_Strong** and at least **BP4_Moderate**. **Critical:** the developer-recommended 0.564 threshold is NOT the calibrated PP3 threshold; verify the current ClinGen SVI recommendation for the exact score cutoffs before applying.
**Do not stack predictors.** REVEL, BayesDel, VEST4 share ClinVar/HGMD training data; using REVEL >= 0.773 AND BayesDel >= 0.27 to claim "two independent moderate hits" is double-counting. Pejaver 2022 explicitly recommends using ONE predictor per variant.
## PM2_Supporting (ClinGen SVI 2020)
The original PM2 ("absent from controls") was over-weighted. SVI 2020 downgraded to **PM2_Supporting** (1 point, not 2). Mechanism: most rare variants are benign. Empirical recalibration showed ~6 variants per gene downgrade from LP to VUS when PM2 -> Supporting. Many 2017-2019 LP curations require re-classification post-SVI 2020 update.
## PS3/BS3 Functional Evidence (Brnich 2020 *Genome Med* 12:3)
OddsPath framework; the four-step SOP:
1. Define disease mechanism for the gene.
2. Evaluate assay class (e.g., MAVE, biochemical, animal model).
3. Evaluate specific assay instance (controls, replicate consistency).
4. Apply per-variant.
OddsPath calibration mapping to ACMG strengths:
| OddsPath | Pathogenic strength | Benign strength |
|----------|--------------------:|----------------:|
| > 18.7 | Very Strong | n/a |
| 4.3 - 18.7 | Strong | -- |
| 2.1 - 4.3 | Moderate | -- |
| 1.2 - 2.1 | Supporting | (mirror) |
**MAVEdb deep-mutational scans** with >=11 controls (>=5 P/LP + >=5 B/LB) can yield up to PS3_Strong/BS3_Strong via OddsPath calibration. This is the entry point for MAVE/saturation-mutagenesis evidence into ACMG.
**Default-Strong PS3 application is increasingly over-strengthening** without OddsPath calibration; ClinGen SVI recommends moving toward PS3_Moderate as default unless OddsPath > 4.3.
## ClinGen SVI Splicing Subgroup 2023 (Walker *AJHG* 110:1046)
**SpliceAI is the recommended primary splicing tool.** Calibrated thresholds:
| SpliceAI DS_max | Strength (Walker 2023: computational splice codes applied at Supporting weight) |
|-----------------|----------|
| >= 0.2 | PP3_Supporting (minimum threshold for ANY splicing PP3) |
| 0.1 - 0.2 | Indeterminate (no criterion) |
| <= 0.1 | BP4_Supporting |
SpliceAI prediction alone does NOT reach PP3_Strong; strength escalation requires experimental/RNA splicing evidence (PS3) or the repurposed PVS1 route.
**SpliceVault / 300K-RNA** (Dawes 2023 *Nat Genet* 55:324): does NOT predict whether a variant is splice-altering; predicts WHAT the aberrant transcript will be (which exon skips, which cryptic site activates). 96% sensitivity for exon-skipping; 86% for cryptic site activation in 140 clinical RNA-tested cases. Critical for PVS1 application to splice variants because PVS1 depends on whether the aberrant transcript triggers NMD.
**Pangolin** (Zeng 2022 *Genome Biol* 23:103): SpliceAI improvement for cryptic donor sites; not yet ClinGen-endorsed but increasingly used as tiebreaker.
## BS1 / BA1 (Whiffin Max-Credible-AF)
BA1 default: AF > 5% in non-bottleneck group per ClinGen SVI; VCEP-specific overrides (Hearing Loss VCEP uses 0.5% AR).
BS1 gene-specific: `(prevalence x heterogeneity x allelic-contribution) / (penetrance x 2)` from Whiffin 2017 *Genet Med* 19:1151. Compare against gnomAD `grpmax_faf95`.
See `clinical-databases/gnomad-frequencies` for FAF95 details.
## ClinGen VCEP CSpec Hierarchy
| Layer | Authority | Application |
|-------|-----------|-------------|
| Generic ACMG/AMP 2015 | Richards 2015 | Default fallback |
| ClinGen SVI specifications | SVI Working Group | Overrides generic for all genes (PM2 -> Supporting; AutoPVS1 trees; etc.) |
| VCEP-specific CSpec | Gene/disease-specific expert panel | Overrides SVI for that gene-disease |
**ClinGen VCEP CSpec authoritative registry:** `https://cspec.genome.network/cspec/ui/svi/all`. ~80-90 VCEPs as of 2025. Examples:
- Hearing Loss VCEP: PM2 -> supporting default; PS3 thresholds upgraded for OTOF; BA1 lowered to 0.5% AR.
- ENIGMA BRCA1/2 VCEP: gene-specific PVS1 trees with NMD escape rules; PS4 case-control thresholds.
- Inherited Cardiac Conditions VCEP: gene-specific PS4 (5+ unrelated probands for PS4_Supporting).
**Apply VCEP CSpec when one exists.** Generic ACMG with no VCEP awareness is unreliable for many genes.
## Cancer Somatic Framework (Li 2017 *J Mol Diagn* 19:4)
AMP/ASCO/CAP somatic variant interpretation; four tiers:
| Tier | Definition | Action |
|------|-----------|--------|
| **Tier I-A** | FDA-approved drug for same tumor type with this biomarker | On-label therapy |
| **Tier I-B** | Professional guidelines (NCCN, ESMO) | Standard-of-care |
| **Tier II-C** | FDA drug in different tumor type (off-label) | Basket trials |
| **Tier II-D** | Preclinical / investigational | Research |
| **Tier III** | VUS-somatic | Watch list |
| **Tier IV** | Benign-somatic | Filter out |
**Knowledgebases:** OncoKB (MSKCC; Chakravarty 2017), CIViC (Griffith 2017 *Nat Genet* 49:170), CGI (Tamborero 2018), JAX-CKB, COSMIC. **OncoKB Levels** (1-4 therapeutic) map to AMP tiers loosely.
The **Variant Interpretation for Cancer Consortium (VICC) Meta-Knowledgebase** standards (2024-2025) harmonize across knowledgebases. ClinGen Somatic VCEPs are emerging (started 2022).
## Decision Tree by Variant Type
| Variant type | Recommended workflow |
|--------------|----------------------|
| Predicted LoF in known LoF-mechanism gene | AutoPVS1 decision tree -> PVS1_VeryStrong/Strong/Moderate/Supporting; check VCEP-specific PVS1 |
| Missense in known missense-pathogenic gene | Apply Pejaver 2022 PP3/BP4 calibrated thresholds; ONE predictor only |
| Splice variant | SpliceAI DS_max + SpliceVault for aberrant-transcript prediction; PP3_Supporting if DS_max >=0.2 (strength escalation needs RNA/experimental evidence) |
| Synonymous | SpliceAI for cryptic splice effect; synVep / PrimateAI synonymous extension |
| Variant in ACMG SF v3.2 gene | Apply full classification; flag P/LP for opt-in disclosure |
| Cancer somatic variant | AMP/ASCO/CAP 2017 Tier I-IV; cross-check OncoKB / CIViC |
| Variant in Limited gene-disease validity | ClinGen Strong/Definitive required for clinical action |
| Functional evidence available | Brnich 2020 PS3/BS3 OddsPath framework |
| Family segregation | PP1 / BS4 LOD score per Biesecker 2024 |
| In-trans observations (AR) | PM3 with ClinGen tabular scoring system |
| HGVS-c on alternative transcript | Re-evaluate on MANE Select |
## Standard Workflow: ACMG Classification
**Goal:** Apply ACMG/AMP framework to a candidate variant with proper SVI specifications and VCEP overrides.
**Approach:** Pull aggregated evidence; apply Pejaver-calibrated in-silico thresholds; check VCEP-specific CSpec; sum Tavtigian points.
```python
import requests
import pandas as pd
# Pejaver 2022 calibrated REVEL thresholds (one-predictor rule applies)
REVEL_THRESHOLDS = {
'BP4_VeryStrong': (-float('inf'), 0.003),
'BP4_Strong': (0.003, 0.016),
'BP4_Moderate': (0.016, 0.183),
'BP4_Supporting': (0.183, 0.290),
# (0.290, 0.644) = indeterminate zone, no criterion applied
'PP3_Supporting': (0.644, 0.773),
'PP3_Moderate': (0.773, 0.932),
'PP3_Strong': (0.932, float('inf'))
}
# Tavtigian point assignments (Tavtigian 2020 Hum Mutat)
STRENGTH_POINTS = {
'PVS1_VeryStrong': 8, 'PVS1_Strong': 4, 'PVS1_Moderate': 2, 'PVS1_Supporting': 1,
Ver no GitHub