The variant-calling standard
The problem. Once BWA has aligned your reads, you still have to call variants — decide where the sample differs from the reference — through a haze of sequencing errors, alignment artifacts, and miscalibrated base-quality scores. Early on, everyone did this differently, with idiosyncratic scripts and no shared notion of “done right.”
The idea. GATK provides both an engine and a methodology. The engine is a MapReduce-style framework that walks over aligned reads and lets tools be written as simple traversals, so analyses parallelize cleanly over the genome. On top of it sits the “best practices” workflow — base-quality recalibration, local realignment around indels, and joint genotyping — that models the systematic errors instead of ignoring them. The output is variant calls with defensible, reproducible provenance.
Why it matters. GATK is the calling step in my variant_calling_nf pipeline — the germline best-practices path, directly downstream of BWA. Reading the founding paper explains why the recalibration and realignment steps I run exist: each one corrects a specific bias that would otherwise masquerade as a variant. It’s the same “model the error, don’t ignore it” discipline as DESeq and Percolator, applied to DNA.
Verdict. Foundational, and its best-practices framing arguably mattered more than the code — it standardized a field. The toolkit has evolved enormously since (HaplotypeCaller, GVCFs), so read the paper for the principles and the current docs for the commands. Together with BWA, this is my variant pipeline, explained from the source.