6. Structural Variant (SV) & Copy Number (CNV) Calling
8 Primary ToolsDetecting large genomic alterations (>50 bp) including deletions, duplications, inversions, translocations, copy number amplifications, and complex chromothripsis events.
| Tool | Primary Role & Purpose | Supported Platforms | Executable Pipeline |
|---|---|---|---|
| Manta → | Paired-end short reads; often paired with Strelka2 for complete variation | Short-Read (Illumina) | View Code ↓ |
| DELLY → | Integrated paired-end and split-read discovery with single-base breakpoint resolution | Short-Read (Illumina) | View Code ↓ |
| LUMPY / Smoove → | Integrates discordant pairs, split reads, and coverage profiles into one probabilistic model | Short-Read (Illumina) | View Code ↓ |
| GRIDSS → | Breakpoint caller using assembly and split reads for complex cancer genomes | Short-Read (Illumina) | View Code ↓ |
| Sniffles / Sniffles2 → | Standard for PacBio HiFi and ONT, resolving nested and complex SVs | Long-Read (PacBio / ONT) | View Code ↓ |
| cuteSV → | Fast signature-clustering algorithm for ONT/HiFi long-read SVs | Long-Read (ONT / PacBio HiFi) | View Code ↓ |
| CNVkit → | Copy number variant calling from hybrid-capture whole-exome and targeted sequencing | WES / Targeted Panels | View Code ↓ |
| Control-FREEC → | Calculates copy numbers and loss of heterozygosity with automatic ploidy assessment | WGS / WES (Cancer) | View Code ↓ |
Manta, DELLY, LUMPY, GRIDSS, SmooveSniffles2, cuteSV, SVIM, pbsvCNVkit, Control-FREEC, GATK gCNV, FACETS, Sequenza, ASCAT, PURPLE, HMMcopyvg toolkit, minigraph-cactus, PGGBShort-Read Structural Variants & Indels
Manta calls structural variants (deletions, inversions, duplications, translocations) and large indels from paired-end short-read sequencing data by pairing split-read mapping with de novo local graph assembly of candidate regions.
# 1. Configure Manta SV calling for tumor-normal pair
configManta.py \
--tumorBam=tumor.dedup.bam \
--normalBam=normal.dedup.bam \
--referenceFasta=GRCh38.fa \
--runDir=manta_out
# 2. Run workflow with local execution
python manta_out/runWorkflow.py -m local -j 16
# Diploid SVs: manta_out/results/variants/diploidSV.vcf.gz
# Somatic SVs: manta_out/results/variants/somaticSV.vcf.gz--tumorBam and --normalBam set paired cancer analysis; -m local -j 16 distributes local graph assembly across 16 threads.Integrated Paired-End & Split-Read Analysis
DELLY is an integrated structural variant prediction method that discovers deletions, tandem duplications, inversions, and translocations at single-nucleotide breakpoint resolution by combining paired-end read discordance and split reads.
# 1. Call SVs on tumor and normal BAMs
delly call -g GRCh38.fa -o delly_raw.bcf -x hg38.exclude.tsv \
tumor.dedup.bam normal.dedup.bam
# 2. Filter somatic SVs against germline and blacklist
delly filter -f somatic -o delly_somatic.bcf -s samples.tsv delly_raw.bcf
# 3. Export to VCF
bcftools view delly_somatic.bcf > delly_somatic.vcf-x hg38.exclude.tsv ignores telomeric and centromeric satellite repeats; delly filter -f somatic isolates high-confidence somatic variants.Probabilistic Multi-Evidence Structural Variant Calling
LUMPY provides a multi-evidence probabilistic framework integrating discordant paired-end reads, split reads, and depth metrics. Smoove wraps LUMPY with sambamba and SVtyper for automated, containerized cohort calling.
# 1. Run Smoove automated LUMPY pipeline
smoove call --outdir smoove_out/ \
--name cohort_svs \
--fasta GRCh38.fa \
--genotype \
sample1.dedup.bam sample2.dedup.bam
# 2. Joint cohort genotyping
smoove merge --name merged_cohort -f GRCh38.fa smoove_out/*.genotyped.vcf.gz--genotype invokes SVtyper to assign homozygous/heterozygous genotypes; smoove merge joins multi-sample cohorts into a unified matrix.Complex Rearrangement & Chromothripsis Breakpoint Assembly
GRIDSS is a genomic rearrangement breakpoint caller that combines positional de Bruijn graph de novo assembly with split-read and paired-end evidence to resolve complex genomic rearrangements, gene fusions, and chromothripsis.
# 1. Run somatic tumor-normal GRIDSS breakpoint assembly
gridss -r GRCh38.fa \
-o gridss_out.vcf.gz \
-a gridss_assembly.bam \
-t 16 \
--jvmheap 30g \
tumor.dedup.bam normal.dedup.bam
# 2. Extract somatic high-confidence breakends
gridss_somatic_filter \
--input gridss_out.vcf.gz \
--output gridss_somatic.vcf.gz--jvmheap 30g allocates sufficient Java heap space for graph traversal; gridss_somatic_filter identifies true somatic breakends.The Long-Read Structural Variant Standard
Sniffles2 is the benchmark long-read structural variant caller. It accurately resolves deletions, duplications, inversions, translocations, and nested insertions in complex repeats, including non-reference insertions and tandem repeat expansions.
# 1. Call SVs on PacBio HiFi or ONT BAM with repeat expansion profiling
sniffles \
--input pacbio_aligned.bam \
--vcf pacbio_svs.vcf.gz \
--reference GRCh38.fa \
--threads 16 \
--tandem-repeats human_trf.bed \
--minsupport 3
# 2. For multi-sample cohort joint calling, output SNF intermediate files:
# sniffles --input sample1.bam --snf sample1.snf
# sniffles --combine sample1.snf sample2.snf --vcf cohort.vcf.gz--tandem-repeats human_trf.bed enables exact tandem repeat expansion profiling (Huntington, ALS loci); --minsupport 3 sets minimum supporting long reads.Ultra-Fast Signature-Clustering Long-Read Caller
cuteSV utilizes a tailored signature-clustering algorithm to detect structural variations in third-generation sequencing data. It delivers top-tier F1 accuracy on HG002 benchmarks with low RAM consumption and fast runtimes.
# 1. Run cuteSV on Oxford Nanopore alignment
cuteSV ont_aligned.sorted.bam GRCh38.fa cutesv_out.vcf ./cutesv_work/ \
--threads 16 \
--min_support 3 \
--min_size 50 \
--max_size 100000 \
--genotype
bgzip cutesv_out.vcf && tabix -p vcf cutesv_out.vcf.gz--min_support 3 requires at least 3 supporting long reads; --min_size 50 focuses on canonical structural variants (>=50 bp); --genotype assigns diploid genotypes.Hybrid-Capture WES & Targeted Panel Copy Number
CNVkit is a complete toolkit for inferring copy number alterations from targeted DNA sequencing (WES and cancer gene panels). It uses both on-target exonic reads and off-target non-specific reads to generate smooth, continuous coverage profiles.
# 1. Run batch CNVkit workflow with paired normal
cnvkit.py batch tumor.dedup.bam \
--normal normal.dedup.bam \
--targets exome_targets.bed \
--fasta GRCh38.fa \
--output-reference my_reference.cnn \
--output-dir cnv_results/ \
--diagram --scatter
# 2. Call discrete integer copy number states
cnvkit.py call cnv_results/tumor.cns -y -m threshold -o tumor.call.cns--diagram generates a whole-genome ideogram showing gains and losses; --scatter produces bin-level log2 ratio scatter plots; call -m threshold rounds ratios to integer copy number.Tumor-Normal & Tumor-Only WGS/WES CNV/LOH Caller
Control-FREEC evaluates deep sequencing data to detect copy number alterations and loss of heterozygosity (LOH). It can run without a matched normal sample, automatically assessing baseline tumor ploidy and purity while normalizing for GC content and mappability.
# 1. Run Control-FREEC using configuration file
freec -conf freec_config.txt
# 2. Assess significance of identified CNV regions
cat << 'EOF' > evaluate_cnvs.R
library(rtracklayer)
# Freec p-value assignment and visual profile plotting
system("cat cnv_sample.bam_CNVs | assess_significance.R cnv_sample.bam_CNVs")
EOF
Rscript evaluate_cnvs.Rfreec -conf accepts GC-profile and GEM mappability tracks; models aneuploidy and tumor heterogeneity automatically.