Nemo  2.4.2
Simulate forward-in-time genetic evolution in a spatially explicit, individual-based stochastic simulator
LCEquanti.h
Go to the documentation of this file.
1 
28 #ifndef LCEQUANTI_H
29 #define LCEQUANTI_H
30 
31 #include "LCEbreed.h"
32 #include "ttquanti.h"
33 
34 //LCE_QuantiInit
35 //
37 class LCE_QuantiInit : public virtual LifeCycleEvent
38 {
39 
42  unsigned int _nTraits, _nLoci;
44 
45 public:
46 
47  LCE_QuantiInit ( );
48 
49  virtual ~LCE_QuantiInit ( ) { }
50 
51  virtual void execute ();
52  void init_trait_value(sex_t SEX, age_idx AGE, unsigned int size, unsigned int deme, double *values);
53  void init_allele_freq(sex_t SEX, age_idx AGE, unsigned int size, unsigned int deme, double *values, const TMatrix& all_val);
54 
55  virtual LifeCycleEvent* clone ( ) {return new LCE_QuantiInit();}
56 
57  virtual bool setParameters ();
58 
59  //SimComponent implementation:
60  virtual void loadFileServices ( FileServices* loader ) {}
61  virtual void loadStatServices ( StatServices* loader ) {}
62  virtual bool resetParameterFromSource (std::string param, SimComponent* cmpt) {return false;}
63  virtual age_t removeAgeClass ( ) {return 0;}
64  virtual age_t addAgeClass ( ) {return 0;}
65  virtual age_t requiredAgeClass () {return 0;}
66 
67 };
68 
69 //LCE_QuantiModifier
70 //
72 class LCE_QuantiModifier : public virtual LifeCycleEvent
73 {
74 
76  /*A vector storing the target heritability of the trait(s).*/
77  vector<double> _h2;
78  /*An array to hold the multiple occurrences of the modifier.*/
80  /*The index of the next time the modifier must be called.*/
81  unsigned int _next_occurrence;
82  /*A flag to indicate whether the modifier is called at each generation.*/
84  /*A flag to indicate on which age class the modifier is applied.*/
86 
87  vector<double> (TTQuantiSH::* _get_VA_func_ptr) (Patch*, const age_idx);
88 
89 
90 public:
91 
93 
94  virtual ~LCE_QuantiModifier ( ) { }
95 
96  virtual void execute ();
97 
98  void setVefromVa (Patch* patch, age_idx AGE);
99 
100  void setIndPhenotype (Patch* patch, sex_t SEX, age_idx AGE);
101 
102 
103  virtual LifeCycleEvent* clone ( ) {return new LCE_QuantiModifier();}
104 
105  virtual bool setParameters ();
106 
107  //SimComponent implementation:
108  virtual void loadFileServices ( FileServices* loader ) {}
109  virtual void loadStatServices ( StatServices* loader ) {}
110  virtual bool resetParameterFromSource (std::string param, SimComponent* cmpt) {return false;}
111  virtual age_t removeAgeClass ( ) {return 0;}
112  virtual age_t addAgeClass ( ) {return 0;}
113  virtual age_t requiredAgeClass () {return 0;}
114 
115 };
116 
117 // Class LCE_Breed_Quanti
118 //
129 class LCE_Breed_Quanti : public virtual LCE_Breed_base
130 {
131 
133  vector<double> _h2;
134 
135  vector<double> (TTQuantiSH::* _get_VA_func_ptr) (Patch*, const age_idx);
136 
138 
139 public:
140 
141  LCE_Breed_Quanti ( ) : LifeCycleEvent("breed_quanti","quant"), _QuantiProto(0),
143 
144  virtual ~LCE_Breed_Quanti ( ) { }
145 
146  void setVefromVa (Patch* patch, age_idx AGE);
147 
148  void setIndPhenotype (Patch* patch, sex_t SEX, age_idx AGE);
149 
151 
152  void WrightFisherPopulation ();
153 
156  virtual bool setParameters ();
157  virtual void execute ();
158 
159  virtual LifeCycleEvent* clone ( ) {return new LCE_Breed_Quanti();}
160 
161  virtual void loadFileServices ( FileServices* loader ) {}
162  virtual void loadStatServices ( StatServices* loader ) {}
163  virtual bool resetParameterFromSource (std::string param, SimComponent* cmpt) {return false;}
164  virtual age_t removeAgeClass ( ) {return 0;}
165  virtual age_t addAgeClass ( ) {return OFFSPRG;}
166  virtual age_t requiredAgeClass () {return ADULTS;}
168 };
169 
170 
171 #endif
A class to manage the files associated with each components of the simulation.
Definition: fileservices.h:50
Implementation of the basic breeding and mating procedures, does not link to any trait.
Definition: LCEquanti.h:130
virtual ~LCE_Breed_Quanti()
Definition: LCEquanti.h:144
void setVefromVa(Patch *patch, age_idx AGE)
Definition: LCEquanti.cc:565
vector< double > _h2
Definition: LCEquanti.h:133
virtual LifeCycleEvent * clone()
Definition: LCEquanti.h:159
virtual age_t requiredAgeClass()
Definition: LCEquanti.h:166
TProtoQuanti * _QuantiProto
Definition: LCEquanti.h:132
LCE_Breed_Quanti()
Definition: LCEquanti.h:141
void setIndPhenotype(Patch *patch, sex_t SEX, age_idx AGE)
Definition: LCEquanti.cc:595
virtual bool setParameters()
Definition: LCEquanti.cc:404
virtual void loadStatServices(StatServices *loader)
Definition: LCEquanti.h:162
virtual void loadFileServices(FileServices *loader)
Definition: LCEquanti.h:161
void(LCE_Breed_Quanti::* _myPopModelFuncPtr)(void)
Definition: LCEquanti.h:137
virtual age_t addAgeClass()
Definition: LCEquanti.h:165
virtual age_t removeAgeClass()
Definition: LCEquanti.h:164
vector< double >(TTQuantiSH::* _get_VA_func_ptr)(Patch *, const age_idx)
Definition: LCEquanti.h:135
virtual bool resetParameterFromSource(std::string param, SimComponent *cmpt)
Definition: LCEquanti.h:163
virtual void execute()
Definition: LCEquanti.cc:428
void WrightFisherPopulation()
Definition: LCEquanti.cc:508
void NonWrightFisherPopulation()
Definition: LCEquanti.cc:450
Base class for the breeding (and mating) life cycle events.
Definition: LCEbreed.h:44
Set patch-specifiec initial genotypes values.
Definition: LCEquanti.h:38
void init_allele_freq(sex_t SEX, age_idx AGE, unsigned int size, unsigned int deme, double *values, const TMatrix &all_val)
Definition: LCEquanti.cc:166
virtual void execute()
Definition: LCEquanti.cc:103
virtual bool setParameters()
Definition: LCEquanti.cc:48
LCE_QuantiInit()
Definition: LCEquanti.cc:39
bool _doByAlleleFreq
Definition: LCEquanti.h:41
TProtoQuanti * _QuantiProto
Definition: LCEquanti.h:43
TMatrix _init_values
Definition: LCEquanti.h:40
bool _doByTraitValue
Definition: LCEquanti.h:41
virtual age_t removeAgeClass()
Definition: LCEquanti.h:63
virtual bool resetParameterFromSource(std::string param, SimComponent *cmpt)
Definition: LCEquanti.h:62
void init_trait_value(sex_t SEX, age_idx AGE, unsigned int size, unsigned int deme, double *values)
Definition: LCEquanti.cc:151
virtual age_t addAgeClass()
Definition: LCEquanti.h:64
unsigned int _nLoci
Definition: LCEquanti.h:42
virtual LifeCycleEvent * clone()
Definition: LCEquanti.h:55
virtual age_t requiredAgeClass()
Definition: LCEquanti.h:65
unsigned int _nTraits
Definition: LCEquanti.h:42
virtual void loadFileServices(FileServices *loader)
Definition: LCEquanti.h:60
TMatrix _init_freq
Definition: LCEquanti.h:40
virtual ~LCE_QuantiInit()
Definition: LCEquanti.h:49
virtual void loadStatServices(StatServices *loader)
Definition: LCEquanti.h:61
Set patch-specifiec initial genotypes values.
Definition: LCEquanti.h:73
vector< double >(TTQuantiSH::* _get_VA_func_ptr)(Patch *, const age_idx)
Definition: LCEquanti.h:87
TMatrix _occurrences
Definition: LCEquanti.h:79
LCE_QuantiModifier()
Definition: LCEquanti.cc:238
virtual LifeCycleEvent * clone()
Definition: LCEquanti.h:103
virtual bool setParameters()
Definition: LCEquanti.cc:258
vector< double > _h2
Definition: LCEquanti.h:77
bool _is_permanent
Definition: LCEquanti.h:83
void setIndPhenotype(Patch *patch, sex_t SEX, age_idx AGE)
Definition: LCEquanti.cc:384
virtual void loadStatServices(StatServices *loader)
Definition: LCEquanti.h:109
virtual ~LCE_QuantiModifier()
Definition: LCEquanti.h:94
virtual void loadFileServices(FileServices *loader)
Definition: LCEquanti.h:108
age_t _age_flag
Definition: LCEquanti.h:85
unsigned int _next_occurrence
Definition: LCEquanti.h:81
virtual void execute()
Definition: LCEquanti.cc:314
virtual age_t requiredAgeClass()
Definition: LCEquanti.h:113
virtual age_t removeAgeClass()
Definition: LCEquanti.h:111
virtual bool resetParameterFromSource(std::string param, SimComponent *cmpt)
Definition: LCEquanti.h:110
TProtoQuanti * _QuantiProto
Definition: LCEquanti.h:75
void setVefromVa(Patch *patch, age_idx AGE)
Definition: LCEquanti.cc:361
virtual age_t addAgeClass()
Definition: LCEquanti.h:112
Base class of the Life Cycle Events, declares the LCE interface.
Definition: lifecycleevent.h:71
Second class in the metapopulation design structure, between the Metapop and Individual classes.
Definition: metapop.h:430
Interface to all basic components of a simulation (traits, life cycle events, pop,...
Definition: simcomponent.h:43
The Service class used to manage the StatHandler objects.
Definition: statservices.h:48
A class to handle matrix in params, coerces matrix into a vector of same total size.
Definition: tmatrix.h:48
TProtoQuanti.
Definition: ttquanti.h:413
TTQuantiSH.
Definition: ttquanti.h:732
sex_t
Sex types, males are always 0 and females 1!!
Definition: types.h:34
unsigned int age_t
Age class flags.
Definition: types.h:44
#define ADULTS
Adults age class flag (breeders).
Definition: types.h:52
#define OFFSPRG
Offspring age class flag.
Definition: types.h:48
age_idx
Array index of the age classes in the patch sizes and containers arrays.
Definition: types.h:39

Generated for Nemo v2.4.2 by  doxygen 1.9.1

Catalogued on GSR