Understanding VCF Genotype Fields

By Dr. Zubair Khalid, DVM, MS, PhD ·

Understanding VCF Genotype Fields

VCF genotype fields are the per-sample values stored in the FORMAT column and the sample columns of a Variant Call Format file. They record the alleles observed at a variant site, the read evidence behind that observation, and the confidence assigned to the genotype call.

That definition matters because a VCF file can look complete while hiding disagreement about what its genotype fields mean. Two files can both contain GT:AD:DP:GQ and still report different depths, different allele counts, and different quality scales because the callers that produced them applied different filters. A single human genome can carry more than four million variants across several classes [1], so even small interpretation errors scale quickly. When people search for VCF genotype fields explained, they usually want a reliable way to read the FORMAT column without confusing it with site-level INFO values. This guide builds that understanding from the file structure outward, with worked examples and practical commands.

VCF Genotype Fields Explained: Where They Sit in the File

A VCF file has a header and a body. The header begins with ##fileformat and contains metadata lines that define contigs, INFO keys, FORMAT keys, filters, and other conventions. The final header line starts with a single # and names the columns. The body contains one line per variant.

The first eight columns are fixed in order:

  1. CHROM, the reference sequence name.
  2. POS, the 1-based position of the variant.
  3. ID, an identifier such as an rs number or . when none exists.
  4. REF, the reference allele.
  5. ALT, one or more alternate alleles separated by commas.
  6. QUAL, a Phred-scaled site-level quality score.
  7. FILTER, the site-level filter status.
  8. INFO, site-level annotations encoded as key-value pairs.

After INFO, a VCF may contain a FORMAT column followed by one column per sample. The FORMAT column lists colon-separated keys such as GT:AD:DP:GQ:PL. Each sample column then holds values in exactly that same order. If the FORMAT string is GT:AD:DP:GQ:PL, the sample value 0/1:20,25:45:99:120,0,180 means GT is 0/1, AD is 20,25, DP is 45, GQ is 99, and PL is 120,0,180.

A VCF without sample columns is called a sites-only VCF. It can still carry INFO annotations, but it has no genotype fields. A VCF with sample columns carries both site-level and sample-level information, and the distinction between the two is the source of many interpretation errors.

Metadata quality varies between files. The VCF specification is flexible enough to serve as a general interchange format, but that flexibility can produce inconsistent metadata presentation across studies. Beier and colleagues argue for controlled standards, shared vocabulary, and resolvable identifiers in VCF metadata to support FAIR data principles [2]. For genotype fields, that means the header definitions are part of the evidence. A FORMAT=<ID=DP...> line tells you what the file author intended DP to mean, and the sample values tell you what was actually recorded.

Summary of common FORMAT fields

FieldScopeMeaningExampleFrequent confusion
GTPer sampleAllele indices for the genotype, with 0 for REF and 1, 2, and so on for ALT alleles0/1, 1/1, `01`Confusing allele indices with read counts or assuming every 0/1 is a high-quality heterozygote
ADPer sampleAllelic depths, usually one value per allele including REF20,25Treating AD as a genotype or assuming it always sums to DP
DPPer sample when in FORMATRead depth at the sample level, often after caller-specific filters45Confusing FORMAT/DP with INFO/DP, which is site-level
GQPer samplePhred-scaled confidence that the genotype call is correct99Treating GQ as the same score as QUAL
PLPer samplePhred-scaled genotype likelihoods, ordered by genotype120,0,180Thinking higher PL is better when lower is better
GLPer sampleLog10 genotype likelihoods-1.2,0,-1.8Mixing GL with PL or GQ
PSPer samplePhase set identifier for variants phased together12345Assuming every phased genotype has a PS value
FTPer samplePer-sample filter status used by some callersPASSConfusing sample-level FT with site-level FILTER

What Each Genotype Field Means

The FORMAT column is a contract. It defines which keys appear in each sample column and in what order. The header defines what each key means. Reading genotype fields without reading the header definitions is guesswork.

GT: the genotype itself

GT encodes the alleles present in a sample as indices into the REF and ALT alleles. 0 refers to REF, 1 refers to the first ALT allele, 2 refers to the second ALT allele, and so on. A diploid genotype 0/1 means one REF allele and one first ALT allele. 1/1 means two copies of the first ALT allele. A multiallelic record with REF A and ALT G,T can have a genotype 1/2, meaning one G allele and one T allele, with no A allele.

