ALMaSS Vole ODDox  1.1
The vole model description following ODdox protocol
GeneticMaterial.h
Go to the documentation of this file.
1 /*
2 *******************************************************************************************************
3 Copyright (c) 2011, Christopher John Topping, University of Aarhus
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:
97  uint32 Chromosome[6];
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();
114  uint32 GetGeneticFlag();
115  uint32 GetDirectFlag();
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();
166  uint32 GetGeneticFlag();
167  uint32 GetDirectFlag();
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();
207  uint32 GetGeneticFlag();
208  uint32 GetDirectFlag();
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
GeneticMaterial::UnsetGeneticFlag
void UnsetGeneticFlag()
Definition: GeneticMaterial.cpp:178
GeneticMaterial1616::Mutation_3
void Mutation_3()
Definition: GeneticMaterial.cpp:847
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:328
GeneticMaterial256_16::Initiation
void Initiation(AlleleFreq256_16 *Al)
Definition: GeneticMaterial.cpp:965
GeneticMaterial::GeneticMaterial
GeneticMaterial()
Definition: GeneticMaterial.cpp:355
GeneticMaterial::Chromosome
uint32 Chromosome[6]
Definition: GeneticMaterial.h:97
GeneticMaterial1616::UnsetDirectFlag
void UnsetDirectFlag()
Definition: GeneticMaterial.cpp:757
GeneticMaterial::ScoreHQThreshold
float ScoreHQThreshold()
Definition: GeneticMaterial.cpp:414
GeneticMaterial1616::Recombine
void Recombine(GeneticMaterial1616 *Gene1, GeneticMaterial1616 *Gene2)
Definition: GeneticMaterial.cpp:727
GeneticMaterial::UnsetDirectFlag
void UnsetDirectFlag()
Definition: GeneticMaterial.cpp:182
AlleleFreq256_16::SupplyAN
int SupplyAN(int loc, int al)
Definition: GeneticMaterial.h:189
GeneticMaterial256_16::Mutation_3
void Mutation_3()
Definition: GeneticMaterial.cpp:898
GeneticMaterial::GetDirectFlag
uint32 GetDirectFlag()
Definition: GeneticMaterial.cpp:191
GeneticMaterial256_16::SetAllele
void SetAllele(unsigned int locus, uint32 value, unsigned int Chromo)
Definition: GeneticMaterial.cpp:883
GeneticMaterial256_16::HeterozygosityCount
int HeterozygosityCount()
Definition: GeneticMaterial.h:204
GeneticMaterial::SetDirectFlag
void SetDirectFlag()
Definition: GeneticMaterial.cpp:173
AlleleFreq1616::AlleleNumber
int AlleleNumber[16][16]
Definition: GeneticMaterial.h:128
GeneticMaterial::Mutation_2
void Mutation_2()
Definition: GeneticMaterial.cpp:481
GeneticMaterial1616::Mutation_2
void Mutation_2()
Definition: GeneticMaterial.cpp:826
AlleleFreq1616::AlleleFreq1616
AlleleFreq1616()
Definition: GeneticMaterial.cpp:558
AlleleFreq::AlleleNumber
int AlleleNumber[32][16]
Definition: GeneticMaterial.h:64
Landscape
The landscape class containing all environmental and topographical data.
Definition: Landscape.h:112
GeneticMaterial256_16::UnsetGeneticFlag
void UnsetGeneticFlag()
Definition: GeneticMaterial.cpp:926
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:762
GeneticMaterial256_16::Chromosome
unsigned char Chromosome[32]
Definition: GeneticMaterial.h:195
GeneticMaterial256_16::GeneticMaterial256_16
GeneticMaterial256_16()
Definition: GeneticMaterial.cpp:876
GeneticMaterial1616::SetGeneticFlag
void SetGeneticFlag()
Definition: GeneticMaterial.cpp:744
GeneticMaterial::Mutation_1
void Mutation_1()
Definition: GeneticMaterial.cpp:444
GeneticMaterial256_16::SetDirectFlag
void SetDirectFlag()
Definition: GeneticMaterial.cpp:921
AlleleFreq
Class to handle statistics and constructs based on allele frequencies.
Definition: GeneticMaterial.h:61
GeneticMaterial256_16::PrintGenes
void PrintGenes()
AlleleFreq::AlleleFrequency
float AlleleFrequency[32][16]
Definition: GeneticMaterial.h:65
GeneticMaterial::GetGeneticFlag
uint32 GetGeneticFlag()
Definition: GeneticMaterial.cpp:187
AlleleFreq256_16::AlleleFreq256_16
AlleleFreq256_16()
Definition: GeneticMaterial.cpp:575
AlleleFreq1616::NoAlleles
int NoAlleles[16]
Definition: GeneticMaterial.h:132
GeneticMaterial1616::GeneticMaterial1616
GeneticMaterial1616()
Definition: GeneticMaterial.cpp:592
GeneticMaterial::SetAllele
void SetAllele(int pos, uint32 value, int Chromosome)
Definition: GeneticMaterial.cpp:196
GeneticMaterial::Mutation_3
void Mutation_3()
Definition: GeneticMaterial.cpp:510
AlleleFreq::NoAlleles
int NoAlleles[32]
Definition: GeneticMaterial.h:68
GeneticMaterial::GetAllele
uint32 GetAllele(int pos, int Chromosome)
Definition: GeneticMaterial.cpp:233
GeneticMaterial1616::Mutation_1
void Mutation_1()
Definition: GeneticMaterial.cpp:807
GeneticMaterial1616::HomozygosityCount
int HomozygosityCount()
Definition: GeneticMaterial.cpp:707
GeneticMaterial1616::SetAllele
void SetAllele(unsigned int locus, uint32 value, unsigned int Chromo)
Definition: GeneticMaterial.cpp:621
GeneticMaterial1616::Initiation
void Initiation(AlleleFreq1616 *Al)
Definition: GeneticMaterial.cpp:775
GeneticMaterial256_16::GetGeneticFlag
uint32 GetGeneticFlag()
Definition: GeneticMaterial.cpp:935
GeneticMaterial::Initiation
void Initiation(AlleleFreq *Al)
Definition: GeneticMaterial.cpp:366
GeneticMaterial256_16
Definition: GeneticMaterial.h:192
GeneticMaterial256_16::GetAllele
uint32 GetAllele(unsigned int locus, unsigned int Chromo)
Definition: GeneticMaterial.cpp:889
AlleleFreq::SupplyAN
int SupplyAN(int loc, int al)
Definition: GeneticMaterial.h:71
GeneticMaterial::PrintChromosome
void PrintChromosome(char *C, int Chromosome)
Definition: GeneticMaterial.cpp:258
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:939
GeneticMaterial1616::GetDirectFlag
uint32 GetDirectFlag()
Definition: GeneticMaterial.cpp:766
GeneticMaterial1616::HeterozygosityCount
int HeterozygosityCount()
Definition: GeneticMaterial.cpp:718
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:538
AlleleFreq::HE
float HE[32]
Definition: GeneticMaterial.h:66
GeneticMaterial1616::GetAllele
uint32 GetAllele(unsigned int locus, unsigned int Chromo)
Definition: GeneticMaterial.cpp:599
AlleleFreq::AlleleFreq
AlleleFreq()
Definition: GeneticMaterial.cpp:55
GeneticMaterial256_16::Recombine
void Recombine(GeneticMaterial256_16 *Gene1, GeneticMaterial256_16 *Gene2)
Definition: GeneticMaterial.cpp:944
GeneticMaterial::SetGeneticFlag
void SetGeneticFlag()
Definition: GeneticMaterial.cpp:169
GeneticMaterial1616::UnsetGeneticFlag
void UnsetGeneticFlag()
Definition: GeneticMaterial.cpp:753
GeneticMaterial::HomozygosityCount
int HomozygosityCount()
Definition: GeneticMaterial.cpp:317
GeneticMaterial1616::PrintChromosome
void PrintChromosome(char *C, unsigned int Chromosome)
Definition: GeneticMaterial.cpp:649
AlleleFreq256_16::AlleleNumber
int AlleleNumber[256][16]
Definition: GeneticMaterial.h:182
GeneticMaterial256_16::SetGeneticFlag
void SetGeneticFlag()
Definition: GeneticMaterial.cpp:917
GeneticMaterial::Recombine
void Recombine(GeneticMaterial *Gen21, GeneticMaterial *Gene2)
Definition: GeneticMaterial.cpp:338
AlleleFreq1616
Definition: GeneticMaterial.h:125
GeneticMaterial1616::SetDirectFlag
void SetDirectFlag()
Definition: GeneticMaterial.cpp:748
AlleleFreq1616::AlleleFrequency
float AlleleFrequency[16][16]
Definition: GeneticMaterial.h:129
AlleleFreq256_16
Definition: GeneticMaterial.h:179
GeneticMaterial::Mutation_1ab
void Mutation_1ab()
Definition: GeneticMaterial.cpp:465
GeneticMaterial256_16::UnsetDirectFlag
void UnsetDirectFlag()
Definition: GeneticMaterial.cpp:930
GeneticMaterial::ScoreReproduction
float ScoreReproduction()
Definition: GeneticMaterial.cpp:394
GeneticMaterial1616
Definition: GeneticMaterial.h:153
AlleleFreq1616::HO
float HO[16]
Definition: GeneticMaterial.h:131
GeneticMaterial1616::Chromosome
uint32 Chromosome[4]
Definition: GeneticMaterial.h:156