A VCF (Variant Call Format) file is a plain-text table in which each row is a position where your DNA differs from the reference genome, or where the software made a call there. Header lines start with ##, the column names start with #CHROM, and every other line is one variant.
The file is usually compressed (.vcf.gz), so double-clicking it rarely works. Command-line tools or a genome viewer open it quickly, and you can read it by eye once you know the columns.
The three parts of a VCF
Our overview of FASTQ, BAM and VCF files covers where the VCF sits in the pipeline. This guide is about reading one. Open a VCF and you will see three kinds of line:
- Meta-information lines beginning with
##. They describe the file: the format version, the tools used, the reference genome, and what each abbreviation in the later columns means. - One header line beginning with a single
#, which names the columns. - Data lines, one per variant, with tab-separated fields.
The header is worth reading before anything else because it records the tools and the reference build. If the build is unfamiliar, see our guide to GRCh37 versus GRCh38.
The eight fixed columns
The VCF specification defines eight required fields. A ninth, FORMAT, and one or more sample columns follow when genotypes are included.
| Column | What it holds |
|---|---|
| CHROM | Chromosome or contig name, taken from the reference (for example chr5 or 5) |
| POS | Position on that chromosome, counting the first base as 1 |
| ID | An identifier such as a dbSNP rs number; a dot means none |
| REF | The base or bases in the reference at that position |
| ALT | The alternate allele(s) seen, separated by commas |
| QUAL | A Phred-scaled confidence score for the alternate-allele call |
| FILTER | PASS if the call survived all filters, otherwise the names of the filters it failed |
| INFO | Extra annotations as KEY=value pairs separated by semicolons |
A dot (.) is the standard symbol for "missing." You will see it often, and it does not mean something went wrong.
Reading one line
Here is an invented example, not a real variant of yours:
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT SAMPLE1 chr5 1000000 . A G 612 PASS DP=34 GT:GQ:DP 0/1:99:34
Read left to right: on chromosome 5 at position 1,000,000, the reference base is A and a G was observed. No rs number is attached. The call scored 612 and passed all filters. The INFO field says 34 reads covered the site (DP is read depth). The last two columns say what this person carries: the FORMAT column lists the fields (GT:GQ:DP) and the sample column gives their values in the same order.
Decoding the genotype
The GT field is the part people care about. In the VCF specification, 0 stands for the reference allele, 1 for the first ALT allele, 2 for the second, and so on. The separator shows phasing.
| GT | Meaning |
|---|---|
0/0 | Two reference alleles (usually only appears in files that record non-variant sites) |
0/1 | Heterozygous: one reference and one alternate allele, phase unknown |
1/1 | Homozygous for the alternate allele |
1/2 | Two different alternate alleles (the ALT column lists both, e.g. G,T) |
1|0 | The pipe means phased: which allele came from which parent's chromosome is known |
./. | No call: the software could not decide |
A missing line is not a clean bill of health. A standard VCF lists variant sites only. If a position is absent, you may match the reference there, or the position may simply have been uncallable. Some pipelines also write a gVCF, which records non-variant stretches and is much larger.
Free ways to open it
Whole-genome VCFs hold millions of lines, so a spreadsheet or word processor will freeze. Better options:
- Peek from the terminal. On macOS or Linux,
gzip -dc your.vcf.gz | less -Sstreams the file without unpacking it. Pressqto quit. - bcftools. This free command-line tool reads compressed VCFs.
bcftools view -h your.vcf.gzprints only the header, andbcftools view -H -r chr5:1000000-1001000 your.vcf.gzprints the variants in one region. Region queries need an index, whichbcftools indexcreates. - A genome viewer. The free IGV desktop application loads VCF tracks so you can scroll along chromosomes.
- An analysis service. Our guide to analyzing raw genome data lists upload-based tools that accept VCFs.
Keep the original download untouched and work on a copy. Large files are also worth backing up properly: see how to store and back up your genome files.
A VCF is only the start
Whole genome sequencing from Dante Labs delivers your raw data, so you can rerun the analysis with newer tools later instead of relying on a single report.
See what whole genome sequencing covers → Code GENOME — 10% offAffiliate link. Consumer sequencing is not a clinical diagnostic. Confirm medically important findings through your doctor.
What a VCF cannot tell you
A VCF records what differs from the reference. It does not say whether a difference matters. The ID and INFO columns may carry annotation from databases, but annotation quality varies, and a long list of "hits" is not a diagnosis. Rare variants in particular deserve caution: read why raw-data reports throw false alarms and our guide to variants of uncertain significance before drawing conclusions.
Bottom line
You do not need to become a bioinformatician to use your VCF. Check the header for the reference build, read a few lines with the table above, and use a viewer or upload tool for the rest. If a line seems to describe a health risk, treat it as a question for a clinician, not an answer.
Common questions
What does a VCF file contain?
A header describing the file and reference genome, followed by one tab-separated line for each variant: chromosome, position, reference and alternate bases, quality, filter status, annotations and your genotype.
What program opens a VCF file?
Plain text editors can open small VCFs, but whole-genome files are too large. Use command-line tools such as bcftools, a genome viewer such as IGV, or an upload-based analysis service.
What does 0/1 mean in a VCF?
It is a heterozygous genotype: one copy of the reference allele (0) and one copy of the first alternate allele (1). A slash means the phase is unknown, while a pipe means the parent of origin of each allele is known.
Why is my VCF file compressed?
Whole-genome VCFs list millions of variants, so providers usually compress them as .vcf.gz. Index files (.tbi or .csi) let tools jump to a region without reading the whole file.
Does a VCF show my health risks?
No. It lists genetic differences, not their meaning. Interpreting them requires annotation and clinical context, and anything concerning should be confirmed by a clinical laboratory.
Sources and verification
- The Variant Call Format Specification, v4.3 (SAM/BAM and related specifications group)
- bcftools manual (indexing and region options)
- IGV desktop documentation (VCF tracks)
Field definitions and genotype codes follow the VCF 4.3 specification. The sample line is invented for teaching. File names, compression and extra columns vary by provider, so check your own header.
Medical disclaimer. GenomeTesting.org publishes educational content about genetics and consumer genomic testing. Nothing here is medical advice, a diagnosis, or a substitute for care from a qualified clinician or genetic counsellor. Decisions about testing, treatment, or interpreting your own results should be made with a healthcare professional who can see your full history.
Affiliate disclosure. Some links on this page are affiliate links. If you buy through them we may earn a commission at no extra cost to you. This never changes which products we recommend or what we say about them.