The slash / separates unphased alleles. The pipe | separates phased alleles. 0|1 and 1|0 describe the same heterozygous genotype in an unphased sense, but they assign the alleles to different haplotypes. Phasing is statistical and local. A phase set, recorded in PS, groups variants that were phased together.

Ploidy changes the number of allele indices. A haploid genotype has one index, such as 0 or 1. A diploid genotype has two. A triploid genotype has three, such as 0/0/1. Breedbase stores genotypes in a JSONb structure that follows the VCF data model and can handle different ploidy levels, structural variants, and any genotype encoded in VCF [3]. That design choice reflects a practical reality. Polyploid organisms are common in plant breeding, and a parser that assumes diploid genotypes will fail on them.

POS is 1-based, but GT allele indices are 0-based. This is a deliberate part of the format and a common source of off-by-one confusion when developers write custom parsers.

AD: allelic depths

AD reports the number of reads supporting each allele. In a biallelic diploid record, AD=20,25 usually means 20 reads supported REF and 25 supported ALT. The header often declares Number=R, meaning one value per allele including REF. For a multiallelic site with two ALT alleles, AD can have three values, one for REF and one for each ALT.

AD is not a genotype and it is not a guarantee of biological truth. Callers apply mapping-quality thresholds, base-quality thresholds, and duplicate filters before counting reads. Two callers can report different AD values for the same site because they count different reads. AD can also fail to sum to DP when the caller excludes reads from one field but not the other.

Allele balance is the ratio of ALT reads to total reads at a heterozygous site. For a germline diploid sample, a heterozygous site often sits near a balance of 0.5, but contamination, copy-number variation, mapping bias, and sequencing error shift that ratio. A 0/1 call with a heavily skewed AD value deserves a closer look rather than automatic acceptance.

DP: read depth

Depth appears in two places, and they are not interchangeable. INFO/DP is a site-level depth, often the total number of reads across all samples at that position. FORMAT/DP is a sample-level depth for one sample. A record can have INFO/DP=100 and two samples with FORMAT/DP=40 and FORMAT/DP=55. The numbers may not sum exactly because the site-level value and sample-level values can be computed at different stages of filtering.

Depth is a core input to genotype quality. A genotype call from three reads carries less evidence than a call from thirty reads, all else being equal. Depth alone is not sufficient, because thirty reads from one allele at a heterozygous site is evidence against the heterozygous call even though the depth is high.

GQ: genotype quality

GQ is a Phred-scaled measure of confidence in the genotype call. A GQ of 30 corresponds to an estimated probability of 1 in 1,000 that the genotype is wrong. A GQ of 99 corresponds to a much lower error probability, subject to the caller's model.

GQ is not the same as QUAL. QUAL is site-level and describes confidence that the site is variant. GQ is sample-level and describes confidence in one sample's genotype. A site can have a high QUAL and a low GQ for one sample if the site is clearly variant in the cohort but poorly supported in that individual.

GQ is also not calibrated across callers in a universal way. A GQ of 30 from one caller and a GQ of 30 from another do not necessarily mean the same error rate, because the underlying models and filters differ. Treat GQ as a useful ranking and filtering signal within a pipeline, not as a portable probability statement across every tool.

PL and GL: genotype likelihoods

PL contains Phred-scaled genotype likelihoods. For a biallelic diploid site, the values are ordered as 0/0, 0/1, and 1/1. The value 120,0,180 means the 0/1 genotype has the highest likelihood, the 0/0 genotype is 120 Phred units worse, and the 1/1 genotype is 180 Phred units worse. Lower PL is better.

GL contains log10 likelihoods instead of Phred-scaled values. The ordering follows the same genotype enumeration, but the scale differs. A GL of 0 for a genotype means that genotype has the highest likelihood on the log10 scale, and negative values are worse.

PL and GL are related but not identical. PL is derived from GL by scaling and rounding. A parser that treats PL as a quality score and rewards higher values will invert the meaning of the field.

For multiallelic sites, the number of likelihood values grows with the number of genotypes. A biallelic diploid site has three genotype values. A triallelic diploid site has six. A tetraploid site has more. The header declaration Number=G signals that the field has one value per genotype.

PS, FT, and other per-sample fields

PS records a phase set. Variants with the same PS value were phased together, so their phased genotypes can be interpreted as a consistent haplotype block. A phased VCF without PS values can still carry | separators, but the block structure is less explicit. sim1000G, for example, takes a raw phased VCF as input, extracts haplotypes, and uses linkage disequilibrium to simulate new genotype data [4]. Phasing is therefore not a cosmetic detail. It changes what downstream simulation and haplotype analysis can do.

