agentsclimarketplace

Germline cnv interpretation

Skill BioTender-max/awesome-bio-agent-skills/skills/bioskills/germline-cnv-interpretation

Classify constitutional (germline) copy number variants for clinical reporting using the 2019 ACMG/ClinGen technical standards points-based framework, with ClassifyCNV and AnnotSV for semi-automated scoring. Covers the separate copy-number-loss and copy-number-gain rubrics, the five-tier classification, ClinGen haploinsufficiency/triplosensitivity and dosage-sensitive regions, de novo and segregation evidence, and population-frequency benign evidence. Use when assigning pathogenic/likely-pathogenic/VUS/likely-benign/benign to a constitutional CNV, scoring a CNV against ACMG/ClinGen criteria, or distinguishing the automatable evidence from the case-specific evidence requiring manual input.From its SKILL.md

Install
npx -y skills add BioTender-max/awesome-bio-agent-skills --skill germline-cnv-interpretation

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

SKILL.md

11.6 KB, ~2.7k tokens by cl100k_base, as published. Nobody here has run it

Version Compatibility

Reference examples tested with: ClassifyCNV 1.1+, AnnotSV 3.4+, Python 3.10+ with pandas 2.2+; bedtools 2.31+.

Before using code patterns, verify installed versions match. If versions differ:

  • CLI: python ClassifyCNV.py --help, AnnotSV --version
  • Update the bundled ClinGen/dosage databases — ClassifyCNV ships an update_clingen.sh; dosage curation changes, and a stale database silently mis-scores.

This skill is for constitutional/germline CNVs only. Somatic tumor CNVs use a different framework (AMP/ASCO/CAP and OncoKB tiers) — do not apply ACMG/ClinGen constitutional scoring to a tumor.

Germline CNV Interpretation

"Is this constitutional CNV pathogenic" -> Apply the 2019 ACMG/ClinGen technical standards: a semiquantitative, points-based rubric that sums evidence into one of five clinical categories. There are two separate rubrics — one for copy-number loss, one for copy-number gain — because the evidence for deletion and duplication pathogenicity is different. The total score maps to a five-tier classification.

  • CLI: ClassifyCNV (automates the observed-evidence sections), AnnotSV (ACMG-aligned rank)
  • Manual: case-specific evidence (de novo status, segregation, prior literature) is scored by the interpreter, not the tool

The Points Framework

Total scoreClassification
>= 0.99Pathogenic
0.90 to 0.98Likely pathogenic
-0.89 to 0.89Variant of uncertain significance (VUS)
-0.90 to -0.98Likely benign
<= -0.99Benign

Evidence is grouped into sections (the loss and gain rubrics each have five). For copy-number loss: Section 1 — does the CNV contain protein-coding or functionally important elements; Section 2 — overlap with established haploinsufficient genes/regions (strong positive) or established benign regions (strong negative); Section 3 — number of protein-coding genes; Section 4 — detailed case/literature evidence (case-control, prior probands, phenotype specificity); Section 5 — inheritance (de novo with confirmed parentage is strong positive; inherited from an unaffected parent is negative). The gain rubric is structured the same way but keyed to triplosensitivity and the distinct evidence base for duplications.

The decisive postdoc-level point: a tool can only score the evidence it is given. ClassifyCNV and AnnotSV automate Sections 1-3 (gene content, dosage-region overlap, population frequency) well; Sections 4-5 (de novo status, segregation, literature) require the interpreter to supply points. An unsupervised tool run therefore systematically lands CNVs in VUS — the absence of family/literature evidence is not neutral, it is unscored.

Classification Workflow

StepSourceAutomatable
Gene content, functional elementsRefSeq/GENCODEYes (ClassifyCNV/AnnotSV)
Established HI/TS gene & region overlapClinGen dosage mapYes
Protein-coding gene countGene modelYes
Population frequency (benign evidence)gnomAD-SV, DGVYes
Case-control / prior probands / phenotype fitLiterature, DECIPHER, internal DBPartial — interpreter scores
De novo status, segregationTrio/family dataNo — interpreter scores

