Variant Allele Frequency: How to Calculate VAF
The calculator for this page is switched off while it is checked. The formula is below, and the worked example in the article shows how to use it by hand.
This calculator determines the variant allele frequency (VAF) from the number of reads supporting a variant and the total read depth at that position. You enter the variant read count and the total depth, and the calculator returns the VAF as a percentage, along with the reference allele frequency. This is a core metric in genomics for estimating the proportion of a DNA variant in a sample.
Formula
Variant allele frequency (VAF) is the fraction of sequencing reads that carry a specific variant at a genomic position.
VAF (%) = (Number of variant reads / Total read depth) × 100
- Variant reads – the count of reads that show the alternative (non-reference) allele at that position.
- Total depth – the total number of sequencing reads that cover that position (including both reference and variant reads).
The result is expressed as a percentage. For example, a VAF of 50% means half of the sequencing reads carry the variant.
Worked Example
Using the default values from the calculator: variant reads = 30, total depth = 100.
- Divide variant reads by total depth: 30 ÷ 100 = 0.3
- Multiply by 100 to get a percentage: 0.3 × 100 = 30%
- The VAF is 30%.
The reference allele frequency is simply 100% − 30% = 70%.
When to Use VAF
VAF is used in many genomics contexts:
- Somatic mutation calling – in tumor samples, the VAF helps estimate the proportion of cancer cells carrying a mutation (though copy number and tumor purity affect this).
- Germline variant detection – a heterozygous variant in a diploid normal sample should have a VAF near 50%, while a homozygous variant should be near 100%.
- Clonal hematopoiesis – low VAFs (e.g., 2-10%) can indicate small clones in blood.
- Quality control – checking that VAFs match expected inheritance patterns or sample purity.
How to Read the Result
Interpretation depends on the context:
- Germline heterozygous – expect ~50% VAF.
- Germline homozygous – expect ~100% VAF.
- Somatic variant in a pure tumor – a clonal heterozygous mutation may be near 50%, but with normal cell contamination it will be lower.
- Low VAF (e.g., <5%) – may be a technical artifact, a subclonal mutation, or a variant in a small fraction of cells.
Always consider sequencing error rates and platform-specific noise when interpreting very low VAFs.
Common Mistakes
- Using total reads instead of depth – total reads on the sequencer is not the same as depth at a specific position. Use the depth at the variant site.
- Forgetting to multiply by 100 – VAF is typically reported as a percentage, not a fraction.
- Including reads with low mapping quality – should use high-confidence reads only.
- Ignoring strand bias – if all variant reads come from one strand, the VAF may be unreliable.
- Not accounting for ploidy – in copy number altered regions, VAF expectations shift.
Tips
- Always filter reads by base quality (e.g., Q20) and mapping quality before counting.
- Use a minimum depth threshold (e.g., 20-30 reads) to ensure the VAF is statistically meaningful.
- For somatic calling, compare VAF with the expected cancer cell fraction if tumor purity and copy number are known.
- Report VAF with confidence intervals when possible, especially for low-depth data.
- Use the same read processing pipeline for all samples you compare.
Troubleshooting
- VAF is unexpectedly 0% – Check that the variant read count is not zero. Also verify that you are looking at the correct position and that the variant is actually present in the data.
- VAF is >100% – This can happen if variant reads exceed total depth, which indicates an error in read counting. Recheck your depth definition.
- VAF is exactly 50% but you expected 100% – The sample may be heterozygous, or there may be contamination from normal cells. Check the reference allele count.
- VAF varies widely between samples – Ensure consistent depth and quality filters. Batch effects or different sequencing runs can cause variation.
- Low VAF but variant looks real – Consider that the variant may be subclonal or present in only a small fraction of cells. Validate with a sensitive method like droplet digital PCR.
Frequently Asked Questions
What is a good VAF for a germline heterozygous variant?
In a diploid sample, a true heterozygous variant should have a VAF near 50%, typically between 40% and 60% depending on sequencing noise and alignment biases.
Can VAF be used to estimate tumor purity?
Yes, but it requires knowing the copy number and the zygosity of the variant. For a clonal heterozygous mutation in a pure tumor, VAF ≈ 50% × purity. So if VAF is 30%, purity might be around 60% (assuming no copy number changes).
What does a VAF of 1% mean?
It means that 1% of the sequencing reads at that position carry the variant. This could be a real subclonal mutation, a low-level mosaic variant, or a sequencing artifact. It is often near the detection limit of standard NGS.
How does sequencing depth affect VAF accuracy?
Higher depth gives a more precise VAF estimate. For example, at 30x depth, the 95% confidence interval for a 50% VAF is roughly ±18%, while at 100x it is ±10% and at 500x it is ±4%.
Should I use VAF or allele count in reports?
Report both. The allele count (variant reads) is useful for filtering, while VAF is more interpretable for biological significance. Many guidelines require both.
Why is my VAF different from what I see in IGV?
Visual inspection in IGV may include reads that fail quality filters or are duplicates. The VAF should be calculated from the same filtered BAM that was used for variant calling.
Related
Formula used
in var | Variant reads | reads | 30 | 0 in depth | Total depth | reads | 100 | 0 out vaf | Variant allele frequency | % | (var / depth) * 100 | 2 out ref | Reference allele frequency | % | ((depth - var) / depth) * 100 | 2
Each line is one input (in, sel, list) or one result (out: label, unit, formula, decimals). How the calculators work
Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.