FT is a per-sample filter status used by some pipelines. It is distinct from the site-level FILTER column. A sample can pass its own genotype filter while the site carries a site-level filter, or the reverse. Other fields such as HQ for haplotype quality appear in specific caller outputs. The header is the authoritative source for any field beyond the common ones.

A Worked Example, Read Left to Right

Consider a small VCF body with two samples.

##fileformat=VCFv4.2
##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
##FORMAT=<ID=AD,Number=R,Type=Integer,Description="Allelic depths for the ref and alt alleles">
##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth">
##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Phred-scaled genotype likelihoods">
#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	SAMPLE_A	SAMPLE_B
1	12345	rs123	A	G	50	PASS	DP=62	GT:AD:DP:GQ:PL	0/1:20,25:45:99:120,0,180	1/1:0,17:17:60:200,60,0

The site is a single-base substitution from A to G at position 12345 on chromosome 1. The site-level QUAL is 50 and the site passes filters. INFO/DP is 62, meaning the site-level depth is 62 reads.

The FORMAT string is GT:AD:DP:GQ:PL. SAMPLE_A has GT=0/1, so it carries one REF allele and one ALT allele. Its AD is 20,25, so 20 reads supported A and 25 supported G. Its DP is 45. Its GQ is 99. Its PL values are 120,0,180, and the zero sits at the heterozygous genotype, which is the best-supported call.

SAMPLE_B has GT=1/1, so it carries two ALT alleles. Its AD is 0,17, so no reads supported A and 17 supported G. Its DP is 17. Its GQ is 60, lower than SAMPLE_A's GQ despite the homozygous ALT call. Its PL values are 200,60,0, and the zero sits at the homozygous ALT genotype.

The example also shows why FORMAT order matters. If the header declared GT:DP:AD:GQ:PL instead, the sample string would need to change to match. A parser that hard-codes GT:AD:DP:GQ:PL will misread a file whose FORMAT string differs. Read the FORMAT string first, split the sample value on colons, and map each value to its key.

The interpretation also depends on the reference. The calls above assume the sample's reads were aligned to a reference in which position 12345 is A. If the file was generated against a different reference build, the alleles and positions may not be comparable without liftover.

Genotype Fields vs INFO Fields

INFO and FORMAT are separate namespaces. INFO keys describe the site across all samples. FORMAT keys describe individual samples. The same key name can appear in both namespaces with different meanings.

QuestionINFO answers itFORMAT answers it
How deep is the site overall?INFO/DPNot applicable
How deep is one sample?Not applicableFORMAT/DP
What is the site-level quality?QUALNot applicable
What is one sample's genotype quality?Not applicableFORMAT/GQ
What alleles are present in one sample?Not applicableFORMAT/GT
What is the cohort allele frequency?INFO/AF when presentNot applicable

A common mistake is to read DP from INFO and treat it as every sample's depth. That confusion can inflate apparent coverage in low-depth samples. The reverse mistake is to read FORMAT/DP and sum it across samples as if it were the site-level depth. The two values can be close, but they are not required to match.

The header lines for INFO and FORMAT use different declarations. ##INFO=<ID=DP,...> defines a site-level key. ##FORMAT=<ID=DP,...> defines a sample-level key. A well-formed VCF declares every key it uses. A file with undeclared keys is technically incomplete and harder to interpret.

How Genotype Fields Are Produced and Checked in Practice

Genotype fields are outputs of a variant-calling model. The caller aligns reads, evaluates evidence for REF and ALT alleles, computes genotype likelihoods, and chooses a genotype. Different callers use different models, different filters, and different representations of the same event.

A typical germline calling workflow proceeds in stages:

  1. Generate FASTQ reads from sequencing.
  2. Align reads to a reference and produce a BAM or CRAM file.
  3. Mark duplicates and recalibrate base qualities.
  4. Call variants across samples, often with a joint genotyping step.
  5. Apply site-level and genotype-level filters.
  6. Normalize variants, splitting multiallelic records and left-aligning indels.
  7. Annotate the VCF with functional and population information.

Each stage can change the genotype fields. A caller that includes low-quality reads in AD will report different allelic depths than a caller that excludes them. A joint genotyping step can change GQ and PL values relative to single-sample calling. Normalization can split one multiallelic record into several biallelic records, changing GT indices from 1/2 to 0/1 in two separate lines.