Semi-Automated Scoring with ClassifyCNV

Goal: Score the automatable ACMG/ClinGen sections for a set of constitutional CNVs.

Approach: Provide CNVs as a BED with an explicit DEL/DUP type; ClassifyCNV applies the 2019 rubric against the bundled ClinGen databases and emits a per-CNV scoresheet.

# Input BED: chrom, start, end, type  (type = DEL or DUP)
python ClassifyCNV.py \
    --infile constitutional_cnvs.bed \
    --GenomeBuild hg38 \
    --precise \
    --outdir classifycnv_out

# Output Scoresheet.txt: per-CNV total score, classification, and per-criterion points.
import pandas as pd

def review_classifycnv(scoresheet):
    '''Flag CNVs whose ACMG class likely changes once case-specific evidence is added.'''
    df = pd.read_csv(scoresheet, sep='\t')
    # VUS CNVs near a tier boundary are the ones where de novo / segregation evidence
    # (Sections 4-5, not scored automatically) would tip the classification.
    df['near_boundary'] = df['Total score'].between(0.60, 0.89) | \
                          df['Total score'].between(-0.89, -0.60)
    df['needs_manual_evidence'] = (df['Classification'] == 'VUS') & df['near_boundary']
    return df

Comprehensive Annotation Cross-Check with AnnotSV

AnnotSV -SVinputFile constitutional_cnvs.vcf -genomeBuild GRCh38 \
    -annotationMode both -outputFile annotsv_out.tsv
# AnnotSV emits an ACMG-aligned rank (1 benign - 5 pathogenic) per SV; use it to
# cross-check ClassifyCNV, not as a standalone clinical classification.

Failure Modes

Applying constitutional scoring to a somatic CNV

Trigger: Running ACMG/ClinGen germline classification on tumor copy number.

Mechanism: The 2019 standards are explicitly constitutional; somatic CNV clinical significance uses the AMP/ASCO/CAP tier system and oncology evidence (therapy, prognosis).

Symptom: Tumor amplifications classified as "pathogenic germline variants"; clinically meaningless report.

Fix: Confirm the CNV is constitutional (present in germline DNA). For tumors, use somatic oncology frameworks — see clinical-databases/variant-prioritization.

Treating a tool's VUS as a final answer

Trigger: Reporting ClassifyCNV/AnnotSV output verbatim without adding case evidence.

Mechanism: Tools score gene content, dosage overlap, and frequency, but not de novo status, segregation, or literature; absent that input the score sits in the VUS band.

Symptom: Nearly every novel CNV classified VUS; clinically relevant de novo deletions under-called.

Fix: Treat tool output as the Section 1-3 baseline. Add Section 4-5 points from trio data, segregation, DECIPHER, and literature before issuing a classification. A VUS near a tier boundary specifically signals missing case evidence.

Stale ClinGen dosage database

Trigger: Using ClassifyCNV/AnnotSV bundled databases without updating.

Mechanism: ClinGen dosage curation is ongoing; HI/TS scores and dosage-sensitive regions change. A stale database scores Section 2 wrong.

Symptom: A gene with a newly curated HI score 3 is scored as having no dosage evidence; classification too low.

Fix: Run the database update script before a classification batch; record the ClinGen release date in the report.

Genome-build mismatch

Trigger: CNV coordinates and the --GenomeBuild argument (or annotation databases) on different builds.

Mechanism: Coordinates silently shift; the wrong genes and dosage regions are scored.

Symptom: Implausible gene content; a known disorder locus scored as gene-poor.

Fix: Confirm CNV coordinates, --GenomeBuild, and all databases are the same build; verify a landmark CNV.

Partial-gene overlap scored as whole-gene loss

