Quick answer: Somatic variant calling finds mutations that arose in a tissue — the cancer mutations — by comparing a tumor genome against a matched normal (usually blood) from the same person. The matched normal is the entire point: it subtracts every inherited variant, leaving only what is new in the tumor. Because cancer cells mix with healthy cells, tumor mutations appear at fractional allele depths that a germline caller would reject, so somatic pipelines are built around sensitivity at low allele fractions and explicit modeling of sequencing error.
The germline counterpart to this article is the variant calling guide already on this blog; here the question is what fundamentally changes when the signal is rare, contaminated, and cancer-specific.
Table of Contents
Why the germline intuition actively misleads here
A germline variant is present in effectively every cell: at a heterozygous site you expect ~50% of reads to carry it, at a homozygous site ~100%, with sampling noise around those numbers. Somatic callers in the GATK Mutect2 sense are tuned to that bimodal world — and almost everything about a tumor violates it:
- Allele fraction is continuous, not bimodal. A clonal heterozygous mutation in a pure tumor sits at 50%; in a tumor that is 30% cancer cells it sits near 15%; a subclonal mutation present in 10% of cancer cells sits near 2–5%. There is no threshold that separates “real” from noise by allele fraction alone.
- Copy-number states move the arithmetic. Amplified regions dilute or concentrate the variant allele fraction; loss of heterozygosity removes the reference allele entirely. VAF without copy number is an unanchored number.
- The normal is not “reference.” The matched normal carries the patient’s inherited variants — removing them is how you avoid reporting the patient’s common SNP as a cancer mutation.
- Errors matter more than in germline work. At 3% allele fraction, a systematic sequencing or mapping artifact of the same size is indistinguishable from biology unless explicitly modeled.
This is why “run GATK HaplotypeCaller on the tumor” produces a call set that is simultaneously noisy and incomplete: it filters out most real low-VAF calls as error and keeps germline variants you did not ask for.
The standard somatic workflow, stage by stage
- Preprocess both samples. The same read QC and trimming applied identically to tumor and normal; mismatched processing between the two creates systematic differences the caller will happily report as mutations.
- Align both to the same reference with the same mapper and parameters, producing sorted, indexed, duplicate-marked BAMs (the mapping stage is shared with every other NGS analysis).
- Run a paired somatic caller. Mutect2 (with a Panel of Normals and the gnomAD germline resource) is the common Illumina choice; Strelka2, VarScan2, and
bcftools mpileupwith a paired mode are alternatives. Tumor-only modes exist when no normal was sequenced, at the cost of germline contamination. - Model and filter. The caller’s annotations — strand bias, read-position bias, mapping quality, germline prior, panel-of-normals evidence — feed filters. Start with
PASS-flagged calls, then tighten deliberately. - Annotate. VEP or SnpEff attach gene, consequence, population frequency (gnomAD), and — in cancer panels — clinical and catalogued somatic significance (COSMIC, OncoKB, CIViC).
- Validate the claims that matter. Orthogonal confirmation (deep amplicon sequencing, ddPCR) for the variants a conclusion will rest on; ensemble agreement across two callers as a cheaper first proxy.
The resources that make a paired caller trustworthy
Modern somatic calling is as much about reference resources as about the algorithm:
- Panel of Normals (PoN). Sequence ~40–100 unrelated normals, call variants in them the same way, and any site that recurs is technical noise (mapping artifacts, oxidative damage signatures) rather than a private mutation. This removes a large class of systematic false positives that no amount of tumor-side filtering catches.
- Germline resource (gnomAD). Allele frequencies let the caller apply a prior: a variant at 40% VAF that is common in the general population is almost certainly inherited, not somatic, and is down-weighted or removed.
- Known-sites and orientation-bias models. GATK’s artifact-prediction models (e.g., for oxidative damage and FFPE-related deamination) learn the error signature of your library prep and filter exactly those reads.
- Contamination estimation. Tools like
GetPileupSummaries/CalculateContaminationestimate cross-sample contamination, which otherwise caps how sensitive any downstream filtering can honestly be.
Skipping these resources works on clean, high-VAF data and then quietly fails on the low-frequency calls that cancer analysis is usually about.
Thinking clearly about allele fraction, purity, and clones
The interpretive core of somatic results is a small piece of arithmetic you should do explicitly:
- Expected VAF ≈ (purity × clonal copy number) / (purity × total copy number + (1 − purity) × 2). For a pure tumor, diploid, clonal heterozygous mutation, that gives 0.5; at 40% purity it gives about 0.17. If you see 4%, the mutation is either subclonal or the region is amplified — copy-number context decides which.
- Subclones exist. A low-VAF cluster of variants in a gene is often a subclone, not sequencing noise. Cancer evolution analysis turns exactly this continuous VAF distribution into clonal trees.
- Purity and copy number come from the same data. Tools like FACETS, PureCN, or GATK’s CNV pipeline estimate them jointly with variant calling; a VAF table interpreted without them is the single most common over-claim in early cancer genomics reports.
Treat every reported VAF as “fraction of reads at this position,” never as “fraction of cells carrying the mutation,” until purity and copy number have been accounted for.
Common failure modes
- Tumor-only calling without a PoN — germline SNPs flood the call set, and rare inherited variants are reported as driver mutations. If no normal exists, at minimum subtract population-frequency databases and expect a materially noisier result.
- FFPE artifacts. Formalin-fixed tissue introduces C→T and G→A deamination artifacts at low VAF, precisely where you are looking. Orientation-bias filters and dedicated FFPE tools exist for this; ignoring them manufactures mutations.
- Mismatched tumor/normal processing. Different aligners, different reference builds, or different intervals between the two BAMs create differences that look like biology.
- Reporting raw caller output. Unfiltered VCFs are hypothesis generators. Depth, allele fraction, strand bias, and normal-support at each site belong in the table you show anyone.
- Calling on poor-quality normal. A normal with tumor contamination (e.g., circulating tumor DNA in blood) subtracts real somatic variants along with the germline — one reason ctDNA analysis uses dedicated tumor-informed designs instead of naive subtraction.
From call set to a defensible result
A somatic call set becomes a report when each surviving variant carries evidence: depth and allele fraction in both samples, normal absence, artifact filters passed, population frequency, functional consequence, and catalogue/clinical annotation. Variants central to the conclusion get orthogonal validation. Crucially, the filtering thresholds and the caller version are recorded — different settings materially change call counts, and a result that cannot state them is not reproducible.
Key takeaways
- Somatic calling = paired comparison: matched normal removes inherited variants, tumor allele fractions are read as continuous evidence rather than genotype classes.
- Low VAF is the whole game; systematic artifacts of the same size as your signal are removed by Panel of Normals, germline priors, and artifact models, not by hope.
- VAF must be read together with tumor purity and local copy number before it means anything biological.
- FFPE damage, contamination, and mismatched processing between tumor and normal are the classic manufactured mutations.
- Annotation and orthogonal validation turn a VCF into a defensible result; caller version and filter thresholds belong in the methods.
- Tumor-only analyses are a fallback with known costs, not an equivalent shortcut.
Challenge
Take a public paired tumor-normal VCF (the TCGA/Sanger COSMIC-hosted call sets or an ICGC release will do) and pick one variant at ~5% VAF and one near 50%. For each, look up its depth and allele fraction in both tumor and normal, check its gnomAD frequency, and reason out why it was called somatic or filtered as germline. Then find an FFPE or low-VAF call you distrust and identify which artifact annotation condemns it. That habit — reading evidence columns instead of trusting the PASS label — is the difference between running a caller and doing somatic analysis.
Working through a cancer genomics dataset for a project or thesis? Ampersand Academy offers one-to-one mentoring in bioinformatics — part of Mahadhi, a development and digital marketing company.
FAQ
What makes a variant somatic rather than germline?
A somatic variant arose after fertilization and is present only in a subset of the body’s cells — in cancer, in the tumor lineage. Operationally, it is a variant found in the tumor but absent from the patient’s matched normal sample, and not explained by inherited variation.
Why can’t I just run a germline caller on the tumor?
Germline callers expect allele fractions near 50% or 100% and classify everything else as error or low quality. Tumor mutations routinely sit at 2–30% because of normal-cell contamination and subclonality, so a germline caller discards exactly the calls you are looking for while keeping the inherited variants you are not.
What is a Panel of Normals and do I need one?
It is a set of unrelated normal samples called through the same pipeline; sites recurring across them are technical artifacts and are removed from tumor calls. For any serious somatic analysis it is close to mandatory — it is the main defense against mapping and library-prep artifacts that occur at low allele fraction.
How does tumor purity affect my variant allele fractions?
Pure tumor with a clonal heterozygous mutation gives ~50% VAF; at 40% purity the same mutation reads near 17%. Lower purity pushes real mutations toward the noise floor, which is why purity estimation accompanies allele-fraction interpretation in any honest analysis.
Should I trust low-VAF calls below 5%?
Only with supporting evidence: high depth, balanced strands, no read-position bias, absence from the Panel of Normals, and ideally orthogonal validation. Many pipelines use 5% as a default reporting threshold for bulk tissue; below that, error models and validation decide, not the caller’s PASS flag alone.
What is the difference between tumor-only and matched tumor-normal calling?
Matched calling subtracts the patient’s germline variants directly, giving clean somatic calls. Tumor-only calling must approximate that subtraction with population-frequency databases, which is less complete — more germline contamination and more false positives remain, especially at low allele fractions.
Which annotation tools matter for somatic results?
VEP or SnpEff for functional consequence and population frequencies, plus cancer-specific resources such as COSMIC for catalogue recurrence and OncoKB or CIViC for clinical interpretation. Annotation determines which calls are worth a reviewer’s attention; without it a call set is only coordinates.