Validation is therefore a data-quality task, not a format task. Useful checks include:

  • Compare the REF allele against the reference FASTA at the reported position.
  • Check whether FORMAT/AD values are plausible given FORMAT/DP.
  • Look at the distribution of GQ values across samples and sites.
  • Check missingness rates by sample and by site.
  • Compare genotype calls between technical replicates or between callers.
  • Check Mendelian consistency in trio data.
  • Inspect heterozygous allele balance for contamination or copy-number signals.
  • Confirm sex-chromosome ploidy in human samples.
  • Use orthogonal methods such as Sanger sequencing for critical clinical calls.

bcftools stats provides summary counts that help with some of these checks, including variant counts by type and genotype distributions. It does not replace a reference check or an orthogonal validation.

The Variant Tool Chest was developed to provide tools for manipulating, comparing, and analyzing VCF files beyond the functionality of existing tools [1]. That need exists because genotype fields are easy to reformat and hard to compare correctly. A comparison that ignores header definitions or FORMAT order can produce a confident but wrong result.

Reading Genotype Fields with Real Commands

Command-line tools make the structure concrete. The following commands assume a compressed VCF named variants.vcf.gz.

View the header:

bcftools view -h variants.vcf.gz

Print chromosome, position, and every sample's GT:

bcftools query -f '%CHROM\t%POS[\t%GT]\n' variants.vcf.gz

Print one line per sample with GT, AD, DP, and GQ:

bcftools query -f '[%SAMPLE\t%GT\t%AD\t%DP\t%GQ\n]' variants.vcf.gz

Subset to one sample:

bcftools view -s SAMPLE_A variants.vcf.gz

Remove the header from the body:

bcftools view -H variants.vcf.gz

The [ ... ] syntax in bcftools query applies the format string to each sample. The %SAMPLE placeholder prints the sample name. These queries are a fast way to inspect genotype fields without writing a parser.

For R users, SEQMINER provides an R package for annotating and querying VCF and BCF files, along with summary association statistics [5]. That matters because many statistical genetics workflows need to read genotype fields repeatedly across large files. Reading the whole VCF into memory is often impractical, and an indexed query is more efficient.

For filtering, GVAF recognizes genotype-related fields from VCF files and provides flexible filtering rules without requiring programming expertise [6]. The practical lesson is that genotype fields are not just for display. They are inputs to selection, and a filter that treats GQ as a site-level score or DP as a cohort-level value will select the wrong variants.

Ploidy, Phasing, and Missing Values

Ploidy is encoded in the number of alleles in GT. A haploid call has one allele, a diploid call has two, and a polyploid call has more. The same VCF file can contain samples of different ploidy, although many tools assume diploid genotypes by default. A parser that splits GT on / and expects exactly two values will fail on a triploid sample.

Missing values have several forms. A single . represents a missing allele in a haploid context. ./. represents a missing diploid genotype. . | . represents a missing phased diploid genotype. The distinction matters for downstream tools that treat missingness differently from a reference call. A missing genotype is not 0/0.

Phasing is represented by | instead of /. A phased genotype assigns alleles to parental haplotypes. Phase sets group variants that were phased together. Phasing can be statistical, and it can be incomplete. A VCF can contain a mix of phased and unphased genotypes.

Phased VCF files are useful for simulation and haplotype analysis. sim1000G uses a raw phased VCF to extract haplotypes and preserve linkage disequilibrium structure when simulating unrelated individuals or families [4]. If the phasing is wrong or incomplete, the simulated data inherits that problem.

Why Genotype Fields Matter in Clinical, Population, and Breeding Work

Genotype fields are the bridge between raw sequencing and biological interpretation. In clinical genetics, a variant with a strong functional annotation but a low-quality genotype call is not a reliable finding. VCAT accepts VCF files and connects variants to function through epigenome, protein, drug, and RNA annotations [7]. The annotation layer is valuable, but it does not repair a genotype field that was misread. A clinical interpretation workflow needs to check GT, GQ, DP, and AD before assigning significance.

In population genetics, genotype fields support allele frequency estimation, Hardy-Weinberg checks, and linkage disequilibrium analysis. A genotype matrix built from GT values is the starting point for many methods. If missing genotypes are coded as reference, allele frequencies shift. If phased genotypes are treated as unphased, haplotype-based methods lose information.

