52 name_(group.getGroupName()),
63 name_(group.getGroupName()),
149 unique_ptr<Individual> ind(
individuals_[individual_position]);
214 vector<size_t> seqpos =
individuals_[i]->getSequencesPositions();
215 for (
size_t j = 0; j < seqpos.size(); j++)
217 if (maxnum < seqpos[j])
278 throw NullPointerException(
"Group::getIndividualCoordAtPosition: individual has no coordinates.");
286 individuals_[individual_position]->setLocality(locality);
295 return *
individuals_[individual_position]->getLocality();
299 throw NullPointerException(
"Group::getIndividualLocalityAtPosition: individuals has no locality.");
309 individuals_[individual_position]->addSequence(sequence_position, sequence);
321 throw BadIntegerException(
"Group::addIndividualSequenceAtPosition: sequence_position already in use.", bie.getBadInteger());
331 return individuals_[individual_position]->getSequenceByName(sequence_name);
335 throw NullPointerException(
"Group::getIndividualSequenceByName: no sequence data in individual.");
349 return individuals_[individual_position]->getSequenceAtPosition(sequence_position);
353 throw NullPointerException(
"Group::getIndividualSequenceAtPosition: no sequence data in individual.");
367 individuals_[individual_position]->deleteSequenceByName(sequence_name);
385 individuals_[individual_position]->deleteSequenceAtPosition(sequence_position);
401 return individuals_[individual_position]->hasSequences();
410 return individuals_[individual_position]->getSequencesNames();
424 return individuals_[individual_position]->getSequencePosition(sequence_name);
442 return individuals_[individual_position]->getNumberOfSequences();
446 throw NullPointerException(
"Group::getIndividualNumberOfSequences: no sequence data in individual.");
461 individuals_[individual_position]->setGenotype(genotype);
470 individuals_[individual_position]->initGenotype(loci_number);
478 throw Exception(
"Group::initIndividualGenotype: individual already has a genotype.");
493 return individuals_[individual_position]->hasGenotype();
502 individuals_[individual_position]->setMonolocusGenotype(locus_position, monogen);
506 throw NullPointerException(
"Group::setIndividualMonolocusGenotype: individual has no genotype.");
520 individuals_[individual_position]->setMonolocusGenotypeByAlleleKey(locus_position, allele_keys);
524 throw NullPointerException(
"Group::setIndividualMonolocusGenotypeByAlleleKey: individual has no genotype.");
532 throw Exception(
"Group::setIndividualMonolocusGenotypeByAlleleKey: no key in allele_keys.");
542 individuals_[individual_position]->setMonolocusGenotypeByAlleleId(locus_position, allele_id, locus_info);
546 throw NullPointerException(
"Group::setIndividualMonolocusGenotypeByAlleleId: individual has no genotype.");
564 return individuals_[individual_position]->getMonolocusGenotype(locus_position);
568 throw NullPointerException(
"Group::getIndividualMonolocusGenotype: individual has no genotype.");
616 individuals_[i]->getSequenceAtPosition(sequence_position);
The AlleleNotFoundException class.
virtual const std::string getIdentifier() const
Return the value of the identifier as a string.
std::vector< const Alphabet * > getAlphabets() const
The BadIdentifierException class.
virtual const std::string getIdentifier() const
Return the value of the identifier as a string.
int getBadInteger() const
void deleteIndividualById(const std::string &individual_id)
Delete an Individual from the Group.
void setIndividualSequences(size_t individual_position, const MapSequenceContainer &msc)
Set all the sequences by copying an OrderedSequenceContainer.
bool hasIndividualGenotype(size_t individual_position) const
Tell if an Individual has a genotype.
const Alphabet * getAlphabet() const
Get the alphabet used for the sequences.
size_t getNumberOfIndividuals() const
Get the number of Individual in the Group.
std::unique_ptr< Individual > removeIndividualAtPosition(size_t individual_position)
Remove an Individual from the Group.
Group & operator=(const Group &group)
The assignation operator =.
void deleteIndividualSequenceAtPosition(size_t individual_position, size_t sequence_position)
Delete a sequence of an Individual.
void addEmptyIndividual(const std::string &individual_id)
Add an empty Individual to the Group.
void setGroupId(size_t group_id)
Set the id of the Group.
const Date & getIndividualDateAtPosition(size_t individual_position) const
Get the date of an Individual.
size_t getGroupId() const
Get the id of the Group.
bool hasIndividualSequences(size_t individual_position) const
Tell if the Individual has some sequences.
void deleteIndividualSequenceByName(size_t individual_position, const std::string &sequence_name)
Delete a sequence of an Individual.
void addIndividual(const Individual &ind)
Add an Individual.
void setIndividualGenotype(size_t individual_position, const MultilocusGenotype &genotype)
Set the genotype of an Individual.
void setIndividualDateAtPosition(size_t individual_position, const Date &date)
Set the date of an Individual.
void setGroupName(const std::string &group_name)
Set the name of the Group.
unsigned short getIndividualSexAtPosition(size_t individual_position) const
Get the sex of an Individual.
std::vector< Individual * > individuals_
bool hasSequenceData() const
Tell if at least one individual has at least one sequence.
void setIndividualLocalityAtPosition(size_t individual_position, const Locality< double > *locality)
Set the locality of an Individual.
void setIndividualCoordAtPosition(size_t individual_position, const Point2D< double > &coord)
Set the coordinates of an Individual.
const Sequence & getIndividualSequenceByName(size_t individual_position, const std::string &sequence_name) const
Get a sequence of an Individual.
void setIndividualMonolocusGenotypeByAlleleId(size_t individual_position, size_t locus_position, const std::vector< std::string > &allele_id, const LocusInfo &locus_info)
Set a MonolocusGenotype of an Individual.
void setIndividualMonolocusGenotypeByAlleleKey(size_t individual_position, size_t locus_position, const std::vector< size_t > &allele_keys)
Set a MonolocusGenotype of an Individual.
std::vector< std::string > getIndividualSequencesNames(size_t individual_position) const
Get the sequences' names from an Individual.
size_t getMaxNumberOfSequences() const
Get the maximum number of sequence.
const Locality< double > & getIndividualLocalityAtPosition(size_t individual_position) const
Get the locality of an Individual.
const Individual & getIndividualAtPosition(size_t individual_position) const
Get a reference to an Individual by its position.
void initIndividualGenotype(size_t individual_position, size_t loci_number)
Initialyze the genotype of an Individual.
void clear()
Clear the Group.
size_t getIndividualNumberOfSequences(size_t individual_position) const
Get the number of sequences in an Individual.
size_t getGroupSizeForLocus(size_t locus_position) const
Get the number of individual that have a data at the specified locus.
const Individual & getIndividualById(const std::string &individual_id) const
Get a reference to an Individual.
const Sequence & getIndividualSequenceAtPosition(size_t individual_position, size_t sequence_position) const
Get a sequence of an Individual.
std::unique_ptr< Individual > removeIndividualById(const std::string &individual_id)
Remove an Individual from the Group.
void deleteIndividualAtPosition(size_t individual_position)
Delete an Individual from the Group.
void setIndividualMonolocusGenotype(size_t individual_position, size_t locus_position, const MonolocusGenotype &monogen)
Set a MonolocusGenotype of an Individual.
void addIndividualSequenceAtPosition(size_t individual_position, size_t sequence_position, const Sequence &sequence)
Add a sequence to an Individual.
size_t getIndividualSequencePosition(size_t individual_position, const std::string &sequence_name) const
Get the position of a sequence in an Individual.
size_t getGroupSizeForSequence(size_t sequence_position) const
Get the number of individual that have a sequence at the specified position.
void deleteIndividualGenotype(size_t individual_position)
Delete the genotype of an Individual.
const Point2D< double > & getIndividualCoordAtPosition(size_t individual_position) const
Get the coordinates of an Individual.
size_t getIndividualPosition(const std::string &individual_id) const
Get the position of an Individual.
void setIndividualSexAtPosition(size_t individual_position, const unsigned short sex)
Set the sex of an Individual.
Group(size_t group_id)
Build a void new Group.
~Group()
Destroy an Group.
const MonolocusGenotype & getIndividualMonolocusGenotype(size_t individual_position, size_t locus_position) const
Get a MonolocusGenotype of an Individual.
std::size_t getBadIndex() const
const std::array< std::size_t, 2 > & getBounds() const
The IndividualNotFoundException class.
const std::string & getId() const
Get the id of the Individual.
The MonolocusGenotype virtual class.
The MultilocusGenotype class.
virtual const std::string getSequenceId() const
std::size_t count(const std::string &s, const std::string &pattern)