Trigger: Scoring a deletion that removes only part of a haploinsufficient gene as a full-gene loss.

Mechanism: The rubric distinguishes whole-gene loss from partial overlap; a deletion of a few exons may create a truncating allele with different (sometimes greater) impact, scored under different criteria.

Symptom: Partial-gene CNVs mis-scored; truncating deletions under- or over-weighted.

Fix: Record whether the CNV removes the whole gene or part of it, and which exons; apply the rubric's partial-overlap criteria explicitly.

Reconciliation

PatternLikely causeAction
ClassifyCNV VUS, AnnotSV rank 4Different weighting of the same evidenceRe-derive points manually against the 2019 standard
Tool says benign, locus is a known disorderStale dosage database or build mismatchUpdate databases; verify build
Two interpreters disagree on a VUSSection 4-5 evidence weighted differentlyUse the ClinGen calculator; document each criterion
De novo deletion still VUSSection 5 points not addedAdd confirmed-de-novo points

Operational rule: A clinical CNV classification is final only when (1) the CNV is confirmed constitutional, (2) databases and builds are current and consistent, (3) the automatable Sections 1-3 are scored by a tool, and (4) the interpreter has scored Sections 4-5 from case-specific evidence. Document each criterion and its points; the ClinGen web calculator is the reference tally.

Quantitative Thresholds

ThresholdValueSource / Rationale
Pathogenictotal score >= 0.99Riggs 2020 ACMG/ClinGen technical standards
Likely pathogenic0.90 to 0.98Riggs 2020
VUS-0.89 to 0.89Riggs 2020
Likely benign-0.90 to -0.98Riggs 2020
Benign<= -0.99Riggs 2020
Established dosage sensitivityClinGen HI/TS score = 3ClinGen: sufficient evidence
Common-CNV benign frequencyhigh population frequencySection 2/4 benign evidence

Common Errors

Error / symptomCauseSolution
Tumor CNVs classified "pathogenic germline"Constitutional rubric applied to somaticUse somatic oncology frameworks
Almost everything classified VUSSections 4-5 not scoredAdd de novo/segregation/literature points
Known disorder locus scored benignStale dosage DB or build mismatchUpdate ClinGen databases; check build
Wrong genes scoredBuild mismatchAlign coordinates, --GenomeBuild, databases
Partial-gene deletion mis-scoredWhole-gene assumptionApply partial-overlap criteria
ClassifyCNV vs AnnotSV disagreeDifferent evidence weightingRe-derive against the 2019 standard manually

References

  • Riggs ER et al 2020. Technical standards for the interpretation and reporting of constitutional copy-number variants: a joint consensus recommendation of ACMG and ClinGen. Genet Med 22:245
  • Gurbich TA, Ilinsky VV 2020. ClassifyCNV: a tool for clinical annotation of copy-number variants. Sci Rep 10:20375
  • Geoffroy V et al 2018. AnnotSV: an integrated tool for structural variations annotation. Bioinformatics 34:3572
  • Rehm HL et al 2015 NEJM 372:2235 (ClinGen launch / framework). Dosage-sensitivity curation methodology is in Riggs ER et al 2012 Genet Med 14:680 (original ClinGen dosage-sensitivity workflow). Current ClinGen Dosage Sensitivity Map: clinicalgenome.org.

Related Skills

  • copy-number/cnv-annotation - Gene, dosage, and database annotation feeding the rubric
  • copy-number/gatk-cnv - GATK-gCNV germline CNV calling
  • copy-number/cnvkit-analysis - Germline CNV calling from panels/exomes
  • clinical-databases/clinvar-lookup - ClinVar CNV records and prior classifications
  • clinical-databases/variant-prioritization - Somatic variant tiering (the non-germline path)
  • clinical-databases/gnomad-frequencies - Population frequency for benign evidence

What ships with it: 2 files

6.2 KB alongside SKILL.md, 1 of them executable

examples/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.