A modern germline pipeline is four moving parts. Each one fails in characteristic ways that look like real biology if you don't know to check.
Align
BWA-MEM2, minimap2 (long read), DRAGEN-Map
Reads are mapped to a reference (GRCh38, T2T-CHM13). Reference choice matters: GRCh38 mis-maps ~5M reads per genome that T2T resolves correctly.
Silent failure · Decoy contigs disabled → false SVs in HLA, KIR, centromeres.
Pre-process
MarkDuplicates, BQSR, soft-clipping
Optical/PCR duplicates removed; base qualities recalibrated against known sites. Skip BQSR for PCR-free WGS — it's a no-op there.
Silent failure · Failing to mark duplicates inflates allele fractions in tumor-only calling.
Call
DeepVariant, GATK HaplotypeCaller, Strelka2; Clair3 / DeepVariant for ONT/HiFi; Mutect2 for somatic
Joint-call families/cohorts when possible. DeepVariant currently leads on F1 for short-read SNVs; PEPPER-Margin-DeepVariant for nanopore.
Silent failure · Single-sample calling on low-coverage WGS produces 30–50% false het calls in low-complexity regions.
Annotate & filter
VEP, SnpEff, Ensembl MANE select, gnomAD v4, ClinVar, SpliceAI
Pick one canonical transcript set (MANE) and stick to it. Filter on gnomAD popmax AF, not global AF.
Silent failure · Reporting a variant against a non-MANE transcript is the #1 cause of clinician confusion at sign-out.
Truth sets you should benchmark against
GIAB HG001–HG007 (Genome in a Bottle), CMRG v1.00 for medically relevant genes, T2T-Q100 for the hard regions. If your lab can't reproduce ≥99.5% F1 on HG002 SNVs, you cannot trust your clinical calls.