omics.co.in logo omics.co.in

Module 9: Somatic Variant Annotation & Filtering: VEP, SnpEff, gnomAD & COSMIC

Tested Stacks: GATK 4.6.1 Samtools 1.21 Nextflow 24.10 Seurat v5.1 Python 3.12
Prerequisites: Basic Linux CLI & Sequencing Formats
📚 Chapter 9 of 12 0% Course Completed

1. Principles of Comprehensive Somatic Annotation

An unfiltered VCF provides only chromosomal coordinates and nucleotide changes (e.g. chr7:55259515 T>G). Clinical interpretation requires translating these raw coordinates into biological, transcript-level, and oncogenic context using tools like Ensembl Variant Effect Predictor (VEP) or SnpEff.

Annotation DimensionAuthoritative RepositoriesExtracted Clinical Data Fields
Transcript & HGVS NomenclatureEnsembl, NCBI RefSeq, MANE SelectGene symbol (EGFR), canonical RefSeq transcript (NM_000546.6), cDNA change (c.2573T>G), protein change (p.Leu858Arg).
Molecular ConsequenceSequence Ontology (SO)Missense variant, frameshift deletion, stop gained (nonsense), in-frame insertion, splice donor/acceptor disruption.
Population Allele FrequencygnomAD (Genome Aggregation Database)Global and subpopulation allele frequencies (AF). Any variant with $ ext{gnomAD AF} > 1.0\%$ is classified as a benign germline polymorphism.
Somatic Cancer RecurrenceCOSMIC (Catalogue of Somatic Mutations in Cancer)COSMIC mutation ID, tumor site recurrence counts, tissue distribution, confirmed somatic status.
Clinical & Evidence CurationClinVar, OncoKB, CIViCOncogenic classification, FDA-approved drug associations, NCCN guideline recommendations, clinical trial eligibility.

2. Automated Multi-Tier Filtering Protocol

To extract genuine actionable drivers from hundreds of background variants, apply the standardized clinical filtration pipeline:

[Step 1: Quality Filter]       --> Keep FILTER == "PASS" & Total Depth >= 100x
             │
             ▼
[Step 2: VAF Filter]           --> Keep Variant Allele Fraction (VAF) >= 5% (FFPE)
             │
             ▼
[Step 3: Population Filter]    --> Filter OUT common polymorphisms (gnomAD AF > 0.001 / 0.1%)
             │
             ▼
[Step 4: Consequence Filter]   --> Keep protein-altering variants: missense, nonsense, 
                                   frameshift, splice site, in-frame indels
             │
             ▼
[Step 5: Oncology Match]       --> Cross-check COSMIC, OncoKB, and CIViC databases

3. Hands-On Deliverable: Filtered Clinical Mutation Table

Extract the primary driver mutations across our three assigned cases into a standardized clinical summary table:

Patient CaseGeneHGVS cDNAHGVS ProteinVAF (%)DepthCOSMIC IDClinVar Classification
Case 1 (Lung)EGFRc.2573T>Gp.Leu858Arg (L858R)35.8%642×COSM6224Pathogenic / Tier I
Case 2 (Colon)KRASc.38G>Ap.Gly13Asp (G13D)61.4%810×COSM522Pathogenic / Tier I
Case 2 (Colon)PIK3CAc.1633G>Ap.Glu545Lys (E545K)18.2%745×COSM763Pathogenic / Tier I
Case 3 (Breast)TP53c.524G>Ap.Arg175His (R175H)44.1%590×COSM10648Pathogenic / Tier II
⚠️

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 chr1 or 1; divergent naming causes silent alignment drops.
Was this guide helpful to your research?
Help us maintain 100% accurate, peer-reviewed bioinformatics standards.
📝 Propose Edit on GitHub ↗