WES Analysis Overview
Overview
Whole Exome Sequencing (WES) refers to the targeted sequencing of the protein-coding regions of the genome, known as exons. These regions represent approximately 1-2% of the human genome contain many known disease-related variants. Whole exome sequencing is a cost-effective approach for identifying genetic variants associated with various diseases and conditions. There are many genomic mutation events that can occur either germline (inhereted from parents) or somatic (acquired during life). Here we will focus on three main types of genomic variations that can be detected using WES data: Single Nucleotide Variations (SNVs), Insertion-Deletions (Indels), and Copy Number Variations (CNVs).
The pipeline described here involves three components:
Data Preprocessing: This step involves quality control, trimming, and alignment of raw sequencing reads to a reference genome.
Single Nucleotide Variation (SNV) and Insertion-Deletion (Indels) Calling: This step involves identifying genetic variants (such as single nucleotide polymorphisms and insertions/deletions) from the aligned sequencing data.
Copy Number Variation (CNV) Analysis: This step involves detecting larger structural variations in the genome, such as duplications or deletions of genomic segments.
Recommended Readings
- Bartha and Győrffy (2019)
- Mason-Suares et al. (2016)
- Talevich et al. (2016)
- Nesta et al. (2021)
- Germline vs. Somatic Mutation
- How to read SAM file
- FASTQ Files Explained
- VCF Files
- GATK Data Preprocessing Best Practices
- GATK Somatic Variant Calling Best Practices
Pipeline Steps
1. Data Preprocessing
Quality control, adapter trimming, and alignment to reference genome.
2. SNV & Indel Calling
Somatic and germline variant calling with GATK, Strelka2, and Mutect2.
3. Copy Number Variation
Detection of copy number alterations using read depth analysis.
Required Software
- R : programming language and environment for statistical computing and graphics
- RStudio : integrated development environment for R
- Python : programming language for general-purpose programming
- cutadapt : cutting adapter sequences from high-throughput sequencing reads
- fastqc : quality control tool for raw high throughput sequence data
- multiqc : merges results from multiple samples into a single report
- samtools : utilities for manipulating alignments in the SAM/BAM format
- bwa : Burrows-wheeler Aligner for mapping low-divergent sequences against a large reference genome
- gatk : Genome Analysis Toolkit for variant discovery in high-throughput sequencing data
- maftools : R package for analysis and visualization of MAF files from large-scale sequencing studies
- strelka2: fast and accurate small variant caller for germline and somatic variants
- CNVKit : Copy number detection and visualization toolkit for targeted DNA sequencing
- ANNOVAR : functional annotation of genetic variants from high-throughput sequencing data
SLURM Scripts for HPC Clusters
Throughout the pipeline, I will show how to apply different methods on a single sample, and also show to apply them on multiple samples using SLURM scripts on HPC cluster in section as follows
To parallelize this workflow on multiple samples using SLURM on an HPC cluster, you can use the following script. It assumes that you have samples manifest in a file called samples_manifest.txt, and it will process each sample in parallel using a job array.
#!/bin/bash
#SBATCH --account=
#SBATCH --job-name='job_name_%a'
#SBATCH --output=logs/job_name_%a.log
#SBATCH --partition=standard
#SBATCH --mem=180G
#SBATCH --cpus-per-task=32
#SBATCH --time=48:00:00
#SBATCH --array=1-<number_of_samples>
SCRIPTSLURM scripts can be executed on the command line using the sbatch command as follows: sbatch slurm_script_name.sh