CNV annotation adds biological and clinical context to copy number calls: which genes a segment overlaps, whether those genes are dosage-sensitive, whether the CNV is common in the population, and whether it carries known cancer drivers. The central principle is that overlap is not consequence: a CNV spanning a gene matters only if the gene is dosage-sensitive, the affected portion is functionally important, and (for focal events) the gene is a driver rather than a passenger. Annotated CNVs feed clinical classification (germline-cnv-interpretation) and driver analysis (recurrent-cnv).
conda install -c bioconda bedtools annotsv
pip install pybedtools pandas pysam
# R route: BiocManager::install(c('clusterProfiler', 'org.Hs.eg.db'))
Inputs: CNV segments (CNVkit .cns, a BED, or a VCF); a gene model (GENCODE/RefSeq); optionally the ClinGen dosage map, COSMIC Cancer Gene Census, gnomAD-SV/DGV catalogs, and a ClinVar VCF. AnnotSV bundles most reference databases on first download.
Tell the AI agent what to do: - "Annotate my CNV segments with overlapping genes and dosage-sensitivity scores" - "Run AnnotSV on my CNV VCF for comprehensive annotation and ranking" - "Filter out common population CNVs using gnomAD-SV with reciprocal overlap" - "Identify the likely driver gene of this focal amplification, not all 30 it spans" - "Flag whether each gene is wholly or only partially deleted"
"Annotate these CNV segments with overlapping genes, record what fraction of each gene is covered, and tag genes with ClinGen haploinsufficiency and triplosensitivity scores."
"Run AnnotSV on this CNV VCF in GRCh38 and explain how to read the ACMG rank."
"This focal amplification spans 30 genes. Identify the likely driver using the COSMIC Cancer Gene Census and explain why the passengers should not all be reported."
"Filter my CNV callset against gnomAD-SV using 50% reciprocal overlap and explain why reciprocal overlap matters for benign filtering."
"My CNVs are on GRCh37 and my gene model is GRCh38. Diagnose the build mismatch and recommend a safe liftOver approach."
-f 0.5 -r) for population-frequency filtering so a tiny CNV is not matched to a huge population CNV.CLNSIG against its controlled vocabulary; SNV/indel pathogenicity does not transfer to a CNV.