Module 8: Somatic Mutation Discovery: GATK Mutect2 & FilterMutectCalls
1. Running Mutect2 on Targeted Panel Regions
Having produced coordinate-sorted, duplicate-marked BAM files, we now execute GATK Mutect2 restricted to the targeted capture territory (target_regions.bed) to detect somatic SNVs and indels:
Galaxy Parameter Configuration for GATK4 Mutect2:
- Reference Genome: Human (GRCh38/hg38)
- Tumor BAM: Case1_Lung_Tumor_Marked.bam (Sample Name: Case1_Tumor)
- Normal BAM: Case1_Lung_Normal_Marked.bam (Sample Name: Case1_Normal)
- Interval list (-L): Lung_10Gene_Panel_Targets.bed
- Germline Resource: gnomAD Somatic AF-only VCF (v3.1)
- Panel of Normals (PoN): Curated_CLIA_PoN_GRCh38.vcf.gz
- Output: Raw Somatic VCF + F1R2 orientation metrics2. Estimating Cross-Sample Contamination: GetPileupSummaries & CalculateContamination
In high-throughput multi-plexed clinical sequencing, index hopping and liquid handling cross-contamination can introduce traces of DNA from other patient samples. GATK calculates contamination by examining population-polymorphic biallelic SNPs:
GetPileupSummaries: Quantifies reference and alternate depths across thousands of known common SNPs (gnomAD AF 5% – 20%).CalculateContamination: Computes the maximum likelihood estimate of cross-sample contamination ($f_{\text{contam}}$). For clinical cancer specimens, contamination must remain strictly $< 1.0\% - 2.0\%$.
3. Rigorous Filtering with FilterMutectCalls
The raw VCF produced by Mutect2 contains thousands of low-confidence candidate calls. FilterMutectCalls evaluates multi-dimensional filters:
| Filter Tag in VCF | Underlying Statistical Criterion | Biochemical / Technical Meaning |
|---|---|---|
PASS | Somatic LOD score > threshold; all error models satisfied. | High-confidence somatic mutation. Proceed to clinical tiering. |
weak_evidence | TLOD (Tumor Log Odds) < 5.3 | Insufficient read support; variant cannot be distinguished from background error. |
strand_bias | Phred-scaled Fisher strand bias > 25 | Variant supported predominantly on one sequencing strand; probable artifact. |
germline_risk | NLOD < 2.2 or high population frequency in gnomAD | Variant represents constitutional inherited polymorphism, not somatic driver. |
orientation | Read orientation model score ($F1R2 / F2R1$) | Classic FFPE $C:G o T:A$ hydrolytic deamination artifact. |
Filter the final dataset to retain only variants exhibiting FILTER == PASS with total depth $\ge 100 imes$ and VAF $\ge 5\%$.
Common Pitfalls & Troubleshooting Checklist
- Java Heap Exhaustion (GATK / Picard): If processes terminate with
java.lang.OutOfMemoryError, set your environment variable explicitly:export _JAVA_OPTIONS="-Xmx16g -Djava.io.tmpdir=/tmp". - Index Timestamp Mismatch: If tools complain that a BAM index is missing or out of date, regenerate with
samtools index -@ 4 sample.bam. - Conda Channel Conflicts: Avoid ABI incompatibilities between bioconda and conda-forge by setting strict priority:
conda config --set channel_priority strict. - Chromosome Naming Contamination: Always verify whether reference FASTA headers use
chr1or1; divergent naming causes silent alignment drops.