This repository contains pipeline scripts for structural variation detection in large cohorts. The pipeline is designed for Illumina paired-end whole genome sequencing data, preferably with at least 30x sequence coverage. Data inputs should be a set of sorted CRAM files, aligned with BWA-MEM.
This pipeline detects structural variation based on breakpoint sequence evidence using both the LUMPY and Manta algorithms. Structural variant (SV) breakpoints are then unified and merged using the SVTools workflow, followed by re-genotyping with SVTyper and read-depth annotation with CNVnator. Finally, SV types are reclassified based on the concordance between read-depth and breakpoint genotype.
Additional details on the SVTools pipeline are available in the SVTools tutorial.
Pipeline scripts (in WDL format) are available in the scripts directory. These scripts can be launched using Cromwell (version 25 or later).
While the SV pipeline can be run in its entirety via the SV_Pipeline_Full.wdl script, we recommend running the pipeline in three stages to enable intermediate quality control checkpoints.
For each sample:
- SV discovery with LUMPY using the smoove wrapper
- Preliminary SV genotyping with SVTyper (also done within the smoove wrapper)
- SV discovery with Manta, including insertions
- Generate CNVnator histogram files
After this step, we recommend performing quality control checks on each sample before merging them into the cohort-level VCF (step 2). To help with this, per-sample variant counts are generated for both LUMPY and Manta outputs.
2. Merge_SV.wdl
This step merges the sample-level VCF files from step 1 using the LUMPY breakpoint probability curves to produce a single cohort-level VCF.
This step re-genotypes each sample at the sites in the cohort-level VCF file from step 2, and then combines the results into a set of final VCFs, split by variant type for efficiency (deletions, insertions, breakends, and other:duplications+inversions).
For each sample:
- Re-genotype each SV using SVTyper (note that insertion calls from Manta are taken from the per-sample genotypes and not processed with SVTyper)
- Annotate the read-depth at each SV using CNVnator
- Generate a .ped file of sample names and sexes
For the cohort:
- Combine the re-genotyped VCFs into a single cohort-level VCF
- Prune overlapping SVs
- Classify SV type based on the concordance between variant genotypes and read-depths
- Sort and index the VCF
- Docker images for this pipeline are available at https://hub.docker.com/u/halllab.
- Dockerfiles for these containers are available in the docker directory.
- WDL test scripts for each of these Docker containers are available in the test directory.