56 #include "../GeneralExceptions.h"
59 #include "../PolymorphismMultiGContainer.h"
60 #include "../PolymorphismSequenceContainer.h"
197 void setGroupName(
size_t group_id,
const std::string& group_name)
const;
246 void splitGroup(
size_t group_id, std::vector<size_t> individuals_selection);
389 size_t sequence_position,
const Sequence& sequence);
646 const std::map<
size_t,
647 std::vector<size_t> >& selection,
648 size_t sequence_position)
const;
The AlleleInfo interface.
The AnalyzedSequences class.
std::string getAlphabetType() const
Get the alphabet type as a string.
void setAnalyzedLoci(const AnalyzedLoci &analyzedLoci)
Set the AnalyzedLoci to the DataSet.
void setIndividualSexInGroup(size_t group_position, size_t individual_position, const unsigned short sex)
Set the sex of an Individual in a Group.
void setIndividualDateInGroup(size_t group_position, size_t individual_position, const Date &date)
Set the Date of an Individual in a Group.
bool hasAlleleicData() const
Tell if there is alelelic data.
size_t getNumberOfGroups() const
Get the number of Groups.
void setIndividualMonolocusGenotypeInGroup(size_t group_position, size_t individual_position, size_t locus_position, const MonolocusGenotype &monogen)
Set a MonolocusGenotype of an Individual from a group.
size_t getNumberOfLocalities() const
Get the number of Localities.
void initIndividualGenotypeInGroup(size_t group_position, size_t individual_position)
Initialyze the genotype of an Individual in a Group.
const Sequence & getIndividualSequenceByNameInGroup(size_t group_position, size_t individual_position, const std::string &sequence_name) const
Get a Sequence from an Individual of a Group.
const Group & getGroupById(size_t group_id) const
Get a group by identifier.
void setIndividualCoordInGroup(size_t group_position, size_t individual_position, const Point2D< double > &coord)
Set the coordinates of an Individual in a Group.
const Group & getGroupAtPosition(size_t group_position) const
Get a group by position.
std::vector< Locality< double > * > localities_
const Locality< double > * getIndividualLocalityInGroup(size_t group_position, size_t individual_position) const
Get the Locality of an Individual in a Group.
void addAlleleInfoByLocusName(const std::string &locus_name, const AlleleInfo &allele)
Add an AlleleInfo to a LocusInfo.
void setIndividualLocalityInGroupByName(size_t group_position, size_t individual_position, const std::string &locality_name)
Set the Locality of an Individual in a Group.
void addAlleleInfoByLocusPosition(size_t locus_position, const AlleleInfo &allele)
Add an AlleleInfo to a LocusInfo.
size_t getPloidyByLocusPosition(size_t locus_position) const
Get the ploidy of a locus.
void mergeTwoGroups(size_t source_id, size_t target_id)
Merge two groups.
~DataSet()
Destroy a DataSet.
void setIndividualGenotypeInGroup(size_t group_position, size_t individual_position, const MultilocusGenotype &genotype)
Set the MultilocusGenotype of an Individual in a Group.
std::vector< Group * > groups_
bool hasLocality() const
Tell if there is at least one locality.
void initAnalyzedLoci(size_t number_of_loci)
Initialize the AnalyzedLoci for number of loci.
const Date * getIndividualDateInGroup(size_t group_position, size_t individual_position) const
Get the Date of an Individual in a Group.
void deleteIndividualSequenceByNameInGroup(size_t group_position, size_t individual_position, const std::string &sequence_name)
Delete a Sequence of an Individual of a Group.
void mergeGroups(std::vector< size_t > &group_ids)
Merge some Groups in one.
void deleteLocalityByName(const std::string &name)
Delete a Locality from the DataSet.
const MonolocusGenotype * getIndividualMonolocusGenotypeInGroup(size_t group_position, size_t individual_position, size_t locus_position) const
Get a MonolocusGenotype from an Individual of a Group.
size_t getNumberOfIndividualsInGroup(size_t group_position) const
Get the number of Individuals in a Group.
void setGroupName(size_t group_id, const std::string &group_name) const
set the name of a Group.
void setAlphabet(const Alphabet *alpha)
Set the alphabet of the AnalyzedSequences.
void deleteIndividualSequenceAtPositionInGroup(size_t group_position, size_t individual_position, size_t sequence_position)
Delete a Sequence of an Individual of a Group.
void deleteIndividualAtPositionFromGroup(size_t group_position, size_t individual_position)
Delete an Individual from a group.
void deleteGroupAtPosition(size_t group_position)
Delete a Group from the DataSet.
size_t getIndividualSequencePositionInGroup(size_t group_position, size_t individual_position, const std::string &sequence_name) const
Get the position of a Sequence in an Individual of a Group.
void addIndividualSequenceInGroup(size_t group_position, size_t individual_position, size_t sequence_position, const Sequence &sequence)
Add a Sequence to an Individual in a Group.
bool hasSequenceData() const
Tell if at least one individual has at least one sequence.
size_t getGroupPosition(size_t group_id) const
Get the position of a Group.
unsigned short getIndividualSexInGroup(size_t group_position, size_t individual_position) const
Get the sex of an Individual in a Group.
std::string getGroupName(size_t group_id) const
Get the name of a Group. If the name is an empty string it just returns the group_id.
const Individual * getIndividualByIdFromGroup(size_t group_position, const std::string &individual_id) const
Get an Individual from a Group.
DataSet & operator=(const DataSet &ds)
void setIndividualMonolocusGenotypeByAlleleIdInGroup(size_t group_position, size_t individual_position, size_t locus_position, const std::vector< std::string > allele_id)
Set a MonolocusGenotype of an Individual from a group.
void addGroup(const Group &group)
Add a Group to the DataSet.
const Alphabet * getAlphabet() const
Get the alphabet if there is sequence data.
std::vector< std::string > getIndividualSequencesNamesInGroup(size_t group_position, size_t individual_position) const
Get the Sequences' names from an Individual of a Group.
void setLocusInfo(size_t locus_position, const LocusInfo &locus)
Set a LocusInfo.
void setIndividualMonolocusGenotypeByAlleleKeyInGroup(size_t group_position, size_t individual_position, size_t locus_position, const std::vector< size_t > allele_keys)
Set a MonolocusGenotype of an Individual from a group.
const Locality< double > & getLocalityAtPosition(size_t locality_position) const
Get a Locality by locality_position.
PolymorphismSequenceContainer * getPolymorphismSequenceContainer(const std::map< size_t, std::vector< size_t > > &selection, size_t sequence_position) const
Get a PolymorphismSequenceContainer from a selection of groups and individuals.
void addEmptyIndividualToGroup(size_t group_position, const std::string &individual_id)
Add an empty Individual to a Group.
AnalyzedSequences * analyzedSequences_
void deleteAnalyzedLoci()
Delete the AnalyzedLoci.
const LocusInfo & getLocusInfoByName(const std::string &locus_name) const
Get a LocusInfo by its name.
size_t getPloidyByLocusName(const std::string &locus_name) const
Get the ploidy of a locus.
const Sequence & getIndividualSequenceAtPositionInGroup(size_t group_position, size_t individual_position, size_t sequence_position) const
Get a Sequence from an Individual of a Group.
PolymorphismMultiGContainer * getPolymorphismMultiGContainer() const
Get a PolymorphismMultiGContainer with all allelic data of the DataSet.
size_t getLocalityPosition(const std::string &name) const
Get the position of a locality in the container.
size_t getIndividualNumberOfSequencesInGroup(size_t group_position, size_t individual_position) const
Get the number of Sequences in an Individual of a Group.
void deleteIndividualGenotypeInGroup(size_t group_position, size_t individual_position)
Delete the MultilocusGenotype of an Individual from a Group.
DataSet()
Build a new void DataSet.
const LocusInfo & getLocusInfoAtPosition(size_t locus_position) const
Get a LocusInfo by its position.
size_t getNumberOfLoci() const
Get the number of loci.
const Point2D< double > * getIndividualCoordInGroup(size_t group_position, size_t individual_position) const
Get the coordinate of an Individual in a Group.
const AnalyzedLoci * getAnalyzedLoci() const
Get the AnalyzedLoci if there is one.
AnalyzedLoci * analyzedLoci_
void addIndividualToGroup(size_t group_position, const Individual &individual)
Add an Individual to a Group.
size_t getIndividualPositionInGroup(size_t group_position, const std::string &individual_id) const
Get the position of an Individual in a Group.
void deleteIndividualByIdFromGroup(size_t group_position, const std::string &individual_id)
Delete an Individual from a group.
void deleteLocalityAtPosition(size_t locality_position)
Delete a Locality from the DataSet.
void addEmptyGroup(size_t group_id)
Add an empty Group to the DataSet.
void splitGroup(size_t group_id, std::vector< size_t > individuals_selection)
Split a group in two.
const Individual * getIndividualAtPositionFromGroup(size_t group_position, size_t individual_position) const
Get an Individual from a Group.
const Locality< double > & getLocalityByName(const std::string &name) const
Get a Locality by name.
void addLocality(Locality< double > &locality)
Add a locality to the DataSet.
The MonolocusGenotype virtual class.
The MultilocusGenotype class.
The PolymorphismMultiGContainer class.
The PolymorphismSequenceContainer class.