In plant and animal breeding, genotype fields connect to phenotype data and selection decisions. Breedbase stores genotyping data in PostgreSQL JSONb structures that follow the VCF data model and can handle multiple ploidy levels [3]. That design supports the link between genotype and phenotype in a relational database, which is a different storage strategy from a plain VCF file but preserves the same genotype concepts.

In software development, genotype fields are a common integration point. The Variant Tool Chest provides tools for manipulating, comparing, and analyzing VCF files [1]. GVAF filters annotated variant files and recognizes genotype-related fields [6]. SEQMINER queries VCF and BCF files from R [5]. Each tool makes assumptions about GT, AD, DP, and GQ. Reading the header and the FORMAT string is the only reliable way to know whether those assumptions hold.

VCF in the Wider World of Bioinformatics File Formats

VCF is one format among many. Understanding its neighbors helps prevent category errors.

FASTQ vs FASTA

FASTA and FASTQ are sequence formats. FASTA contains a header line starting with > followed by sequence lines. It has no per-base quality scores. FASTQ contains a header line starting with @, a sequence line, a + separator line, and a quality string. The quality string encodes a Phred score for each base, typically offset by 33 in modern Illumina data.

FeatureFASTAFASTQ
ContentSequenceSequence plus per-base quality
Header marker>@
Quality scoresNoneOne per base
Typical useReference sequences, protein sequences, consensus sequencesRaw sequencing reads
Relationship to VCFReference source for alignment and REF allele checksInput to alignment and variant calling

A VCF is not a read file. It is a variant-level representation derived from aligned reads. A FASTQ file describes the sequencer's output. A VCF describes a model's conclusion about differences from a reference. Treating a VCF as if it contained raw read evidence is a category error. The evidence is summarized in AD, DP, and the genotype likelihoods, not stored as reads.

BAM, CRAM, BCF, gVCF, and Zarr

BAM and CRAM store aligned reads. They are the input to variant calling and the source of the evidence behind genotype fields.

BCF is the binary counterpart of VCF. It stores the same data model in a compressed binary form and is often used with an index for random access. SEQMINER, for example, queries both VCF and BCF files [5].

gVCF is a variant call format that includes reference blocks, allowing a caller to represent both variant and non-variant positions. It is useful for joint genotyping and for retaining coverage information across the genome. The genotype fields in a gVCF follow the same general principles, with additional conventions for reference blocks.

Zarr is a multidimensional array storage format. The VCF Zarr specification encodes the VCF data model in Zarr and is designed for biobank-scale data. Czech and colleagues note that the usual row-wise encoding of VCF emphasizes retrieval of all data for a given variant, while accessing data on a field or sample basis is inefficient [8]. That is a structural limitation of VCF, not a defect in any particular file. A query that needs one sample across millions of variants is slow in a row-wise text format and faster in a columnar or chunked array format.

This matters for genotype fields because genotype data is often accessed by sample. A clinical report needs one patient's genotypes across a gene panel. A breeding program needs one line's genotypes across markers. A population study needs one cohort's genotypes across sites. Row-wise VCF is optimized for the variant-centric view, and alternative storage models are optimized for the sample-centric view [8].

Common Mistakes and Limitations

Genotype fields are easy to misread. The following mistakes are common in real pipelines.

  1. Reading INFO/DP as sample depth. INFO/DP is site-level. FORMAT/DP is sample-level. They are different fields with different scopes.
  1. Assuming GT is a read count. GT contains allele indices. 0/1 means one REF and one ALT allele, not one REF read and one ALT read. AD contains the read counts.
  1. Assuming 0/1 is always a high-quality heterozygote. A heterozygous call can be supported by very few reads or by skewed allele balance. Check DP, AD, and GQ.
  1. Treating GQ as QUAL. GQ is per sample. QUAL is per site. A high QUAL does not guarantee a high GQ for every sample.
  1. Reading PL as a quality score where higher is better. PL is a likelihood score where lower is better. The best-supported genotype has the lowest PL.
  1. Ignoring FORMAT order. The FORMAT string defines the order of values in each sample column. A parser that hard-codes an order will misread files from other callers.
  1. Assuming diploid genotypes. Haploid and polyploid genotypes have different numbers of allele indices. Breedbase explicitly supports multiple ploidy levels in its VCF-based data model [3].
  1. Treating missing genotypes as reference. ./. is not 0/0. Converting missing to reference inflates reference allele frequencies and distorts downstream statistics.
  1. Ignoring phasing. 0|1 and 0/1 carry different information. Phased genotypes support haplotype analysis, and phase sets define blocks. Simulation tools such as sim1000G depend on phased input [4].
  1. Assuming genotype fields are portable across callers. AD, DP, GQ, and PL are caller-dependent. A GQ of 30 from one caller is not guaranteed to mean the same error rate as a GQ of 30 from another.
  1. Ignoring metadata. The header defines what each field means. A VCF with missing or inconsistent FORMAT definitions is harder to interpret and less FAIR. Beier and colleagues recommend controlled standards and resolvable identifiers for VCF metadata [2].
  1. Assuming row-wise VCF scales to every access pattern. VCF is efficient for variant-centric retrieval and inefficient for field or sample-centric retrieval at biobank scale [8]. A pipeline that repeatedly scans a huge VCF to extract one sample's genotypes should use an index or a different storage layer.
  1. Confusing VCF with FASTQ or FASTA. VCF is a variant representation. FASTQ is raw reads with quality scores. FASTA is sequence without quality scores. The three formats answer different questions.
  1. Skipping reference validation. A VCF can carry a REF allele that does not match the reference FASTA at that position. This can happen after a reference build mismatch or a normalization error. Checking REF against the FASTA is a basic quality control step.
  1. Treating a genotype call as biological truth. A genotype field is a model-based conclusion from reads. Low coverage, mapping bias, contamination, and paralogous regions can produce confident but incorrect calls. Orthogonal validation is appropriate for high-stakes clinical decisions.

