The Variant Call Format or VCF is a standard text file format used in bioinformatics for storing gene sequence or DNA sequence variations. The format was developed in 2010 for the 1000 Genomes Project and has since been used by other large-scale genotyping and DNA sequencing projects.[1][2] VCF is a common output format for variant calling programs due to its relative simplicity and scalability.[3][4] Many tools have been developed for editing and manipulating VCF files, including VCFtools, which was released in conjunction with the VCF format in 2011, and BCFtools, which was included as part of SAMtools until being split into an independent package in 2014.[1][5]
The standard is currently in version 4.5,[6][7] although the 1000 Genomes Project has developed its own specification for structural variations such as duplications, which are not easily accommodated into the existing schema.[8]
Additional file formats have been developed based on VCF, including genomic VCF (gVCF). gVCF is an extended format which includes additional information about "blocks" that match the reference and their qualities.[9][10]
Example
##fileformat=VCFv4.3
##fileDate=20090805
##source=myImputationProgramV3.1
##reference=file:///seq/references/1000GenomesPilot-NCBI36.fasta
##contig=<ID=20,length=62435964,assembly=B36,md5=f126cdf8a6e0c7f379d618ff66beb2da,species="Homo sapiens",taxonomy=x>
##phasing=partial
##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of Samples With Data">
##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth">
##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency">
##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral Allele">
##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP membership, build 129">
##INFO=<ID=H2,Number=0,Type=Flag,Description="HapMap2 membership">
##FILTER=<ID=q10,Description="Quality below 10">
##FILTER=<ID=s50,Description="Less than 50% of samples have data">
##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth">
##FORMAT=<ID=HQ,Number=2,Type=Integer,Description="Haplotype Quality">
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NA00001 NA00002 NA00003
20 14370 rs6054257 G A 29 PASS NS=3;DP=14;AF=0.5;DB;H2 GT:GQ:DP:HQ 0|0:48:1:51,51 1|0:48:8:51,51 1/1:43:5:.,.
20 17330 . T A 3 q10 NS=3;DP=11;AF=0.017 GT:GQ:DP:HQ 0|0:49:3:58,50 0|1:3:5:65,3 0/0:41:3
20 1110696 rs6040355 A G,T 67 PASS NS=2;DP=10;AF=0.333,0.667;AA=T;DB GT:GQ:DP:HQ 1|2:21:6:23,27 2|1:2:0:18,2 2/2:35:4
20 1230237 . T . 47 PASS NS=3;DP=13;AA=T GT:GQ:DP:HQ 0|0:54:7:56,60 0|0:48:4:51,51 0/0:61:2
20 1234567 microsat1 GTC G,GTCT 50 PASS NS=3;DP=9;AA=G GT:GQ:DP 0/1:35:4 0/2:17:2 1/1:40:3
Demonstrating the difference between the binary BCF and VCF formats.
The VCF header
The header begins the file and provides metadata describing the body of the file. Header lines are denoted as starting with #. Special keywords in the header are denoted with ##. Recommended keywords include fileformat, fileDate and reference.
The header contains keywords that optionally semantically and syntactically describe the fields used in the body of the file, notably INFO, FILTER, and FORMAT (see below).
The columns of a VCF
The body of VCF follows the header, and is tab separated into 8 mandatory columns and an unlimited number of optional columns that may be used to record other information about the sample(s). When additional columns are used, the first optional column is used to describe the format of the data in the columns that follow.
Name
Brief description (see the specification for details).
1
CHROM
The name of the sequence (typically a chromosome) on which the variation is being called. This sequence is usually known as 'the reference sequence', i.e. the sequence against which the given sample varies.
2
POS
The 1-based position of the variation on the given sequence.
3
ID
The identifier of the variation, e.g. a dbSNP rs identifier, or if unknown a ".". Multiple identifiers should be separated by semi-colons without white-space.
4
REF
The reference base (or bases in the case of an indel) at the given position on the given reference sequence.
A quality score associated with the inference of the given alleles.
7
FILTER
A flag indicating which of a given set of filters the variation has failed or PASS if all the filters were passed successfully.
8
INFO
An extensible list of key-value pairs (fields) describing the variation. See below for some common fields. Multiple fields are separated by semicolons with optional values in the format: <key>=<data>[,data].
9
FORMAT
An (optional) extensible list of fields for describing the samples. See below for some common fields.
+
SAMPLEs
For each (optional) sample described in the file, values are given for the fields listed in FORMAT
Common INFO fields
Arbitrary keys are permitted, although the following sub-fields are reserved (albeit optional):[6]
Name
Brief description
AA
ancestral allele
AC
allele count in genotypes, for each ALT allele, in the same order as listed
AF
allele frequency for each ALT allele in the same order as listed (use this when estimated from primary data, not called genotypes)
AN
total number of alleles in called genotypes
BQ
RMS base quality at this position
CIGAR
cigar string describing how to align an alternate allele to the reference allele
DB
dbSNP membership
DP
combined depth across samples, e.g. DP=154
END
end position of the variant described in this record (for use with symbolic alleles)
H2
membership in hapmap2
H3
membership in hapmap3
MQ
RMS mapping quality, e.g. MQ=52
MQ0
Number of MAPQ == 0 reads covering this record
NS
Number of samples with data
SB
strand bias at this position
SOMATIC
indicates that the record is a somatic mutation, for cancer genomics
VALIDATED
validated by follow-up experiment
1000G
membership in 1000 Genomes
Any other info fields are defined in the .vcf header.
Common FORMAT fields
Name
Brief description
AD
Read depth for each allele
ADF
Read depth for each allele on the forward strand
ADR
Read depth for each allele on the reverse strand
DP
Read depth
EC
Expected alternate allele counts
FT
Filter indicating if this genotype was “called”
GL
Genotype likelihoods
GP
Genotype posterior probabilities
GQ
Conditional genotype quality
GT
Genotype
HQ
Haplotype quality
MQ
RMS mapping quality
PL
Phred-scaled genotype likelihoods rounded to the closest integer
PQ
Phasing quality
PS
Phase set
Any other format fields are defined in the .vcf header.
Binary VCF
Binary VCF or BCF files are binary, BGZF compressed variation of VCF files. BCF files allow fast and efficient indexed queries through tools like Tabix once an index file has been created.
See also
The FASTA format, used to represent genome sequences.
The FASTQ format, used to represent DNA sequencer reads along with quality scores.
The SAM format, used to represent genome sequencer reads that have been aligned to genome sequences.
The GVF format (Genome Variation Format), an extension based on the GFF3 format.