bpp-popgen3  3.0.0
PolymorphismMultiGContainerTools.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: The Bio++ Development Group
2 //
3 // SPDX-License-Identifier: CECILL-2.1
4 
5 #ifndef _POLYMORPHISMMULTIGCONTAINERTOOLS_H_
6 #define _POLYMORPHISMMULTIGCONTAINERTOOLS_H_
7 
8 // From the STL
9 #include <set>
10 
11 // From the PolGenLib library
13 
15 
16 namespace bpp
17 {
26 {
27 public:
34  static std::unique_ptr<PolymorphismMultiGContainer> permuteMultiG(const PolymorphismMultiGContainer& pmgc);
35 
46  static std::unique_ptr<PolymorphismMultiGContainer> permuteMonoG(const PolymorphismMultiGContainer& pmgc, const std::set<size_t>& groups);
47 
58  static std::unique_ptr<PolymorphismMultiGContainer> permuteIntraGroupMonoG(const PolymorphismMultiGContainer& pmgc, const std::set<size_t>& groups);
59 
70  static std::unique_ptr<PolymorphismMultiGContainer> permuteAlleles(const PolymorphismMultiGContainer& pmgc, const std::set<size_t>& groups);
71 
81  static std::unique_ptr<PolymorphismMultiGContainer> permuteIntraGroupAlleles(const PolymorphismMultiGContainer& pmgc, const std::set<size_t>& groups);
82 
83  static std::unique_ptr<PolymorphismMultiGContainer> extractGroups(const PolymorphismMultiGContainer& pmgc, const std::set<size_t>& groups);
84 };
85 } // end of namespace bpp;
86 
87 #endif // _POLYMORPHISMMULTIGCONTAINERTOOLS_H_
Tools for PolymorphismMultiGContainer.
static std::unique_ptr< PolymorphismMultiGContainer > permuteMultiG(const PolymorphismMultiGContainer &pmgc)
Permut the MultilocusGenotype in the whole PolymorphismMultiGContainer.
static std::unique_ptr< PolymorphismMultiGContainer > permuteIntraGroupAlleles(const PolymorphismMultiGContainer &pmgc, const std::set< size_t > &groups)
Permut the Alleles between individuals in the same group.
static std::unique_ptr< PolymorphismMultiGContainer > permuteAlleles(const PolymorphismMultiGContainer &pmgc, const std::set< size_t > &groups)
Permut the Alleles.
static std::unique_ptr< PolymorphismMultiGContainer > extractGroups(const PolymorphismMultiGContainer &pmgc, const std::set< size_t > &groups)
static std::unique_ptr< PolymorphismMultiGContainer > permuteIntraGroupMonoG(const PolymorphismMultiGContainer &pmgc, const std::set< size_t > &groups)
Permut the MonolocusGenotype between individuals in the same group.
static std::unique_ptr< PolymorphismMultiGContainer > permuteMonoG(const PolymorphismMultiGContainer &pmgc, const std::set< size_t > &groups)
Permut the MonolocusGenotype.
The PolymorphismMultiGContainer class.