The limitations are structural as well as technical. VCF metadata can be inconsistent across files [2]. Genotype fields can differ between callers even when the underlying reads are the same. Phasing can be incomplete. A VCF can contain samples of different ploidy, missing values in several forms, and multiallelic records that downstream tools handle differently. No single field is a substitute for examining the header, the FORMAT string, and the sample values together.

Quick Review

  • VCF genotype fields live in the FORMAT column and the sample columns. INFO fields are site-level, FORMAT fields are sample-level.
  • GT uses 0-based allele indices, with 0 for REF and 1, 2, and so on for ALT alleles. POS is 1-based.
  • AD reports allelic depths. DP reports depth. FORMAT/DP is per sample, INFO/DP is per site.
  • GQ is per-sample genotype quality. QUAL is site-level. PL and GL are likelihoods, and lower PL is better.
  • / means unphased, | means phased, and ./. means missing. Missing is not reference.
  • The FORMAT string defines the order of values in every sample column. Read it before parsing.
  • VCF is a variant-level format, not a read-level format. FASTQ holds reads and base qualities, FASTA holds sequence without qualities.

Frequently Asked Questions

What does GT 0/1 mean in a VCF file?

GT 0/1 means the sample carries one reference allele and one first alternate allele at that site. The 0 refers to REF and the 1 refers to the first ALT allele. The slash indicates that the two alleles are unphased.

What is the difference between INFO/DP and FORMAT/DP?

INFO/DP is the site-level depth across the record. FORMAT/DP is the depth for one sample. They can be similar but are not interchangeable, and they may be computed at different stages of filtering.

What does a missing genotype look like in a VCF file?

A missing diploid genotype is written ./. or . | . when phased. A single . represents a missing allele in a haploid context. A missing genotype is not the same as a homozygous reference call.

Is GQ the same as QUAL?

No. GQ is a per-sample genotype quality score. QUAL is a site-level quality score. A site can have a high QUAL while one sample has a low GQ.

What does the pipe symbol mean in a GT field?

The pipe symbol | separates phased alleles. It assigns each allele to a haplotype. A slash / separates unphased alleles and does not assign them to haplotypes.

How is VCF different from FASTA or FASTQ?

VCF stores variant calls and genotype fields relative to a reference. FASTA stores sequence without per-base quality scores. FASTQ stores raw reads with per-base quality scores and is an input to alignment and variant calling, not a variant format.

Sources

  1. Variant Tool Chest: an improved tool to analyze and manipulate variant call format (VCF) files.
  2. Recommendations for the formatting of Variant Call Format (VCF) files to make plant genotyping data FAIR.
  3. High density genotype storage for plant breeding in the Chado schema of Breedbase.
  4. sim1000G: a user-friendly genetic variant simulator in R for unrelated individuals and family-based designs.
  5. SEQMINER: An R-Package to Facilitate the Functional Interpretation of Sequence-Based Associations.
  6. GVAF: generalized, flexible filtering software for annotated variant files.
  7. VCAT: an integrated variant function annotation tools.
  8. Analysis-ready VCF at Biobank scale using Zarr.