A library for working with phylogenetic data. v0.25.0
VcfGenotype Class Reference

#include <genesis/population/formats/vcf_common.hpp>

## Detailed Description

Simple wrapper class for one genotype field for a sample.

The FORMAT GT genotype field in VCF contains entries such as

• 0/1 to mark an unphased diploid genotype call, where one allele is the reference (index 0), and on alelle is the first alternative (index 1) in the ALT column of the record line.
• 2|1 to mark a phased diploid genotype call, where the first phased allele is the second (index 2) alternative allele of the ALT column, and the second phased allele is the first (index 1) alternative allele.

Here, we model exactly one such entry, that is, one such index. For diploid calls, a sample hence needs two such values (two instances of this class); for triploic calls, three instances, and so forth.

For simplicity, the VcfFormatIterator::get_values() function returns all genotype entries for a given sample of a record/line. This can for example be used with vcf_genotype_string() to get a similar string representation of all called genotypes of a record than VCF uses.

The function variant_index() returns the index of the referenec (0) or alternative allele (>0) as exemplified above. The corresponding allele can be obtained via VcfRecord::get_variant() and VcfRecord::get_variants().

Definition at line 218 of file vcf_common.hpp.

## Public Member Functions

VcfGenotype (int32_t genotype)

VcfGenotype (VcfGenotype &&)=default

VcfGenotype (VcfGenotype const &)=default

~VcfGenotype ()=default

int32_t data () const
Return the raw genotype value as used by htslib. More...

bool is_alternative () const
True iff the called variant of this genotype is not the REF, but one of the ALT alleles. More...

bool is_missing () const
True iff the variant call is missing for this genotype. More...

bool is_phased () const
True iff the called variant is phased. More...

bool is_reference () const
True iff the called variant of this genotype is the REF allele. More...

VcfGenotypeoperator= (VcfGenotype &&)=default

VcfGenotypeoperator= (VcfGenotype const &)=default

int32_t variant_index () const
Return the index of the variant set for this genotype call. More...

## ◆ VcfGenotype() [1/3]

 VcfGenotype ( int32_t genotype )
inlineexplicit

Definition at line 226 of file vcf_common.hpp.

## ◆ ~VcfGenotype()

 ~VcfGenotype ( )
default

## ◆ VcfGenotype() [2/3]

 VcfGenotype ( VcfGenotype const & )
default

## ◆ VcfGenotype() [3/3]

 VcfGenotype ( VcfGenotype && )
default

## ◆ data()

 int32_t data ( ) const

Return the raw genotype value as used by htslib.

Definition at line 269 of file vcf_common.cpp.

## ◆ is_alternative()

 bool is_alternative ( ) const

True iff the called variant of this genotype is not the REF, but one of the ALT alleles.

In VCF, this corresponds to any integer entry > 0.

Definition at line 254 of file vcf_common.cpp.

## ◆ is_missing()

 bool is_missing ( ) const

True iff the variant call is missing for this genotype.

In VCF, this corresponds to an entry of ..

Definition at line 259 of file vcf_common.cpp.

## ◆ is_phased()

 bool is_phased ( ) const

True iff the called variant is phased.

Note that in the VCF specification 4.2 and htslib this seems to be handled differently: While the former required every genotype call to be marked as phased/unphased, the htslib implementation does not set the phased information for the first genotype call. Hence, if the GT field of a sample is 0|1|1, only the second and the third genotype call will return true in htslib using their bcf_gt_is_phased() macro. We here currently do not fix this, and hence propagate the htslib behaviour.

Definition at line 264 of file vcf_common.cpp.

## ◆ is_reference()

 bool is_reference ( ) const

True iff the called variant of this genotype is the REF allele.

In VCF, this corresponds to an entry of 0.

Definition at line 249 of file vcf_common.cpp.

## ◆ operator=() [1/2]

 VcfGenotype& operator= ( VcfGenotype && )
default

## ◆ operator=() [2/2]

 VcfGenotype& operator= ( VcfGenotype const & )
default

## ◆ variant_index()

 int32_t variant_index ( ) const

Return the index of the variant set for this genotype call.

This corresponds to the indices of the result of VcfRecord::get_variants(). If the call is missing (. in VCF), -1 is returned instead.

Definition at line 244 of file vcf_common.cpp.

The documentation for this class was generated from the following files: