File failed to load: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/extensions/ams.js
ALMaSS  1.2 (after EcoStack, March 2024)
The Animal, Landscape and Man Simulation System
All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
GeneticMaterial.h
Go to the documentation of this file.
1 /*
2 *******************************************************************************************************
3 Copyright (c) 2011, Christopher John Topping, Aarhus University
4 All rights reserved.
5 
6 Redistribution and use in source and binary forms, with or without modification, are permitted provided
7 that the following conditions are met:
8 
9 Redistributions of source code must retain the above copyright notice, this list of conditions and the
10 following disclaimer.
11 Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
12 the following disclaimer in the documentation and/or other materials provided with the distribution.
13 
14 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
15 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
16 FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
17 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
18 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
19 BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
21 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
22 ********************************************************************************************************
23 */
24 
39 //---------------------------------------------------------------------------
40 #ifndef GeneticMaterialH
41 #define GeneticMaterialH
42 
43 
44 #ifdef __LINUX
45 #include "ALMaSSDefines.h"
46 
47 #else
48 #include "../ALMaSSDefines.h"
49 #endif
50 //---------------------------------------------------------------------------
51 //------------------------------------------------------------------------------
52 
53 class Landscape;
54 
55 //------------------------------------------------------------------------------
56 
62 {
63  protected:
64  int AlleleNumber[32][16];
65  float AlleleFrequency[32][16];
66  float HE[32];
67  float HO[32];
68  int NoAlleles[32];
69  public:
70  AlleleFreq();
71  int SupplyAN(int loc, int al) { return AlleleNumber[loc][al];}
72 /*
73  void SetAF(int loc, int al, int val) { AlleleFrequency[loc][al]=val;}
74  void IncAN(int loc, int al) { AlleleNumber[loc][al]++;}
75  void IncAF(int loc, int al) { AlleleFrequency[loc][al]++;}
76  void IncHO(int loc) { HO[loc]++;}
77  float SupplyAF(int loc, int al) { return AlleleFrequency[loc][al];}
78  float SupplyHE(int loc) { return HE[loc];}
79  float SupplyHO(int loc) { return HO[loc];}
80  int SupplyNoAlleles(int loc) { return NoAlleles[loc];}
81  void CalcNoAlleles();
82  void CalcAF();
83  void CalcHE();
84  void CalcHO(int si);
85  void Flush();
86 */
87 };
88 //------------------------------------------------------------------------------
89 
95 {
96  protected:
98  public:
100  void ReadFrequencies();
101  void SetAllele(int pos, uint32 value, int Chromosome);
102  uint32 GetAllele(int pos, int Chromosome);
103  void PrintChromosome(char *C, int Chromosome);
104  int HomozygosityCount();
105  int HeterozygosityCount();
106  void Recombine(GeneticMaterial* Gen21, GeneticMaterial* Gene2);
107  void Initiation(AlleleFreq* Al);
108  float ScoreReproduction();
109  float ScoreHQThreshold();
110  void SetGeneticFlag();
111  void SetDirectFlag();
112  void UnsetGeneticFlag();
113  void UnsetDirectFlag();
116  void Mutation_1(); // random mutation
117  void Mutation_1ab(); // random mutation only a&b
118  void Mutation_2(); // mutation one step either way
119  void Mutation_3(); // mutation from one state to another only (a->b) (b->c)}
120  void Mutation_4(); // mutation from one state to another only (a->b) (b->a) for first locus
121 };
122 
123 //---------------------------------------------------------------------------
124 
126 {
127  protected:
128  int AlleleNumber[16][16];
129  float AlleleFrequency[16][16];
130  float HE[16];
131  float HO[16];
132  int NoAlleles[16];
133  public:
134  AlleleFreq1616();
135  int SupplyAN(int loc, int al) { return AlleleNumber[loc][al];}
136 /*
137  void SetAF(int loc, int al, int val) { AlleleFrequency[loc][al]=val;}
138  void IncAN(int loc, int al) { AlleleNumber[loc][al]++;}
139  void IncAF(int loc, int al) { AlleleFrequency[loc][al]++;}
140  void IncHO(int loc) { HO[loc]++;}
141  float SupplyAF(int loc, int al) { return AlleleFrequency[loc][al];}
142  float SupplyHE(int loc) { return HE[loc];}
143  float SupplyHO(int loc) { return HO[loc];}
144  int SupplyNoAlleles(int loc) { return NoAlleles[loc];}
145  void CalcNoAlleles();
146  void CalcAF();
147  void CalcHE();
148  void CalcHO(int si);
149  void Flush();
150 */
151 };
152 //------------------------------------------------------------------------------
154 {
155  protected:
156  uint32 Chromosome[4]; // = 32 loci (in 2 chromosomes) & 4 bits each
157  public:
159  void SetAllele(unsigned int locus, uint32 value, unsigned int Chromo);
160  uint32 GetAllele( unsigned int locus, unsigned int Chromo );
161  void PrintChromosome(char *C, unsigned int Chromosome);
162  void SetGeneticFlag();
163  void SetDirectFlag();
164  void UnsetGeneticFlag();
165  void UnsetDirectFlag();
168  int HomozygosityCount();
169  int HeterozygosityCount();
171  void Initiation(AlleleFreq1616* Al);
172  void Mutation_1(); // random mutation
173  void Mutation_2(); // 'next in line' mutation + (16 becomes 0)
174  void Mutation_3(); // 'next in line' mutation +/- (16 becomes 0 and -1 becomes 15)
175 };
176 //---------------------------------------------------------------------------
177 
178 
180 {
181  protected:
182  int AlleleNumber[256][16];
183  float AlleleFrequency[16][256];
184  float HE[16];
185  float HO[16];
186  int NoAlleles[256];
187  public:
189  int SupplyAN(int loc, int al) { return AlleleNumber[al][loc];}
190 };
191 //------------------------------------------------------------------------------
193 {
194  protected:
195  unsigned char Chromosome[32]; // = 32 loci (in 2 chromosomes) & 8 bits each
196  public:
198  void SetAllele(unsigned int locus, uint32 value, unsigned int Chromo);
199  uint32 GetAllele( unsigned int locus, unsigned int Chromo );
200  void Mutation_3(); // 'next in line' mutation +/-
201  void SetGeneticFlag();
202  void SetDirectFlag();
203  int HomozygosityCount() { return 0; } // To add if needed
204  int HeterozygosityCount() { return 0; } // To add if needed
205  void UnsetGeneticFlag();
206  void UnsetDirectFlag();
209  void PrintGenes();
211  void Initiation(AlleleFreq256_16* Al);
212 /*
213  void Mutation_1(); // random mutation
214  void Mutation_2(); // 'next in line' mutation + (16 becomes 0)
215 */
216 };
217 //---------------------------------------------------------------------------
218 
219 #endif
AlleleFreq1616::HE
float HE[16]
Definition: GeneticMaterial.h:130
g_rand_uni_fnc
double g_rand_uni_fnc()
Definition: ALMaSS_Random.cpp:56
GeneticMaterial::UnsetGeneticFlag
void UnsetGeneticFlag()
Definition: GeneticMaterial.cpp:175
GeneticMaterial1616::Mutation_3
void Mutation_3()
Definition: GeneticMaterial.cpp:844
AlleleFreq256_16::NoAlleles
int NoAlleles[256]
Definition: GeneticMaterial.h:186
AlleleFreq256_16::AlleleFrequency
float AlleleFrequency[16][256]
Definition: GeneticMaterial.h:183
AlleleFreq::HO
float HO[32]
Definition: GeneticMaterial.h:67
GeneticMaterial::HeterozygosityCount
int HeterozygosityCount()
Definition: GeneticMaterial.cpp:325
uint32
unsigned int uint32
Definition: ALMaSS_Setup.h:34
GeneticMaterial256_16::Initiation
void Initiation(AlleleFreq256_16 *Al)
Definition: GeneticMaterial.cpp:962
GeneticMaterial::GeneticMaterial
GeneticMaterial()
Definition: GeneticMaterial.cpp:352
GeneticMaterial::Chromosome
uint32 Chromosome[6]
Definition: GeneticMaterial.h:97
GeneticMaterial1616::UnsetDirectFlag
void UnsetDirectFlag()
Definition: GeneticMaterial.cpp:754
GeneticMaterial::ScoreHQThreshold
float ScoreHQThreshold()
Definition: GeneticMaterial.cpp:411
GeneticMaterial1616::Recombine
void Recombine(GeneticMaterial1616 *Gene1, GeneticMaterial1616 *Gene2)
Definition: GeneticMaterial.cpp:724
GeneticMaterial::UnsetDirectFlag
void UnsetDirectFlag()
Definition: GeneticMaterial.cpp:179
AlleleFreq256_16::SupplyAN
int SupplyAN(int loc, int al)
Definition: GeneticMaterial.h:189
GeneticMaterial256_16::Mutation_3
void Mutation_3()
Definition: GeneticMaterial.cpp:895
GeneticMaterial::GetDirectFlag
uint32 GetDirectFlag()
Definition: GeneticMaterial.cpp:188
GeneticMaterial256_16::SetAllele
void SetAllele(unsigned int locus, uint32 value, unsigned int Chromo)
Definition: GeneticMaterial.cpp:880
GeneticMaterial256_16::HeterozygosityCount
int HeterozygosityCount()
Definition: GeneticMaterial.h:204
GeneticMaterial::SetDirectFlag
void SetDirectFlag()
Definition: GeneticMaterial.cpp:170
AlleleFreq1616::AlleleNumber
int AlleleNumber[16][16]
Definition: GeneticMaterial.h:128
GeneticMaterial::Mutation_2
void Mutation_2()
Definition: GeneticMaterial.cpp:478
GeneticMaterial1616::Mutation_2
void Mutation_2()
Definition: GeneticMaterial.cpp:823
AlleleFreq1616::AlleleFreq1616
AlleleFreq1616()
Definition: GeneticMaterial.cpp:555
AlleleFreq::AlleleNumber
int AlleleNumber[32][16]
Definition: GeneticMaterial.h:64
Landscape
The landscape class containing all environmental and topographical data.
Definition: Landscape.h:142
GeneticMaterial256_16::UnsetGeneticFlag
void UnsetGeneticFlag()
Definition: GeneticMaterial.cpp:923
GeneticMaterial
Class for the genetic material optionally carried by animals in ALMaSS.
Definition: GeneticMaterial.h:94
AlleleFreq256_16::HO
float HO[16]
Definition: GeneticMaterial.h:185
GeneticMaterial1616::GetGeneticFlag
uint32 GetGeneticFlag()
Definition: GeneticMaterial.cpp:759
GeneticMaterial256_16::Chromosome
unsigned char Chromosome[32]
Definition: GeneticMaterial.h:195
GeneticMaterial256_16::GeneticMaterial256_16
GeneticMaterial256_16()
Definition: GeneticMaterial.cpp:873
GeneticMaterial1616::SetGeneticFlag
void SetGeneticFlag()
Definition: GeneticMaterial.cpp:741
GeneticMaterial::Mutation_1
void Mutation_1()
Definition: GeneticMaterial.cpp:441
GeneticMaterial256_16::SetDirectFlag
void SetDirectFlag()
Definition: GeneticMaterial.cpp:918
AlleleFreq
Class to handle statistics and constructs based on allele frequencies.
Definition: GeneticMaterial.h:61
g_MaxAllele
unsigned char g_MaxAllele
Definition: GeneticMaterial.cpp:50
GeneticMaterial256_16::PrintGenes
void PrintGenes()
AlleleFreq::AlleleFrequency
float AlleleFrequency[32][16]
Definition: GeneticMaterial.h:65
GeneticMaterial::GetGeneticFlag
uint32 GetGeneticFlag()
Definition: GeneticMaterial.cpp:184
AlleleFreq256_16::AlleleFreq256_16
AlleleFreq256_16()
Definition: GeneticMaterial.cpp:572
AlleleFreq1616::NoAlleles
int NoAlleles[16]
Definition: GeneticMaterial.h:132
MapErrorMsg::Warn
void Warn(MapErrorState a_level, std::string a_msg1, std::string a_msg2)
Definition: MapErrorMsg.cpp:69
GeneticMaterial1616::GeneticMaterial1616
GeneticMaterial1616()
Definition: GeneticMaterial.cpp:589
GeneticMaterial::SetAllele
void SetAllele(int pos, uint32 value, int Chromosome)
Definition: GeneticMaterial.cpp:193
GeneticMaterial::Mutation_3
void Mutation_3()
Definition: GeneticMaterial.cpp:507
MutationChance
double MutationChance
Definition: GeneticMaterial.cpp:49
AlleleFreq::NoAlleles
int NoAlleles[32]
Definition: GeneticMaterial.h:68
GeneticMaterial::GetAllele
uint32 GetAllele(int pos, int Chromosome)
Definition: GeneticMaterial.cpp:230
GeneticMaterial1616::Mutation_1
void Mutation_1()
Definition: GeneticMaterial.cpp:804
GeneticMaterial1616::HomozygosityCount
int HomozygosityCount()
Definition: GeneticMaterial.cpp:704
GeneticMaterial1616::SetAllele
void SetAllele(unsigned int locus, uint32 value, unsigned int Chromo)
Definition: GeneticMaterial.cpp:618
GeneticMaterial1616::Initiation
void Initiation(AlleleFreq1616 *Al)
Definition: GeneticMaterial.cpp:772
GeneticMaterial256_16::GetGeneticFlag
uint32 GetGeneticFlag()
Definition: GeneticMaterial.cpp:932
GeneticMaterial::Initiation
void Initiation(AlleleFreq *Al)
Definition: GeneticMaterial.cpp:363
GeneticMaterial256_16
Definition: GeneticMaterial.h:192
GeneticMaterial256_16::GetAllele
uint32 GetAllele(unsigned int locus, unsigned int Chromo)
Definition: GeneticMaterial.cpp:886
AlleleFreq::SupplyAN
int SupplyAN(int loc, int al)
Definition: GeneticMaterial.h:71
GeneticMaterial::PrintChromosome
void PrintChromosome(char *C, int Chromosome)
Definition: GeneticMaterial.cpp:255
g_msg
MapErrorMsg * g_msg
Definition: MapErrorMsg.cpp:41
GeneticMaterial256_16::HomozygosityCount
int HomozygosityCount()
Definition: GeneticMaterial.h:203
AlleleFreq256_16::HE
float HE[16]
Definition: GeneticMaterial.h:184
GeneticMaterial256_16::GetDirectFlag
uint32 GetDirectFlag()
Definition: GeneticMaterial.cpp:936
GeneticMaterial1616::GetDirectFlag
uint32 GetDirectFlag()
Definition: GeneticMaterial.cpp:763
GeneticMaterial1616::HeterozygosityCount
int HeterozygosityCount()
Definition: GeneticMaterial.cpp:715
GeneticMaterial::ReadFrequencies
void ReadFrequencies()
AlleleFreq1616::SupplyAN
int SupplyAN(int loc, int al)
Definition: GeneticMaterial.h:135
GeneticMaterial::Mutation_4
void Mutation_4()
Definition: GeneticMaterial.cpp:535
AlleleFreq::HE
float HE[32]
Definition: GeneticMaterial.h:66
GeneticMaterial1616::GetAllele
uint32 GetAllele(unsigned int locus, unsigned int Chromo)
Definition: GeneticMaterial.cpp:596
AlleleFreq::AlleleFreq
AlleleFreq()
Definition: GeneticMaterial.cpp:52
GeneticMaterial256_16::Recombine
void Recombine(GeneticMaterial256_16 *Gene1, GeneticMaterial256_16 *Gene2)
Definition: GeneticMaterial.cpp:941
GeneticMaterial::SetGeneticFlag
void SetGeneticFlag()
Definition: GeneticMaterial.cpp:166
GeneticMaterial1616::UnsetGeneticFlag
void UnsetGeneticFlag()
Definition: GeneticMaterial.cpp:750
g_random_fnc
int g_random_fnc(const int a_range)
Definition: ALMaSS_Random.cpp:74
GeneticMaterial::HomozygosityCount
int HomozygosityCount()
Definition: GeneticMaterial.cpp:314
GeneticMaterial1616::PrintChromosome
void PrintChromosome(char *C, unsigned int Chromosome)
Definition: GeneticMaterial.cpp:646
AlleleFreq256_16::AlleleNumber
int AlleleNumber[256][16]
Definition: GeneticMaterial.h:182
GeneticMaterial256_16::SetGeneticFlag
void SetGeneticFlag()
Definition: GeneticMaterial.cpp:914
GeneticMaterial::Recombine
void Recombine(GeneticMaterial *Gen21, GeneticMaterial *Gene2)
Definition: GeneticMaterial.cpp:335
AlleleFreq1616
Definition: GeneticMaterial.h:125
AlleleFreq1616::AlleleFrequency
float AlleleFrequency[16][16]
Definition: GeneticMaterial.h:129
GeneticMaterial1616::SetDirectFlag
void SetDirectFlag()
Definition: GeneticMaterial.cpp:745
AlleleFreq256_16
Definition: GeneticMaterial.h:179
GeneticMaterial::Mutation_1ab
void Mutation_1ab()
Definition: GeneticMaterial.cpp:462
GeneticMaterial256_16::UnsetDirectFlag
void UnsetDirectFlag()
Definition: GeneticMaterial.cpp:927
GeneticMaterial::ScoreReproduction
float ScoreReproduction()
Definition: GeneticMaterial.cpp:391
GeneticMaterial1616
Definition: GeneticMaterial.h:153
AlleleFreq1616::HO
float HO[16]
Definition: GeneticMaterial.h:131
GeneticMaterial1616::Chromosome
uint32 Chromosome[4]
Definition: GeneticMaterial.h:156