Comprehensive structural variant (SV) analysis skill for clinical genomics. Classifies SVs (deletions, duplications, inversions, translocations), assesses pathogenicity using ACMG-adapted criteria, evaluates gene disruption and dosage sensitivity, and provides clinical interpretation with evidence grading. Use when analyzing CNVs, large deletions/duplications, chromosomal rearrangements, or any structural variants requiring clinical interpretation.
Comprehensive structural variant (SV) analysis skill for clinical genomics. Classifies SVs (deletions, duplications, inversions, translocations), assesses pathogenicity using ACMG-adapted criteria, evaluates gene disruption and dosage sensitivity, and provides clinical interpretation with evidence grading. Use when analyzing CNVs, large deletions/duplications, chromosomal rearrangements, or any structural variants requiring clinical interpretation.
Structural Variant Analysis Workflow
Systematic analysis of structural variants (deletions, duplications, inversions, translocations, complex rearrangements) for clinical genomics interpretation using ACMG-adapted criteria.
KEY PRINCIPLES:
Report-first approach - Create SV_analysis_report.md FIRST, then populate progressively
ACMG-style classification - Pathogenic/Likely Pathogenic/VUS/Likely Benign/Benign with explicit evidence
Evidence grading - Grade all findings by confidence level (★★★/★★☆/★☆☆)
Breakpoint precision matters - Exact gene disruption vs dosage-only effects
Population context essential - gnomAD SVs for frequency assessment
English-first queries - Always use English terms in tool calls (gene names, disease names), even if the user writes in another language. Only try original-language terms as a fallback. Respond in the user's language
Complex molecular consequences - SVs can cause gene dosage changes, gene disruption, gene fusions, position effects
Size matters - Pathogenicity depends on size, gene content, and breakpoint precision
Limited databases - Fewer curated SVs in ClinVar compared to SNVs
Dosage sensitivity - Haploinsufficiency and triplosensitivity are critical but gene-specific
Population frequency - Large benign CNVs are common; distinguishing pathogenic from benign is challenging
This skill provides: A systematic workflow integrating SV classification, gene content analysis, dosage sensitivity assessment, population frequencies, and ACMG-adapted criteria into clinically actionable interpretations.
Triggers
Use this skill when users:
Ask about structural variant interpretation
Have CNV data from array or sequencing
Ask "is this deletion/duplication pathogenic?"
Need ACMG classification for SVs
Want to assess gene dosage effects
Ask about chromosomal rearrangements
Have large-scale genomic alterations requiring interpretation
defassess_population_frequency(tu, chrom, sv_start, sv_end, sv_type):
"""
Check population databases for overlapping SVs.
"""# 1. Check ClinVar for known pathogenic/benign SVs
clinvar = tu.tools.ClinVar_search_variants(
chromosome=str(chrom),
start=sv_start,
stop=sv_end,
variant_type=sv_type.upper()
)
known_svs = []
if clinvar.get('data'):
for variant in clinvar['data']:
classification = variant.get('clinical_significance')
known_svs.append({
'database': 'ClinVar',
'classification': classification,
'review_status': variant.get('review_status'),
'coordinates': f"{variant.get('chromosome')}:{variant.get('start')}-{variant.get('stop')}"
})
# 2. gnomAD SVs (if available)# Note: gnomAD SV database may not have direct API access via ToolUniverse# May need to use genomic coordinate search# 3. DECIPHER for similar patient cases
decipher_search = tu.tools.DECIPHER_search(
query=f"chr{chrom}:{sv_start}-{sv_end}",
search_type="region"
)
patient_cases = []
if decipher_search.get('data'):
patient_cases = decipher_search['data']
return {
'clinvar_matches': known_svs,
'decipher_cases': patient_cases,
'frequency_interpretation': interpret_frequency(known_svs)
}
definterpret_frequency(known_svs):
"""
Interpret frequency based on ClinVar matches.
"""ifany(sv['classification'] == 'Benign'for sv in known_svs):
return {
'acmg_code': 'BA1 or BS1',
'interpretation': 'Likely benign based on ClinVar benign classification',
'evidence_grade': '★★★'
}
elifany(sv['classification'] == 'Pathogenic'for sv in known_svs):
return {
'acmg_code': 'PS1',
'interpretation': 'Pathogenic based on ClinVar pathogenic classification',
'evidence_grade': '★★★'
}
else:
return {
'acmg_code': 'PM2',
'interpretation': 'Rare variant, not found in ClinVar or population databases',
'evidence_grade': '★★☆'
}
Report Section:
### 4. Population Frequency Context#### ClinVar Matches (Overlapping SVs)
| VCV ID | Classification | Size | Overlap | Review Status | Genes |
|--------|----------------|------|---------|---------------|-------|
| VCV000012345 | Pathogenic | 320 kb | 95% reciprocal | ★★★ Reviewed by expert panel | KANSL1, MAPT |
**Match Found**: Query deletion has 95% reciprocal overlap with known pathogenic deletion in ClinVar (VCV000012345). This is the Koolen-De Vries syndrome deletion.
**ACMG Code**: **PS1** (Strong) - Same genomic region as established pathogenic SV
*Source: ClinVar via `ClinVar_search_variants`*#### gnomAD SV Database**Search Result**: No overlapping deletions found in gnomAD SV v4.0 (>10,000 genomes)
**Interpretation**: Absence from gnomAD supports rarity and pathogenic potential.
**ACMG Code**: **PM2** (Moderate) - Absent from population databases
*Note: gnomAD SVs queried via browser (no direct API access)*#### DECIPHER Patient Cases
| Case ID | Phenotype | SV Type | Size | Overlap | Similarity |
|---------|-----------|---------|------|---------|------------|
| 12345 | Intellectual disability, hypotonia | DEL | 315 kb | 98% | High |
| 67890 | Developmental delay, facial dysmorphism | DEL | 305 kb | 92% | High |
**Phenotype Match**: 8/10 DECIPHER patients have intellectual disability and hypotonia, consistent with Koolen-De Vries syndrome.
**ACMG Support**: **PP4** (Supporting) - Patient phenotype consistent with gene's disease association
*Source: DECIPHER via `DECIPHER_search`*
**Key Drivers of Pathogenicity**:
1. KANSL1 haploinsufficiency (definitive evidence)
2. Exact match to known pathogenic deletion
3. Absence from population databases
4. Phenotype consistency with Koolen-De Vries syndrome
Phase 6: Literature & Clinical Evidence
Goal: Find case reports, functional studies, and clinical validation
Tools:
Tool
Purpose
Coverage
PubMed_search
Peer-reviewed literature
Comprehensive
DECIPHER_search
Patient case database
Developmental disorders
EuropePMC_search
European literature
Additional coverage
Search Strategies:
defcomprehensive_literature_search(tu, genes, sv_type, phenotype):
"""
Search literature for SV evidence.
"""# 1. Gene-specific searches
literature = []
for gene in genes:
# Dosage sensitivity literature
dosage_papers = tu.tools.PubMed_search(
query=f'"{gene}" AND (haploinsufficiency OR dosage sensitivity OR deletion syndrome)',
max_results=20
)
# Case reports
case_papers = tu.tools.PubMed_search(
query=f'"{gene}" AND deletion AND {phenotype}',
max_results=15
)
literature.append({
'gene': gene,
'dosage_papers': dosage_papers,
'case_reports': case_papers
})
# 2. SV-specific searchesif sv_type == 'DEL':
sv_papers = tu.tools.PubMed_search(
query=f'deletion AND {" AND ".join(genes[:3])} AND syndrome',
max_results=25
)
# 3. DECIPHER cases
decipher_cases = []
for gene in genes:
cases = tu.tools.DECIPHER_search(
query=gene,
search_type="gene"
)
decipher_cases.append(cases)
return {
'gene_literature': literature,
'sv_literature': sv_papers,
'decipher_cases': decipher_cases
}
Report Section:
### 6. Literature & Clinical Evidence#### Key Publications
| Study | Finding | Evidence Type | PMID |
|-------|---------|---------------|------|
| Koolen et al., 2006 | Described 17q21.31 microdeletion syndrome | Original description | 16222315 |
| Koolen et al., 2008 | KANSL1 haploinsufficiency confirmed | Functional validation | 18394581 |
| Zollino et al., 2012 | Phenotype characterization (n=52) | Clinical series | 22736773 |
**Key Findings**:
- 17q21.31 deletion is recurrent (mediated by LCRs)
- KANSL1 haploinsufficiency is primary mechanism
- Phenotype: ID (100%), hypotonia (95%), friendly demeanor (85%)
- Penetrance: >95% for developmental features
*Source: PubMed via `PubMed_search`*#### DECIPHER Patient Cases (n=45)**Phenotype Frequency in DECIPHER Cohort**:
| Feature | Frequency | Match to Patient |
|---------|-----------|------------------|
| Intellectual disability | 45/45 (100%) | ✓ Yes |
| Hypotonia | 42/45 (93%) | ✓ Yes |
| Feeding difficulties | 38/45 (84%) | ✓ Yes |
| Distinctive facies | 40/45 (89%) | ✓ Yes |
| Friendly personality | 35/45 (78%) | Unknown |
**Phenotype Match**: Patient phenotype highly consistent with DECIPHER cohort (4/4 assessable features present).
**ACMG Code**: **PP4** (Supporting) - Patient's clinical features consistent with gene's known phenotype
*Source: DECIPHER via `DECIPHER_search`*#### Functional Evidence for KANSL1 Dosage Sensitivity
| Study | Model | Finding | PMID |
|-------|-------|---------|------|
| Koolen et al., 2012 | Patient cells | Reduced KANSL1 protein | 22736773 |
| Zollino et al., 2015 | Mouse model | Kansl1+/- recapitulates phenotype | 25607366 |
| Arbogast et al., 2017 | Zebrafish | kansl1 knockdown → developmental defects | 28666126 |
**Strength of Evidence**: ★★★ (High) - Multiple independent studies confirm haploinsufficiency mechanism
**ACMG Code**: **PS3_Moderate** - Well-established functional studies showing dosage sensitivity
Phase 7: ACMG-Adapted Classification
Goal: Apply ACMG/ClinGen criteria adapted for SVs
SV-Specific ACMG Criteria:
Pathogenic Evidence Codes
Code
Strength
Criteria
SV Application
PVS1
Very Strong
Null variant in HI gene
Complete deletion of HI gene
PS1
Strong
Same SV as known pathogenic
≥70% reciprocal overlap with ClinVar pathogenic
PS2
Strong
De novo (maternity/paternity confirmed)
De novo SV in patient with matching phenotype
PS3
Strong
Functional studies
Gene dosage effects demonstrated
PS4
Strong
Case-control enrichment
SV enriched in cases vs controls
PM1
Moderate
Critical region
Deletion of exons in HI gene
PM2
Moderate
Absent from controls
Not in gnomAD SVs, DGV
PM3
Moderate
Recessive: homozygous or compound het
Both alleles affected (rare for SVs)
PM4
Moderate
Protein length change
In-frame deletion/duplication
PM5
Moderate
Similar SVs pathogenic
Nearby SVs in ClinVar pathogenic
PM6
Moderate
De novo (no confirmation)
De novo SV, phenotype consistent
PP1
Supporting
Segregation in family
SV segregates with phenotype
PP2
Supporting
Gene/pathway relevant
Genes in SV match phenotype
PP3
Supporting
Computational evidence
Multiple predictors support haploinsufficiency
PP4
Supporting
Phenotype consistent
Patient phenotype matches gene-disease
Benign Evidence Codes
Code
Strength
Criteria
SV Application
BA1
Stand-Alone
MAF >5%
SV frequency >5% in gnomAD
BS1
Strong
MAF too high for disease
SV frequency >1%
BS2
Strong
Healthy adult with phenotype-associated genotype
SV in healthy individual (careful - reduced penetrance)
BS3
Strong
Functional studies show no effect
No dosage sensitivity demonstrated
BS4
Strong
Non-segregation
SV doesn't segregate with phenotype
BP1
Supporting
Missense in gene without known LOF
N/A for SVs
BP2
Supporting
Observed in trans with pathogenic
SV + pathogenic SNV = compound het (patient unaffected)
BP4
Supporting
Computational evidence benign
Predictors suggest no haploinsufficiency
BP5
Supporting
Found in case with alt cause
Phenotype explained by different variant
BP7
Supporting
Synonymous with no splice effect
N/A for SVs
Classification Algorithm (ACMG SV Criteria):
Classification
Evidence Required
Pathogenic
PVS1 + PS1; OR 2 Strong; OR 1 Strong + 3 Moderate
Likely Pathogenic
1 Very Strong + 1 Moderate; OR 1 Strong + 2 Moderate; OR 3 Moderate
VUS
Criteria not met; OR conflicting evidence
Likely Benign
1 Strong + 1 Supporting; OR 2 Supporting
Benign
BA1; OR BS1 + BS2; OR 2 Strong
Implementation:
defapply_acmg_criteria(gene_content, dosage_data, frequency_data, clinical_data, inheritance):
"""
Apply ACMG SV criteria and calculate classification.
"""
evidence = {
'pathogenic': [],
'benign': []
}
# PVS1: Complete deletion of HI gene
hi_genes = [d for d in dosage_data if d['hi_score'] == '3']
iflen(hi_genes) > 0andlen(gene_content['fully_contained']) > 0:
evidence['pathogenic'].append({
'code': 'PVS1',
'strength': 'Very Strong',
'rationale': f"Complete deletion of haploinsufficient gene(s): {', '.join(g['gene'] for g in hi_genes)}"
})
# PS1: Same as known pathogenic SVif clinical_data.get('clinvar_pathogenic_match'):
evidence['pathogenic'].append({
'code': 'PS1',
'strength': 'Strong',
'rationale': f"≥70% overlap with ClinVar pathogenic SV: {clinical_data['clinvar_id']}"
})
# PS2: De novo with phenotype matchif inheritance == 'de_novo'and clinical_data.get('phenotype_match'):
evidence['pathogenic'].append({
'code': 'PS2',
'strength': 'Strong',
'rationale': "De novo occurrence in patient with consistent phenotype"
})
# PS3: Functional studiesif clinical_data.get('functional_evidence'):
evidence['pathogenic'].append({
'code': 'PS3',
'strength': 'Strong',
'rationale': "Well-established functional studies demonstrate dosage sensitivity"
})
# PM2: Absent from controlsif frequency_data.get('frequency') == 0or frequency_data.get('frequency') isNone:
evidence['pathogenic'].append({
'code': 'PM2',
'strength': 'Moderate',
'rationale': "Absent from gnomAD SV database and DGV"
})
# PP4: Phenotype consistentif clinical_data.get('phenotype_consistent'):
evidence['pathogenic'].append({
'code': 'PP4',
'strength': 'Supporting',
'rationale': "Patient phenotype highly consistent with gene-disease association"
})
# BA1: Common variantif frequency_data.get('frequency', 0) > 0.05:
evidence['benign'].append({
'code': 'BA1',
'strength': 'Stand-Alone',
'rationale': f"Frequency {frequency_data['frequency']:.3f} too high for rare disease"
})
# BS1: High frequencyif0.01 < frequency_data.get('frequency', 0) <= 0.05:
evidence['benign'].append({
'code': 'BS1',
'strength': 'Strong',
'rationale': f"Frequency {frequency_data['frequency']:.3f} exceeds expected for disease"
})
# Calculate classification
classification = determine_classification(evidence)
return {
'evidence': evidence,
'classification': classification['class'],
'confidence': classification['confidence']
}
defdetermine_classification(evidence):
"""
Apply ACMG classification rules.
"""
path = evidence['pathogenic']
ben = evidence['benign']
# Count evidence by strength
very_strong = len([e for e in path if e['strength'] == 'Very Strong'])
strong_path = len([e for e in path if e['strength'] == 'Strong'])
moderate_path = len([e for e in path if e['strength'] == 'Moderate'])
supporting_path = len([e for e in path if e['strength'] == 'Supporting'])
standalone_ben = len([e for e in ben if e['strength'] == 'Stand-Alone'])
strong_ben = len([e for e in ben if e['strength'] == 'Strong'])
supporting_ben = len([e for e in ben if e['strength'] == 'Supporting'])
# Benign criteria (takes precedence if strong)if standalone_ben >= 1:
return {'class': 'Benign', 'confidence': '★★★'}
if strong_ben >= 2:
return {'class': 'Benign', 'confidence': '★★★'}
if strong_ben >= 1and supporting_ben >= 1:
return {'class': 'Likely Benign', 'confidence': '★★☆'}
if supporting_ben >= 2:
return {'class': 'Likely Benign', 'confidence': '★★☆'}
# Pathogenic criteriaif very_strong >= 1and strong_path >= 1:
return {'class': 'Pathogenic', 'confidence': '★★★'}
if strong_path >= 2:
return {'class': 'Pathogenic', 'confidence': '★★★'}
if very_strong >= 1and moderate_path >= 1:
return {'class': 'Likely Pathogenic', 'confidence': '★★☆'}
if strong_path >= 1and moderate_path >= 2:
return {'class': 'Likely Pathogenic', 'confidence': '★★☆'}
if strong_path >= 1and moderate_path >= 1and supporting_path >= 1:
return {'class': 'Likely Pathogenic', 'confidence': '★★☆'}
if moderate_path >= 3:
return {'class': 'Likely Pathogenic', 'confidence': '★☆☆'}
# Default to VUSreturn {'class': 'VUS', 'confidence': '★☆☆'}
Report Section:
### 7. ACMG-Adapted Classification#### Evidence Codes Applied**Pathogenic Evidence**:
| Code | Strength | Rationale |
|------|----------|-----------|
| **PVS1** | Very Strong | Complete deletion of haploinsufficient gene (KANSL1, HI score 3) |
| **PS1** | Strong | ≥95% overlap with ClinVar pathogenic deletion (VCV000012345) |
| **PM2** | Moderate | Absent from gnomAD SV database (>10,000 genomes) |
| **PP4** | Supporting | Patient phenotype consistent with Koolen-De Vries syndrome |
**Benign Evidence**: None
#### Evidence Summary
| Pathogenic | Benign |
|------------|--------|
| 1 Very Strong (PVS1) | None |
| 1 Strong (PS1) | |
| 1 Moderate (PM2) | |
| 1 Supporting (PP4) | |
#### Classification: **PATHOGENIC** ★★★**Rationale**: Meets ACMG criteria for Pathogenic (1 Very Strong + 1 Strong). Complete deletion of established haploinsufficient gene (KANSL1) with exact match to known pathogenic deletion.
**Confidence**: ★★★ (High) - Multiple independent lines of strong evidence
#### Classification Certainty Factors
✅ **Strengths**:
- Exact match to well-characterized pathogenic deletion
- Complete deletion of definitive HI gene (KANSL1)
- Absent from population databases
- Phenotype highly consistent with gene-disease
⚠ **Limitations**:
- None significant - this is a well-established pathogenic SV