Skip to main content

acmg-points

ci DOI coverage no dependencies scheme rules License: MIT

Points-based ACMG/AMP variant classification, side by side with the 2015 combining rules — so you can see exactly where the two systems disagree on your evidence.

ClinGen is moving variant classification from the 2015 combining rules to a points system (Tavtigian 2020, the basis of the forthcoming SVC v4). Most labs still reason in 2015 rules; most calculators implement one system or the other. acmg-points runs both on the same evidence and flags the disagreements, with the provenance of every point.

pip install git+https://github.com/MargoSolo/acmg-points      # no dependencies
acmg-points classify PVS1 PM1
  PVS1  VeryStrong  +8
  PM1   Moderate    +2
  total             +10 → Pathogenic          [tavtigian2020]
  2015 rules        → Likely pathogenic       (2015 combining rule met)
  ⚠️ SCHEMES DISAGREE

Where the systems disagree

Fifteen evidence sets from examples/cases.txt, placed on the points scale; the band gives the points class, and ✕ marks the sets where the 2015 rules say something else:

points vs 2015 rules

evidence points points class 2015 class why
PVS1 + PM1 (one Moderate) +10 Pathogenic Likely pathogenic 2015 needs PVS1 + ≥ 2 Moderate for Pathogenic; points reach 10 with one
PVS1 + PP3 (one Supporting) +9 Likely pathogenic VUS 2015 needs ≥ 2 Supporting next to PVS1; points need one
PVS1 + PM2_Supporting +9 Likely pathogenic VUS the same pattern with PM2 at the strength ClinGen SVI recommends since 2020

Full table: examples/compare.md.

Conflicting evidence. Richards 2015 puts a variant in Uncertain significance when "the criteria for benign and pathogenic are contradictory". That sentence has two readings, and implementations differ. acmg-points defaults to the stricter one and lets you switch:

--conflict reading PS1 + PM1 + BS1
any (default) any pathogenic evidence together with any benign evidence → VUS VUS (points: +2, VUS too)
both-met VUS only when a pathogenic rule and a benign rule are both met Likely pathogenic

BA1 is stand-alone benign evidence under both readings and is not overridden by supporting pathogenic criteria. The JSON output records which reading was used.

PM2. The 2015 default is Moderate; ClinGen SVI recommended PM2 at Supporting strength in 2020. Apply it as PM2_Supporting — the package does not silently downgrade it, because the strength is your decision.

Use

acmg-points classify PVS1 PM2_Supporting PP3      # modified strengths: CODE_Strength (also CODE:Strength, CODE-Sup)
acmg-points classify PS1 PM1 --json               # per-criterion points and both verdicts, machine-readable
acmg-points compare --file cases.txt              # one evidence set per line, '#' comments → markdown table
acmg-points table                                 # the scheme in force, with citation

Strengths: Supporting Moderate Strong VeryStrong (Sup/Mod/Str/VS), StandAlone for BA1. Applying a criterion twice is an error.

What is implemented — and what deliberately is not

flowchart LR
  E["applied criteria<br/>PVS1 · PM2_Supporting · BS1 …"] --> P["points<br/>Tavtigian 2020<br/>+1 +2 +4 +8 / −1 −2 −4 −8, BA1 = −8"]
  E --> R["2015 combining rules<br/>Richards 2015, Table 5<br/>counted at applied strength"]
  P --> V[both verdicts · disagree flag · JSON]
  R --> V
  • Points: Tavtigian et al. 2020, Hum Mutat 41:1734. Bands: Pathogenic ≥ 10 · Likely pathogenic 6–9 · VUS 0–5 · Likely benign −6…−1 · Benign ≤ −7.
  • 2015 rules: Richards et al. 2015, Genet Med 17:405, including the conflict rule. Criteria count at their applied strength (PM2_Supporting is a Supporting criterion), as ClinGen SVI modifiers intend.
  • Not implemented on purpose: any "SVC v4.0 points table". v4 is in pilot and unpublished. Schemes live in one file, schemes.py; when the official table appears it becomes a second scheme, not a rewrite.

This is a combiner, not a classifier: it assumes you have decided which criteria apply at which strength. It does not assess evidence, query gnomAD, or know VCEP gene-specific specifications. It will also happily sum criteria that should not be co-applied (e.g. PVS1 with PM4) — mutual-exclusion checks are on the roadmap.

Tests

Five pytest cases pin the published bands, the strength modifiers, the 2015 conflict rule and the three divergences above; CI also regenerates the comparison table.

Roadmap

Official SVC v4.0 table as a drop-in scheme · SVI modifier library (PVS1 decision tree, calibrated PP3/BP4) · co-application checks · VCEP-specific schemes · batch from CSV / VCF INFO · JOSS paper.

Cite

DOI (all versions): 10.5281/zenodo.22286276 · this version: 10.5281/zenodo.22286277

Soloshenko M. acmg-points: points-based ACMG/AMP classification alongside the 2015 rules. 2026, v0.1.0. Please also cite Tavtigian et al. 2020 and Richards et al. 2015 — the science is theirs. MIT License.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

acmg_points-0.1.2.tar.gz (12.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

acmg_points-0.1.2-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file acmg_points-0.1.2.tar.gz.

File metadata

  • Download URL: acmg_points-0.1.2.tar.gz
  • Upload date:
  • Size: 12.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for acmg_points-0.1.2.tar.gz
Algorithm Hash digest
SHA256 65fae2e6d1a8c4d42eac96973464c2f0ff9d957c11f6851b07663faa592e14c9
MD5 cdc9cd95ed6785eff8bf9587da6d9af7
BLAKE2b-256 fa0204f81012d7e7f5dc643845da428b0f43b59e0d00f06c34428deec704b058

See more details on using hashes here.

Provenance

The following attestation bundles were made for acmg_points-0.1.2.tar.gz:

Publisher: publish.yml on MargoSolo/acmg-points

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file acmg_points-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: acmg_points-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for acmg_points-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fdc06a229f2f95c8d57b1ad41121c7a8fe22eb46d0d981135d4284b5d860cf08
MD5 766ac30d97fe7c2c3fd28d2d53f87869
BLAKE2b-256 ad4ea996dd1b5ffefa269dfaf6e2d8f04c82f708ea0f42562e4000aaa62cbcfe

See more details on using hashes here.

Provenance

The following attestation bundles were made for acmg_points-0.1.2-py3-none-any.whl:

Publisher: publish.yml on MargoSolo/acmg-points

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page