2. Somatic Cancer Mutation Calling & Neoantigen Profiling
Paired Tumor-Normal somatic mutation detection designed to identify sub-clonal somatic single nucleotide variants (SNVs), small indels, cross-sample contamination, and functional variant effect annotations across solid tumors and liquid biopsies.
| Metric / Requirement | Specification | Target Configuration |
|---|---|---|
| Core Engine / Framework | GATK Mutect2 + Strelka2 + VEP | Nextflow / Snakemake Compatible |
| Benchmark Runtime | ~10 – 14 hours (80× Tumor / 40× Normal WGS) | 32 CPU cores / 64 GB RAM |
| Standard Container | docker pull broadinstitute/gatk:4.5.0.0 | Docker • Singularity • Conda |
| Input → Deliverable | Matched Tumor/Normal BAMs → High-Confidence Somatic VCF / MAF | |
Step 1: Matched Tumor-Normal Somatic Variant Calling with GATK Mutect2
Executes local haplotype de novo assembly on matched tumor and normal BAMs. Evaluates somatic variant likelihoods while using a Panel of Normals (PoN) and gnomAD germline allele frequency priors to suppress recurrent technical sequencing artifacts.
gatk --java-options "-Xmx32G" Mutect2 \
-R /references/GRCh38.d1.vd1.fa \
-I tumor.recal.bam -tumor TUMOR_SAMPLE \
-I normal.recal.bam -normal NORMAL_SAMPLE \
--germline-resource /references/af-only-gnomad.hg38.vcf.gz \
--panel-of-normals /references/1000g_pon.hg38.vcf.gz \
--f1r2-tar-gz f1r2.tar.gz \
-O somatic_unfiltered.vcf.gz--germline-resource incorporates population frequency priors to reject germline variants; --panel-of-normals filters recurrent machine artifacts; --f1r2-tar-gz captures orientation data for artifact learning.Step 2: Learn Read Orientation Model for FFPE & 8-OxoG Artifact Filtering
Quantifies orientation bias caused by oxidative damage during library preparation (8-oxoguanine C→A / G→T) or formalin fixation in archival clinical specimens (FFPE deamination C→T / G→A).
gatk LearnReadOrientationModel \
-I f1r2.tar.gz \
-O read-orientation-model.tar.gzLearnReadOrientationModel estimates prior probabilities of artifactual nucleotide substitutions across sequence contexts, preventing false positive somatic calls.Step 3: Cross-Sample Contamination & Tumor Infiltration Estimation
Calculates allelic counts at high-frequency biallelic population SNPs to estimate both cross-sample sample-swap contamination and tumor-in-normal infiltration percentage.
# Phase A: Pileup Summaries across common biallelic SNPs
gatk GetPileupSummaries \
-I tumor.recal.bam \
-V /references/small_exac_common_3.hg38.vcf.gz \
-L /references/small_exac_common_3.hg38.vcf.gz \
-O tumor_pileups.table
gatk GetPileupSummaries \
-I normal.recal.bam \
-V /references/small_exac_common_3.hg38.vcf.gz \
-L /references/small_exac_common_3.hg38.vcf.gz \
-O normal_pileups.table
# Phase B: Quantify contamination percentage
gatk CalculateContamination \
-I tumor_pileups.table \
-matched normal_pileups.table \
-tumor-segmentation segments.table \
-O contamination.tableCalculateContamination protects against calling low-frequency false somatic mutations arising from barcode bleeding or reagent contamination.Step 4: Multi-Parametric Somatic Variant Filtration
Synthesizes read orientation priors, cross-sample contamination estimates, base quality, mapping quality, and germline probability to yield PASS-confidence somatic mutations.
gatk FilterMutectCalls \
-R /references/GRCh38.d1.vd1.fa \
-V somatic_unfiltered.vcf.gz \
--contamination-table contamination.table \
--tumor-segmentation segments.table \
--ob-priors read-orientation-model.tar.gz \
-O somatic_filtered.vcf.gzFilterMutectCalls tags non-somatic candidates with specific filter annotations (e.g. contamination, orientation, germline_risk) while retaining true sub-clonal mutations.Step 5: Orthogonal Validation with Strelka2 Fast Somatic Caller
Deploys a specialized Bayesian mixture model to independently call somatic SNVs and indels in parallel, generating high-concordance truth sets.
configureStrelkaSomaticWorkflow.py \
--tumorBam=tumor.recal.bam \
--normalBam=normal.recal.bam \
--referenceFasta=/references/GRCh38.d1.vd1.fa \
--runDir=./strelka_somatic_out
python3 ./strelka_somatic_out/runWorkflow.py -m local -j 16configureStrelkaSomaticWorkflow.py leverages empirical indel error models for elevated sensitivity in low-depth genomic regimes.Step 6: Functional Variant Annotation & OncoKB / MAF Conversion
Annotates somatic consequences, protein-coding changes (HGVS p. / c.), COSMIC identifiers, and transforms VCF files into Mutation Annotation Format (MAF) for OncoPrint visualization.
# Phase A: Ensembl VEP Clinical Annotation
vep --input_file somatic_filtered.vcf.gz \
--output_file annotated_somatic.vcf \
--format vcf --vcf --symbol --terms SO --cache --assembly GRCh38 --fork 16
# Phase B: Convert to TCGA-Compatible MAF
vcf2maf.pl \
--input-vcf somatic_filtered.vcf.gz \
--output-maf somatic_final.maf \
--ref-fasta /references/GRCh38.d1.vd1.fa \
--vep-path /opt/vep/src/ensembl-vep/ \
--tumor-id TUMOR_SAMPLE --normal-id NORMAL_SAMPLEvcf2maf.pl standardizes transcript choices to Canonical Ensembl Transcripts; ensures 100% interoperability with Maftools in R.🚀 Automated Nextflow (nf-core) Production Execution
Execute this complete workflow across any SLURM, AWS Batch, or Google Cloud HPC cluster using the verified community container pipeline:
nextflow run nf-core/sarek -r 3.4.4 \
--input samplesheet.csv \
--tools mutect2,strelka \
--genome GATK.GRCh38 \
--outdir ./results_somatic_cancer/ \
-profile docker