The Variant Call Format and VCFtools
Petr Danecek1, Adam Auton2, Goncalo Abecasis3, Cornelis A. Albers1, Eric Banks4, Mark A. DePristo4,Bob Handsaker4, Gerton Lunter5, Garbor Marth6, Steve Sherry7, Gilean McVean8, Richard Durbin1,*and 1000 Genomes Project Analysis Group9

Wellcome Trust Sanger Institute, Cambridge, CB10 1SA, UK; 2University of Oxford, Wellcome Trust Centre for Human Genetics, Oxford, OX3 7BN,
UK; 3Center for Statistical Genetics, Department of Biostatistics, University of Michigan, Ann Arbor, M48109, USA; 4Broad Institute of MIT andHarvard, Cambridge, MA 02141, USA; 5University of Oxford, Department of Physiology, Anatomy and Genetics, Oxford, OX1 3QX, UK; 6Boston
College, Department of Biology, MA 02467, USA; 7National Institutes of Health National Center for Biotechnology Information, MD 20894, USA;
8
University of Oxford Department of Statistics, Oxford, OX1 3TG, UK; 9http://www.1000genomes.org

1Abstract
One of the main uses of next-generation sequencing is to discover variation amongst large populations ofrelated samples. Recently the format for storing next-generation read alignments has been standardised by
the SAM/BAM file format specification. This has significantly improved the interoperability of next-generation
tools for alignment, visualisation, and variant calling. We propose the Variant Call Format (VCF) as astandarised format for storing the most prevalent types of sequence variation, including SNPs, indels andlarger structural variants, together with rich annotations. VCF is usually stored in a compressed manner andcan be indexed for fast data retrieval of variants from a range of positions on the reference genome. Theformat was developed for the 1000 Genomes Project, and has also been adopted by other projects such as
UK10K, dbSNP, or the NHLBI Exome Project. VCFtools is a software suite that implements various utilities forprocessing VCF files, including validation, merging and comparing, and also provides a general Perl and Python
API. The VCF specification and VCFtools are available from http://vcftools.sourceforge.net.

Body

VCF header

Example##fileformat=VCFv4.0
Mandatory header lines##fileDate=20100707##source=VCFtools
Optional header lines (meta-data##reference=NCBI36
about the annotations in the VCF body)##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral Allele">##INFO=<ID=H2,Number=0,Type=Flag,Description="HapMap2 membership">##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality (phred score)">##FORMAT=<ID=GL,Number=3,Type=Float,Description="Likelihoods for RR,RA,AA genotypes (R=ref,A=alt)">##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth">##ALT=<ID=DEL,Description="Deletion">##INFO=<ID=SVTYPE,Number=1,Type=String,Description="Type of structural variant">##INFO=<ID=END,Number=1,Type=Integer,Description="End position of the variant">
Reference alleles (GT=0)#CHROM POS ID
REF ALTQUAL FILTER INFOFORMAT
SAMPLE1 SAMPLE211 .
ACG A,AT.
PASS.
GT:DP
1/2:130/0:29
12 rs1
CT,CT.
PASS
H2;AA=T
GT:GQ
0|1:100 2/2:70
15 .
A
G.
PASS
.
GT:GQ
1|0:77
1/1:95
Alternate alleles (GT>0 is1100 .
T
<DEL>
.
PASS
SVTYPE=DEL;END=300
GT:GQ:DP
1/1:12:3 0/0:20
an index to the ALT column)
Other event
Deletion
Phased data (G and C above
SNPInsertion
are on the same chromosome)
Large SV

Types of variants
Insertions

SNPs
Alignment

ACGT
ATGT

VCF representation

POS REF ALT
2CT

ACGT
A--T

Alignment

AC-GT
ACTGT

VCF representation

POS REF ALT
2CCT

Annotations may apply to the variant as a whole (the INFO column)
or to each genotype (the FORMAT column). In addition to genotype,other commonly used annotations include genotype likelihoods,
dbSNP membership, ancestral allele, read depth, mapping quality,
and others.

Complex events

Deletions
Alignment

Extensible meta-data

VCF representation

POS REF ALT1
ACG AAlignment

ACGTA-TT

VCF representation

POS REF ALT
1
ACG AT

VCFtools
Format validation● Annotating● Comparing, calculating basic statistics● Merging● Creating intersections and complements●Large structural variants
VCF representation

POS REF ALT
INFO
100 T
<DEL> SVTYPE=DEL;END=300

ExamplesVCF highlights
Meta-data - fexible and extensible● Text format - easy to generate and parse● Stored compressed - compact size
● Indexed by tabix - fast random access by genomic position● Open source implementation - VCFtools, GATK, ... (C++, Java,general Perl and Python API)

# Validate VCF files
vcf-validator file.vcf.gz●# Compare VCF files
compare-vcf A.vcf.gz B.vcf.gz C.vcf.gz# List positions present in at least two of the files
vcf-isec -n +2 A.vcf.gz B.vcf.gz C.vcf.gz > out.vcf

http://vcftools.sourceforge.net/specs.html