5 #ifndef _MULTILOCUSGENOTYPE_H_
6 #define _MULTILOCUSGENOTYPE_H_
35 std::vector<std::unique_ptr<MonolocusGenotypeInterface>>
loci_;
73 const std::vector<size_t>& alleleKeys);
83 const std::vector<std::string>& alleleId,
The MonolocusGenotype virtual class.
The MultilocusGenotype class.
const MonolocusGenotypeInterface & monolocusGenotype(size_t locusPosition) const
Get a MonolocusGenotype.
void setMonolocusGenotypeByAlleleId(size_t locusPosition, const std::vector< std::string > &alleleId, const LocusInfo &locusInfo)
Set a MonolocusGenotype by allele id.
virtual ~MultilocusGenotype()
Destroy a MultilocusGenotype.
MultilocusGenotype(size_t lociNumber)
Build a MultilocusGenotype linked to an AnalyzedLoci object.
bool isMonolocusGenotypeMissing(size_t locusPosition) const
Tell if a MonolocusGenotype is a missing data.
void setMonolocusGenotypeByAlleleKey(size_t locusPosition, const std::vector< size_t > &alleleKeys)
Set a MonolocusGenotype by allele keys.
size_t countHeterozygousLoci() const
Count the number of heterozygous MonolocusGenotype.
MultilocusGenotype * clone() const override
size_t countHomozygousLoci() const
Count the number of homozygous MonolocusGenotype.
void setMonolocusGenotypeAsMissing(size_t locusPosition)
Set a MonolocusGenotype as missing data.
void setMonolocusGenotype(size_t locusPosition, const MonolocusGenotypeInterface &monogen)
Set a MonolocusGenotype.
size_t countNonMissingLoci() const
Count the number of non missing MonolocusGenotype.
std::vector< std::unique_ptr< MonolocusGenotypeInterface > > loci_
size_t size() const
Count the number of loci.