Skip to content
/genome-variants/variant-calling

Variant Calling

The process of inferring, from aligned sequencing reads, where your genome differs from a reference sequence, and emitting those differences as genotypes in a VCF.

Variant calling is the inference step that turns aligned sequencing reads into a list of positions where your genome differs from a reference, with a genotype and a confidence score at each position. A “variant” in genetic testing means exactly this: a difference from the reference sequence. It carries no judgment about health. Most of the 4–5 million variants in a typical human genome are common polymorphisms shared with millions of other people.

How it works

The pipeline is FASTQ → BAM/CRAM → VCF. Reads come off the sequencer as FASTQ, get aligned to a reference (GRCh38 or, increasingly, T2T-CHM13) with bwa-mem2 or minimap2, get sorted and duplicate-marked, and then a caller walks the pileup.

The naive version is counting: 30 reads at a position, 15 carrying A and 15 carrying G, call a heterozygote. Real callers do more. GATK HaplotypeCaller reassembles reads in active regions into local de Bruijn graphs, realigns them against candidate haplotypes with a pair-HMM, and computes genotype likelihoods (the PL field in your VCF). DeepVariant instead renders the pileup as a multi-channel image and runs a CNN over it, which sidesteps hand-tuned error models. Both emit a VCF: one line per variant site, CHROM POS REF ALT QUAL FILTER INFO FORMAT, and a sample column with GT:AD:DP:GQ:PL.

Error at every upstream stage propagates into calls. Base quality miscalibration, alignment ambiguity in segmental duplications and low-complexity repeats, PCR-induced errors in homopolymers, reference bias against non-reference alleles. Calling is best treated as a chain where each step’s assumptions matter 1. Evaluation is its own discipline: you need a truth set, a defined set of confident regions, and a stratification of results by variant type, or your “99% accuracy” number means nothing 2.

In your own data

Pull up your VCF and check a few things before you believe anything in it.

Depth and allele balance. bcftools query -f '%CHROM\t%POS\t%REF\t%ALT[\t%GT\t%AD\t%DP\t%GQ]\n' on the sites you care about. A het call with AD=3,27 at 30x is suspicious: real hets sit near 50/50, and a 10/90 split is usually a mapping artifact or a somatic/mosaic event. GQ < 20 means the caller is not sure which genotype you have.

FILTER column. Many pipelines hand you the unfiltered call set. bcftools view -f PASS first. If FILTER is all ., no hard filtering or VQSR was applied and you are looking at raw calls, which at whole-genome scale include tens of thousands of false positives.

Reference build. A coordinate is meaningless without it. Check the ##contig lines and ##reference header. Mixing GRCh37 coordinates from an old paper with a GRCh38 VCF is the single most common self-inflicted error. CrossMap or picard LiftoverVcf with the chain file, and expect a few percent of sites to fail liftover.

Callable regions. Absence of a variant call is not evidence of reference genotype. Run mosdepth and look at what fraction of your target regions fall below 10x. Genes like PMS2, SMN1, and the HLA locus have paralogs that break short-read alignment, and callers often silently produce nothing there.

Run a second caller. Concordance between independent pipelines on the same reads is far from complete: comparisons of multiple exome and genome pipelines have found agreement on the order of 57% of SNV calls, with alignment and calling choices each contributing to the disagreement 3. Consensus calling across two or three callers materially reduces false positives at some cost in sensitivity 4. We would run DeepVariant as the primary caller and GATK as the cross-check, then treat sites where they disagree as unresolved rather than picking a winner.

Limitations

Calling tells you what letters you have. It says nothing about what they do. The classification layer that follows (ACMG criteria, ClinVar, gene-specific panels) is where most of the uncertainty lives. In clinical hereditary-disease testing, variants of uncertain significance are the most common non-negative result, and their rate varies sharply by gene and by ancestry 5. VUS are not “probably bad news”: the reasonable default is to treat a variant as uncertain until evidence proves otherwise, and most VUS that are eventually reclassified move toward benign 6. Acting on one without a genetics professional is a documented source of harm, including unnecessary surgery 7. Reclassification is ongoing work, driven by population databases and functional assays, and the VUS problem is expected to shrink but not disappear 8.

Short reads also miss whole classes of variation: repeat expansions, large structural variants, and anything in the ~5% of the genome that short reads cannot uniquely map. A clean VCF is a partial view, not a complete one.

If a variant in your data has a plausible clinical bearing, take it to a clinical geneticist or genetic counselor with an orthogonally confirmed result. Research-grade calls are not diagnostic.

Woolf Software builds longitudinal molecular profiles of individuals: whole-genome sequencing, RNA sequencing, proteomics, blood biomarkers, and continuous glucose data, integrated into one model of you. Build your profile.

Computational Angle

Your VCF is a statistical inference, not a readout. Holding the BAM/CRAM and the caller parameters lets you re-call, filter, and check concordance yourself instead of trusting one pipeline's defaults.

Related Terms

References

  1. Stepanka Zverinova, Victor Guryev. Variant calling: Considerations, practices, and developments . Human Mutation, 2021. DOI
  2. Nathan D. Olson, Steven P. Lund, Rebecca E. Colman, et al.. Best practices for evaluating single nucleotide variant calling methods for microbial genomics . Frontiers in Genetics, 2015. DOI
  3. Jason O'Rawe, Tao Jiang, Guangqing Sun, et al.. Low concordance of multiple variant-calling pipelines: practical implications for exome and genome sequencing . Genome Medicine, 2013. DOI
  4. Ujjwal Prathap Singh, Ranjana M Raju, Jeffrey W. Bizzaro, et al.. Developing a Whole Exome Consensus Variant-Calling Pipeline to Infer Causal Pathogenic Variants . Next-Generation Sequencing, 2025. DOI
  5. Elaine Chen, Flavia M. Facio, Kerry W. Aradhya, et al.. Rates and Classification of Variants of Uncertain Significance in Hereditary Disease Genetic Testing . JAMA Network Open, 2023. DOI
  6. Karen E. Weck. Interpretation of genomic sequencing: variants should be considered uncertain until proven guilty . Genetics in Medicine, 2018. DOI
  7. Lily Hoffman-Andrews. The known unknown: the challenges of genetic variants of uncertain significance in clinical practice . Journal of Law and the Biosciences, 2017. DOI
  8. Douglas M. Fowler, Heidi L. Rehm. Will variants of uncertain significance still exist in 2030? . The American Journal of Human Genetics, 2024. DOI