Nemo  2.4.0b
Simulate forward-in-time genetic evolution in a spatially explicit, individual-based stochastic simulator
ttneutralgenes.h
Go to the documentation of this file.
1 
29 #ifndef TTNEUTRALGENES_H
30 #define TTNEUTRALGENES_H
31 
32 #include <cmath>
33 #include <vector>
34 #include "ttrait_with_map.h"
35 #include "types.h"
36 #include "lifecycleevent.h"
37 #include "filehandler.h"
38 #include "stathandler.h"
39 #include "datatable.h"
40 #include "metapop.h"
41 #include "binarystoragebuffer.h"
42 #include "Uniform.h"
43 
44 class TTNeutralGenesFH;
45 class TTNeutralGenesSH;
46 class TTNtrlPhenotyperFH;
47 class TTNOhtaStats;
48 class TProtoNeutralGenes;
49 // ----------------------------------------------------------------------------------------
50 
51 // N E U T R A L T R A I T
52 
53 // ----------------------------------------------------------------------------------------
55 class TTNeutralGenes : public TTrait
56 {
57 private:
59  //parameters:
60  void (TTNeutralGenes::* _mutate_func_ptr) (void);
61  void (TProtoNeutralGenes::* _inherit_func_ptr) (sex_t, unsigned char*, const unsigned char**);
62 
63  //_sequence:
64  unsigned char** _sequence; // ordered as [ploidy][locus]
65 
66  const trait_t _type;
67 
68 public:
69 
72 
75  _sequence(0), _type(NTRL) { }
76 
77  virtual ~TTNeutralGenes ();
78 
81  void set_proto (TProtoNeutralGenes* proto) {_myProto = proto;}
82 
83  void set_mut_func_ptr (void(TTNeutralGenes::* theFunc)(void))
84  {_mutate_func_ptr = theFunc;}
85  void set_inherit_func_ptr (void(TProtoNeutralGenes::* theFunc)(sex_t, unsigned char*, const unsigned char**))
86  {_inherit_func_ptr = theFunc;}
87  void set_allele (unsigned int loc, unsigned int al, unsigned char val) {_sequence[al][loc] = val;}
89 
90  // static void set_recomb_template (unsigned int size);
91 
94  void mutate_SSM ( );
95  void mutate_KAM ( );
96  void mutate_2all ( );
97  void mutate_NULL ( ) { }
101  virtual TTNeutralGenes& operator= (const TTrait& T);
102  virtual bool operator== (const TTrait& T);
103  virtual bool operator!= (const TTrait& T);
104  virtual void init ( );
105  virtual void init_sequence ( );
106  virtual void reset ( );
107  virtual void* set_trait (void* value) {return NULL;}
108  virtual void** get_sequence ( ) const {return (void**)_sequence;}
109  virtual double get_allele_value (int loc, int all) const ;
110  virtual void set_allele_value (unsigned int locus, unsigned int allele, double value) ;
111  virtual void set_sequence (void** seq);
112  virtual trait_t get_type ( ) const {return _type;}
113  virtual void set_value ( ) { }
114  virtual void* getValue ( ) const {return 0;}
115  virtual void inherit (const TTrait* mother, const TTrait* father);
116  virtual void mutate ( ) {(this->*_mutate_func_ptr) ();}
117  virtual void show_up ( );
118  virtual TTNeutralGenes* clone ( ) {return new TTNeutralGenes(*this);}
119 
120  //implements StorableComponent
121  virtual void store_data (BinaryStorageBuffer* saver);
122  virtual bool retrieve_data (BinaryStorageBuffer* reader);
124 };
125 // ----------------------------------------------------------------------------------------
126 
127 // N E U T R A L T R A I T P R O T O T Y P E
128 
129 // ----------------------------------------------------------------------------------------
132 
133 private:
134  unsigned int _allele_num;
135  unsigned int _locus_num;
136  unsigned int _ploidy;
137  double _mut_rate;
139  unsigned int _2L; //genome size (ploidy*num_locus)
140  unsigned int _init_model;
141  double _recomb_rate;
143  void (TProtoNeutralGenes::* _inherit_func_ptr) (sex_t, unsigned char*, const unsigned char**);
144 
145  vector< TTNeutralGenesFH* > _writers;
148  const trait_t _type;
149 
150 public:
151 
152  TProtoNeutralGenes ( );
153 
155 
156  virtual ~TProtoNeutralGenes ( );
157 
158  unsigned int get_ploidy ( ) {return _ploidy;}
159  unsigned int get_locus_num ( ) {return _locus_num;}
160  unsigned int get_allele_num ( ) {return _allele_num;}
161  double get_mut_rate ( ) {return _mut_rate;}
162  unsigned int get_genome_size ( ) {return _2L;}
163  unsigned int get_num_mutations ( ) {return RAND::Binomial( _mut_rate, _2L );}
164  unsigned int get_init_model ( ) {return _init_model;}
165 
167 
168  void inherit_low (sex_t SEX, unsigned char* seq, const unsigned char** parent);
169  void inherit_free (sex_t SEX, unsigned char* seq, const unsigned char** parent);
170 
171  //implementation of TraitPrototype:
172  virtual void init (){}
173 
174  virtual void reset (){TTProtoWithMap::reset();}
175 
176  virtual TTNeutralGenes* hatch ();
177 
178  virtual TProtoNeutralGenes* clone () {return new TProtoNeutralGenes(*this);}
179 
180  virtual trait_t get_type () const {return _type;}
181  //implementation of SimComponent:
182  virtual bool setParameters();
183 
184  virtual void loadFileServices ( FileServices* loader );
185 
186  virtual void loadStatServices ( StatServices* loader );
187 
188  virtual bool resetParameterFromSource (std::string param, SimComponent* cmpt); // {return false;}
189 
190  //implementation of StorableComponent:
191  virtual void store_data ( BinaryStorageBuffer* saver ) {saver->store(&_locus_num,sizeof(int));}
192 
193  virtual bool retrieve_data ( BinaryStorageBuffer* reader );
194 };
195 
196 // ----------------------------------------------------------------------------------------
197 
198 // N E U T R A L T R A I T F I L E H A N D L E R
199 
200 // ----------------------------------------------------------------------------------------
201 
208 class TTNeutralGenesFH: public TraitFileHandler<TProtoNeutralGenes> {
209 
212 
213 public:
214 
216  : TraitFileHandler<TProtoNeutralGenes> (TP, ".txt"), write_fct(0)
217  { }
218 
219  virtual ~TTNeutralGenesFH ( ) { }
220 
221  virtual void FHwrite ();
222 
223  virtual void FHread (string& filename);
224 
225  void write_TAB();
226  void write_patch_TAB(Patch* patch, sex_t SEX, age_idx AGE, ofstream &FH);
227  void write_PLINK ();
228  void print_PLINK_PED(ofstream& FH, age_idx Ax, Patch *patch);
229  void write_PLINK_BED (ofstream &BED);
230  void write_GENEPOP();
231  void write_patch_GENEPOP(Patch* patch, sex_t SEX, age_idx AGE, ofstream &FH, unsigned int digits);
232  void write_FSTAT();
233  void write_patch_FSTAT(Patch* patch, sex_t SEX, age_idx AGE, ofstream &FH, unsigned int digits);
234  void write_Fst_i();
235  void write_varcompWC();
236 
237  void setOutputOption(string opt);
238  void set_write_fct( void (TTNeutralGenesFH::* fct_ptr) () ) {write_fct = fct_ptr;}
239 
240 };
241 
242 // ------------------------------------------------------------------------------
246 // ------------------------------------------------------------------------------
247 class TTNOhtaStats : public TraitFileHandler<TProtoNeutralGenes> {
248 
250 
251 public:
253 
254  virtual ~TTNOhtaStats () {}
255  virtual void FHwrite ();
256  virtual void FHread (string& filename) {}
257 };
258 
259 
260 // ----------------------------------------------------------------------------------------
261 
262 // N E U T R A L T R A I T S T A T H A N D L E R
263 
264 // ----------------------------------------------------------------------------------------
265 
267 class TTNeutralGenesSH: public TraitStatHandler<TProtoNeutralGenes, TTNeutralGenesSH> {
268 
274 
278 
280  double _sib_prop[4];
281  double _sib_coa[4];
282 
287  double _fst_WH;
292 
293  double _fst_W1, _fst_W2;
296 
297  //Nei's genetic distance:
299  double _meanD;
300 
301 public:
302 
306  _D(0)
307  { }
308 
309  virtual ~TTNeutralGenesSH ( )
310  {
311  if(_coa_matrix != NULL) delete _coa_matrix;
312  if(_fst_matrix != NULL) delete _fst_matrix;
313  if(_fst_WC_loc) delete[]_fst_WC_loc;
314  if(_fis_WC_loc) delete[]_fis_WC_loc;
315  if(_fit_WC_loc) delete[]_fit_WC_loc;
316  if(_D != NULL) delete _D;
317  }
318 
319  virtual void init ( ) ;
320 
321  virtual bool setStatRecorders (std::string& token);
322 
323  void setFreqRecorders (age_t AGE);
325  void setFstatRecorders (age_t AGE);
326  void setFstat2Recorders (age_t AGE);
327  void setFstatWCRecorders (age_t AGE);
328  void setCoaMatrixRecorders (age_t AGE, unsigned char dim);
329  void setFstMatrixRecorders (age_t AGE, unsigned char dim);
330  void setNeiGeneticDistanceRecorders (age_t AGE, bool pairwise);
331  void setDxyRecorders (age_t AGE, bool patchwise);
332 
337  void setHeterozygosity (age_t AGE);
340 
341  double getGlobalAlleleFreq (unsigned int loc, unsigned int all) {
342  return _globalAlleleFreq.get(loc, all);
343  }
344 
345  double getHeterozygosity (unsigned int loc) {
346  double het = 0;
347  for(unsigned int i = 0; i < _heteroTable.getNumGroups(); ++i )
348  het += _heteroTable.get(i, loc, 0);
349  return het/_heteroTable.getNumGroups(); //mean per patch heterozygosity
350  }
351 
355  void setAlleleTables (age_t AGE);
356  void setHeteroTable (age_t AGE);
357  void allocateTables (unsigned int loci, unsigned int all);
358 
361 
363 
365 
368 
378  void setFstMatrix (age_t AGE, unsigned char dim);
387  double getWeightedFst () {return _fst_WH;}
389  double getFst_ij (unsigned int i)
390  {
391  unsigned int scale = (unsigned int)pow( 10.0, (int)log10((float)_fst_matrix->getNbCols()) + 1 );
392  return _fst_matrix->get(i/scale, i%scale);
393  }
395  void setFst_li(unsigned int N, unsigned int L, double **array);
396 // /**Computes raw Fst following the original definition (=var(p)/p_bar(1 - p_bar)).*/
397 // double getFstWright(unsigned int i) {if(i == 1) return _fst_W1; else return _fst_W2;}
398 
400  void setFstat (age_t AGE);
403  double setHo (age_idx age_pos);
404  double setHs (age_idx age_pos);
405  double setHt (age_idx age_pos);
406  double getHsnei () {return _hsnei;}
407  double getHtnei () {return _htnei;}
408  double getHo () {return _ho;}
409  double getHs () {return _hs;}
410  double getHt () {return _ht;}
411  double getFst () {return _fst;}
412  double getFis () {return _fis;}
413  double getFit () {return _fit;}
415  void setFstat2 (age_t AGE);
418  deque<double> setHo2 (age_idx age_pos);
419  deque<double> setHs2 (age_idx age_pos);
420  deque<double> setHt2 (age_idx age_pos);
421 
423  void setFstatWeirCockerham (age_t AGE);
424  void setFstatWeirCockerham_MS (age_t AGE);
427  double getFstWC () {return _fst_WC;}
428  double getFisWC () {return _fis_WC;}
429  double getFitWC () {return _fit_WC;}
431  void setLociDivCounter (age_t AGE);
432  double getNbAllLocal () {return _nb_all_local;}
433  double getNbAllGlobal () {return _nb_all_global;}
434  double getFixLocLocal () {return _fix_loc_local;}
435  double getFixLocGlobal () {return _fix_loc_global;}
439 
446  double Coancestry (void** ind1, void** ind2, unsigned int nb_locus);
454  void setCoaMatrix (age_idx age_pos, unsigned char dim);
461  void setAdults_Theta ();
462 
467  double getCoa (unsigned int i)
468  {
469  unsigned int scale = (unsigned int)pow( 10.0, (int)log10((float)_coa_matrix->getNbCols()) + 1 );
470  return _coa_matrix->get(i/scale, i%scale);
471  }
472  double getMeanTheta () {return _mean_theta;}
473  double getMeanAlpha () {return _mean_alpha;}
475  double getTheta_FF () {return Theta_FF;}
477  double getTheta_MM () {return Theta_MM;}
479  double getTheta_FM () {return Theta_FM;}
480  void setSibStats ();
481  void setSibCoa (Individual *I1, Individual *I2);
482  double getSibProportions (unsigned int i) {return _sib_prop[i];}
483  double getSibCoaMeans (unsigned int i) {return _sib_coa[i];}
485 
490  void setNeiGeneticDistance (age_t AGE);
491  double getNeiGeneticDistance (unsigned int i)
492  {
493  unsigned int scale = (unsigned int)pow( 10.0, (int)log10((float)_D->getNbCols()) + 1 );
494  return _D->get(i/scale,i%scale);
495  }
496  double getMeanNeiGeneticDistance ( ) {return _meanD;}
498 
501  double getDxyOffspringPerPatch (unsigned int patch1, unsigned patch2) {return getDxyPerPatch(OFFSx, patch1, patch2);}
502  double getDxyAdultPerPatch (unsigned int patch1, unsigned patch2) {return getDxyPerPatch(ADLTx, patch1, patch2);}
503  double getDxyPerPatch (age_idx age, unsigned int patch1, unsigned patch2);
504  double getDxy (unsigned int age_class);
506 };
507 
508 // ----------------------------------------------------------------------------------------
509 
510 // N E U T R A L T R A I T F R E Q I N I T I A L I Z E R
511 
512 // ----------------------------------------------------------------------------------------
513 
514 //LCE_NtrlInit
515 //
517 class LCE_NtrlInit : public virtual LifeCycleEvent
518 {
519 
521  unsigned int _nLoci;
522 
523 public:
524 
525  LCE_NtrlInit ( );
526 
527  virtual ~LCE_NtrlInit ( ) { }
528 
529  virtual void execute ();
530 
531  void init_allele_freq(sex_t SEX, age_idx AGE, unsigned int size, unsigned int deme, double *values);
532 
533  virtual LifeCycleEvent* clone ( ) {return new LCE_NtrlInit();}
534 
535  virtual bool setParameters ();
536 
537  //SimComponent implementation:
538  virtual void loadFileServices ( FileServices* loader ) {}
539  virtual void loadStatServices ( StatServices* loader ) {}
540  virtual bool resetParameterFromSource (std::string param, SimComponent* cmpt) {return false;}
541  virtual age_t removeAgeClass ( ) {return 0;}
542  virtual age_t addAgeClass ( ) {return 0;}
543  virtual age_t requiredAgeClass () {return 0;}
544 
545 };
546 
547 #endif //TTNEUTRALGENES_H
548 
Nemo2.
A class to store any kind of data in a char buffer before unloading it in a binary data file.
Definition: binarystoragebuffer.h:44
void store(void *stream, unsigned int nb_bytes)
Definition: binarystoragebuffer.cc:16
T get(unsigned int group, unsigned int Class, unsigned int elmnt)
Returns value stored of the element 'elmnt' of the class 'Class' in the group 'group'.
Definition: datatable.h:228
unsigned int getNumGroups()
Definition: datatable.h:258
A class to manage the files associated with each components of the simulation.
Definition: fileservices.h:52
This class contains traits along with other individual information (sex, pedigree,...
Definition: individual.h:49
Set patch-specifiec initial genotypes values.
Definition: ttneutralgenes.h:518
virtual age_t requiredAgeClass()
Definition: ttneutralgenes.h:543
virtual age_t removeAgeClass()
Definition: ttneutralgenes.h:541
TMatrix _init_freq
Definition: ttneutralgenes.h:520
virtual ~LCE_NtrlInit()
Definition: ttneutralgenes.h:527
unsigned int _nLoci
Definition: ttneutralgenes.h:521
virtual void execute()
Definition: ttneutralgenes.cc:2666
virtual age_t addAgeClass()
Definition: ttneutralgenes.h:542
virtual LifeCycleEvent * clone()
Definition: ttneutralgenes.h:533
void init_allele_freq(sex_t SEX, age_idx AGE, unsigned int size, unsigned int deme, double *values)
Definition: ttneutralgenes.cc:2690
virtual void loadFileServices(FileServices *loader)
Definition: ttneutralgenes.h:538
virtual bool setParameters()
Definition: ttneutralgenes.cc:2642
LCE_NtrlInit()
Definition: ttneutralgenes.cc:2635
virtual bool resetParameterFromSource(std::string param, SimComponent *cmpt)
Definition: ttneutralgenes.h:540
virtual void loadStatServices(StatServices *loader)
Definition: ttneutralgenes.h:539
Base class of the Life Cycle Events, declares the LCE interface.
Definition: lifecycleevent.h:73
Second class in the metapopulation design structure, between the Metapop and Individual classes.
Definition: metapop.h:432
static double Binomial(double p, unsigned int n)
Definition: Uniform.h:489
Interface to all basic components of a simulation (traits, life cycle events, pop,...
Definition: simcomponent.h:45
The Service class used to manage the StatHandler objects.
Definition: statservices.h:50
A class to handle matrix in params, coerces matrix into a vector of same total size.
Definition: tmatrix.h:50
unsigned int getNbCols() const
Gives the number of columns.
Definition: tmatrix.h:215
double get(unsigned int i, unsigned int j) const
Accessor to element at row i and column j.
Definition: tmatrix.h:193
Prototype class for the TTNeutralGenes trait class.
Definition: ttneutralgenes.h:131
TTNOhtaStats * _ohtaStats
Definition: ttneutralgenes.h:146
virtual bool resetParameterFromSource(std::string param, SimComponent *cmpt)
Definition: ttneutralgenes.cc:521
TTNeutralGenesSH * _stats
Definition: ttneutralgenes.h:147
virtual void loadFileServices(FileServices *loader)
Definition: ttneutralgenes.cc:161
unsigned int _allele_num
Definition: ttneutralgenes.h:134
const trait_t _type
Definition: ttneutralgenes.h:148
double _mut_rate
Definition: ttneutralgenes.h:137
unsigned int _2L
Definition: ttneutralgenes.h:139
virtual void init()
Definition: ttneutralgenes.h:172
virtual trait_t get_type() const
Definition: ttneutralgenes.h:180
unsigned int get_locus_num()
Definition: ttneutralgenes.h:159
virtual bool retrieve_data(BinaryStorageBuffer *reader)
Definition: ttneutralgenes.cc:510
double _recomb_rate
Definition: ttneutralgenes.h:141
unsigned int _locus_num
Definition: ttneutralgenes.h:135
virtual bool setParameters()
Definition: ttneutralgenes.cc:101
virtual void store_data(BinaryStorageBuffer *saver)
Definition: ttneutralgenes.h:191
unsigned int get_num_mutations()
Definition: ttneutralgenes.h:163
TProtoNeutralGenes()
Definition: ttneutralgenes.cc:51
unsigned int get_ploidy()
Definition: ttneutralgenes.h:158
unsigned int get_allele_num()
Definition: ttneutralgenes.h:160
virtual void reset()
Definition: ttneutralgenes.h:174
void inherit_low(sex_t SEX, unsigned char *seq, const unsigned char **parent)
Definition: ttneutralgenes.cc:391
void inherit_free(sex_t SEX, unsigned char *seq, const unsigned char **parent)
Definition: ttneutralgenes.cc:381
vector< TTNeutralGenesFH * > _writers
Definition: ttneutralgenes.h:145
void(TProtoNeutralGenes::* _inherit_func_ptr)(sex_t, unsigned char *, const unsigned char **)
Definition: ttneutralgenes.h:143
unsigned int _ploidy
Definition: ttneutralgenes.h:136
TTNeutralGenesSH * get_stater()
Definition: ttneutralgenes.h:166
unsigned int _init_model
Definition: ttneutralgenes.h:140
virtual TTNeutralGenes * hatch()
Definition: ttneutralgenes.cc:368
int _mut_model
Definition: ttneutralgenes.h:138
unsigned int get_genome_size()
Definition: ttneutralgenes.h:162
double get_mut_rate()
Definition: ttneutralgenes.h:161
virtual void loadStatServices(StatServices *loader)
Definition: ttneutralgenes.cc:354
virtual ~TProtoNeutralGenes()
Definition: ttneutralgenes.cc:89
virtual TProtoNeutralGenes * clone()
Definition: ttneutralgenes.h:178
unsigned int get_init_model()
Definition: ttneutralgenes.h:164
void(TTNeutralGenes::* _mutate_func_ptr)(void)
Definition: ttneutralgenes.h:142
TTNOhtaStats.
Definition: ttneutralgenes.h:247
TTNOhtaStats(TProtoNeutralGenes *T)
Definition: ttneutralgenes.h:252
virtual ~TTNOhtaStats()
Definition: ttneutralgenes.h:254
virtual void FHwrite()
Definition: ttneutralgenes.cc:1818
virtual void FHread(string &filename)
Definition: ttneutralgenes.h:256
TMatrix _pairwiseCombs
Definition: ttneutralgenes.h:249
A file handler to save the neutral markers genotypes in the FSTAT format (extended).
Definition: ttneutralgenes.h:208
void write_patch_GENEPOP(Patch *patch, sex_t SEX, age_idx AGE, ofstream &FH, unsigned int digits)
Definition: ttneutralgenes.cc:1214
void(TTNeutralGenesFH::* write_fct)()
Definition: ttneutralgenes.h:211
void write_patch_FSTAT(Patch *patch, sex_t SEX, age_idx AGE, ofstream &FH, unsigned int digits)
Definition: ttneutralgenes.cc:1128
virtual void FHwrite()
Definition: ttneutralgenes.cc:807
virtual ~TTNeutralGenesFH()
Definition: ttneutralgenes.h:219
void write_GENEPOP()
Definition: ttneutralgenes.cc:1158
void write_PLINK_BED(ofstream &BED)
void write_Fst_i()
Definition: ttneutralgenes.cc:1426
string _output_option
Definition: ttneutralgenes.h:210
void setOutputOption(string opt)
Definition: ttneutralgenes.cc:796
void write_FSTAT()
Definition: ttneutralgenes.cc:1077
void print_PLINK_PED(ofstream &FH, age_idx Ax, Patch *patch)
Definition: ttneutralgenes.cc:999
void write_patch_TAB(Patch *patch, sex_t SEX, age_idx AGE, ofstream &FH)
Definition: ttneutralgenes.cc:880
virtual void FHread(string &filename)
Definition: ttneutralgenes.cc:1244
void write_TAB()
Definition: ttneutralgenes.cc:826
void write_varcompWC()
Definition: ttneutralgenes.cc:1492
void write_PLINK()
Definition: ttneutralgenes.cc:922
void set_write_fct(void(TTNeutralGenesFH::*fct_ptr)())
Definition: ttneutralgenes.h:238
TTNeutralGenesFH(TProtoNeutralGenes *TP)
Definition: ttneutralgenes.h:215
The stat handler for neutral markers.
Definition: ttneutralgenes.h:267
void setAdultHeterozygosity()
Definition: ttneutralgenes.h:338
virtual ~TTNeutralGenesSH()
Definition: ttneutralgenes.h:309
double setHo(age_idx age_pos)
Definition: stats_fstat.cc:363
void setFstatWeirCockerham_MS(age_t AGE)
Definition: stats_fstat.cc:854
double getGlobalAlleleFreq(unsigned int loc, unsigned int all)
Definition: ttneutralgenes.h:341
void setFreqRecordersPerPatch(age_t AGE)
void setAdultsFstat2()
Definition: ttneutralgenes.h:417
double getSibCoaMeans(unsigned int i)
Definition: ttneutralgenes.h:483
TTNeutralGenesSH(TProtoNeutralGenes *TP)
Definition: ttneutralgenes.h:303
double setHt(age_idx age_pos)
Definition: stats_fstat.cc:455
double getHeterozygosity(unsigned int loc)
Definition: ttneutralgenes.h:345
double getHsnei()
Definition: ttneutralgenes.h:406
double getDxyPerPatch(age_idx age, unsigned int patch1, unsigned patch2)
Definition: stats_fstat.cc:1236
double getSibProportions(unsigned int i)
Definition: ttneutralgenes.h:482
deque< double > setHo2(age_idx age_pos)
Definition: stats_fstat.cc:545
void setAdultsCoaWithin()
Definition: ttneutralgenes.h:457
double _fst
Definition: ttneutralgenes.h:285
void setAlleleTables(age_t AGE)
Definition: stats_fstat.cc:74
void setOffsprgCoaWithin()
Definition: ttneutralgenes.h:458
double getFixLocGlobal()
Definition: ttneutralgenes.h:435
void setFstatWeirCockerham(age_t AGE)
Computes the Weir & Cockerham (1984) Fstat values (Theta, F, and f).
Definition: stats_fstat.cc:771
void setSibStats()
Definition: stats_coa.cc:279
void setFstMatrix(age_t AGE, unsigned char dim)
Computes the weighted within and between patch Fst's as well as the overall Fst (Theta).
Definition: stats_fstat.cc:665
void allocateTables(unsigned int loci, unsigned int all)
Definition: stats_fstat.cc:43
double getFit()
Definition: ttneutralgenes.h:413
double _hs
Definition: ttneutralgenes.h:284
DataTable< unsigned int > _alleleCountTable
Definition: ttneutralgenes.h:269
void setSibCoa(Individual *I1, Individual *I2)
Definition: stats_coa.cc:350
void setDxyRecorders(age_t AGE, bool patchwise)
Definition: ttneutralgenes.cc:2598
double _nb_all_local
Definition: ttneutralgenes.h:284
double * _fis_WC_loc
Definition: ttneutralgenes.h:291
double _ht
Definition: ttneutralgenes.h:284
double _mean_alpha
Definition: ttneutralgenes.h:276
TMatrix * _fst_matrix
Pairwise Fst matrix.
Definition: ttneutralgenes.h:295
void setAdultsFstat()
Definition: ttneutralgenes.h:402
double _fst_W1
Definition: ttneutralgenes.h:293
void setNeiGeneticDistance(age_t AGE)
Definition: stats_fstat.cc:1129
DataTable< double > _heteroTable
Definition: ttneutralgenes.h:271
void setCoaMatrixRecorders(age_t AGE, unsigned char dim)
Definition: ttneutralgenes.cc:2356
double getHt()
Definition: ttneutralgenes.h:410
void setAdultsFstatWeirCockerham()
Definition: ttneutralgenes.h:426
double _meanD
Definition: ttneutralgenes.h:299
void setFstatRecorders(age_t AGE)
Definition: ttneutralgenes.cc:2444
double _mean_theta
Definition: ttneutralgenes.h:276
double getCoa(unsigned int i)
Gets the given coancestry coefficient from the coancestry matrix.
Definition: ttneutralgenes.h:467
void setAdultAlleleFreq()
Definition: ttneutralgenes.h:335
void setOffspringFstatWeirCockerham()
Definition: ttneutralgenes.h:425
DataTable< double > * getAlleleFreqTable()
Accessor to the table of allele frequencies, per patch.
Definition: ttneutralgenes.h:360
double getNbAllGlobal()
Definition: ttneutralgenes.h:433
void setOffsprgCoaBetween()
Definition: ttneutralgenes.h:460
double _ho
F-statistics.
Definition: ttneutralgenes.h:284
double getWeightedFst()
Returns the weighted Fst using Weir & Hill (2002) method.
Definition: ttneutralgenes.h:387
void setAdultsFstBetween()
Definition: ttneutralgenes.h:381
double getMeanTheta()
Definition: ttneutralgenes.h:472
void setCoaMatrix(age_idx age_pos, unsigned char dim)
Computes the within and between patches coancestry coefficients.
Definition: stats_coa.cc:59
double Theta_MM
Definition: ttneutralgenes.h:275
unsigned int _table_set_gen
Definition: ttneutralgenes.h:273
double getMeanAlpha()
Definition: ttneutralgenes.h:473
double Theta_FM
Definition: ttneutralgenes.h:275
double getNeiGeneticDistance(unsigned int i)
Definition: ttneutralgenes.h:491
double getHs()
Definition: ttneutralgenes.h:409
double getHo()
Definition: ttneutralgenes.h:408
double getDxyAdultPerPatch(unsigned int patch1, unsigned patch2)
Definition: ttneutralgenes.h:502
double _fst_W2
Definition: ttneutralgenes.h:293
deque< double > setHt2(age_idx age_pos)
Definition: stats_fstat.cc:639
TMatrix * _D
Definition: ttneutralgenes.h:298
void setFreqRecorders(age_t AGE)
Definition: ttneutralgenes.cc:2412
double * _fst_WC_loc
Per-locus F-stats (Weir&Cockerham).
Definition: ttneutralgenes.h:291
double * _fit_WC_loc
Definition: ttneutralgenes.h:291
void setOffsprgNeiGeneticDistance()
Definition: ttneutralgenes.h:489
DataTable< unsigned int > * getAlleleCountTable()
Definition: ttneutralgenes.h:362
TMatrix _globalAlleleFreq
Definition: ttneutralgenes.h:272
void setOffsprgCoaMatrix()
Definition: ttneutralgenes.h:456
TMatrix * _coa_matrix
Definition: ttneutralgenes.h:277
void setOffsprgFstBetween()
Definition: ttneutralgenes.h:384
void setAdultsFstMatrix()
Definition: ttneutralgenes.h:379
double _fis_WC
Definition: ttneutralgenes.h:289
void setFstat(age_t AGE)
Computes the F-statistics following Nei & Chesser (1983).
Definition: stats_fstat.cc:254
void setAdltNeiGeneticDistance()
Definition: ttneutralgenes.h:488
double getDxy(unsigned int age_class)
Definition: stats_fstat.cc:1210
double getFis()
Definition: ttneutralgenes.h:412
double getNbAllLocal()
Definition: ttneutralgenes.h:432
double _sib_coa[4]
Definition: ttneutralgenes.h:281
double getTheta_FF()
Gives the mean within females coancestry coefficient.
Definition: ttneutralgenes.h:475
void setOffspringHeterozygosity()
Definition: ttneutralgenes.h:339
void setFst_li(unsigned int N, unsigned int L, double **array)
Computes the per-locus per-patch Fst values using Weir&Hill 2002 approach.
Definition: stats_fstat.cc:1057
void setHeteroTable(age_t AGE)
Definition: stats_fstat.cc:166
double getTheta_MM()
Gives the mean within males coancestry coefficient.
Definition: ttneutralgenes.h:477
virtual bool setStatRecorders(std::string &token)
Definition: ttneutralgenes.cc:2103
double getFixLocLocal()
Definition: ttneutralgenes.h:434
DataTable< double > * getHeteroTable()
Definition: ttneutralgenes.h:364
double getFitWC()
Definition: ttneutralgenes.h:429
double getHtnei()
Definition: ttneutralgenes.h:407
void setLociDivCounter(age_t AGE)
Sets the allelic diversity counters.
Definition: stats_fstat.cc:295
void setOffsprgFstat()
Definition: ttneutralgenes.h:401
deque< double > setHs2(age_idx age_pos)
Definition: stats_fstat.cc:589
double getTheta_FM()
Gives the mean between males and females coancestry coefficient.
Definition: ttneutralgenes.h:479
double _fis
Definition: ttneutralgenes.h:285
double _fix_loc_local
Definition: ttneutralgenes.h:285
void setOffsprgFstWithin()
Definition: ttneutralgenes.h:383
double _fit
Definition: ttneutralgenes.h:285
void setFstatWCRecorders(age_t AGE)
Definition: ttneutralgenes.cc:2500
double setHs(age_idx age_pos)
Definition: stats_fstat.cc:410
void setHeterozygosity(age_t AGE)
Definition: stats_fstat.cc:225
double getDxyOffspringPerPatch(unsigned int patch1, unsigned patch2)
Definition: ttneutralgenes.h:501
double Theta_FF
Definition: ttneutralgenes.h:275
unsigned int _table_set_age
Definition: ttneutralgenes.h:273
double getFst_ij(unsigned int i)
Accessor to the Fst matrix as set by setFstMatrix().
Definition: ttneutralgenes.h:389
double _sib_prop[4]
Kinship classes proportions.
Definition: ttneutralgenes.h:280
void setFstMatrixRecorders(age_t AGE, unsigned char dim)
Definition: ttneutralgenes.cc:2520
void setAdultsCoaBetween()
Definition: ttneutralgenes.h:459
void setAdultsFstWithin()
Definition: ttneutralgenes.h:380
void setOffsprgFstMatrix()
Definition: ttneutralgenes.h:382
double getFstWC()
Definition: ttneutralgenes.h:427
double Coancestry(void **ind1, void **ind2, unsigned int nb_locus)
Gives the coancestry (probability of identity by state) of two gene sequences.
Definition: stats_coa.cc:43
void setNeiGeneticDistanceRecorders(age_t AGE, bool pairwise)
Definition: ttneutralgenes.cc:2568
double getMeanNeiGeneticDistance()
Definition: ttneutralgenes.h:496
double _fit_WC
Definition: ttneutralgenes.h:289
double _hsnei
Definition: ttneutralgenes.h:284
virtual void init()
Definition: ttneutralgenes.cc:2094
TMatrix * getGlobalFreqs()
Accessor to the table of allele frequencies in the whole population.
Definition: ttneutralgenes.h:367
double getFisWC()
Definition: ttneutralgenes.h:428
void setOffsprgFstat2()
Definition: ttneutralgenes.h:416
double getFst()
Definition: ttneutralgenes.h:411
void setAdultsCoaMatrix()
Definition: ttneutralgenes.h:455
void setOffspringAlleleFreq()
Definition: ttneutralgenes.h:336
void setAdults_Theta()
Definition: stats_coa.cc:203
double _nb_all_global
Definition: ttneutralgenes.h:284
double _fst_WC
Weir & Cockerham (1984) F-stat estimates.
Definition: ttneutralgenes.h:289
void setFstat2Recorders(age_t AGE)
Definition: ttneutralgenes.cc:2478
double _fix_loc_global
Definition: ttneutralgenes.h:285
double _htnei
Definition: ttneutralgenes.h:284
unsigned int _table_set_repl
Definition: ttneutralgenes.h:273
DataTable< double > _alleleFreqTable
Definition: ttneutralgenes.h:270
void setFstat2(age_t AGE)
New version of Nei & Chesser.
Definition: stats_fstat.cc:482
double _fst_WH
Weir & Hill (2002) F-stat estimates.
Definition: ttneutralgenes.h:287
Microsatellites genome.
Definition: ttneutralgenes.h:56
void set_allele(unsigned int loc, unsigned int al, unsigned char val)
Definition: ttneutralgenes.h:87
virtual bool operator!=(const TTrait &T)
Definition: ttneutralgenes.cc:592
virtual double get_allele_value(int loc, int all) const
Definition: ttneutralgenes.cc:541
virtual TTNeutralGenes * clone()
Definition: ttneutralgenes.h:118
void set_proto(TProtoNeutralGenes *proto)
Definition: ttneutralgenes.h:81
virtual void inherit(const TTrait *mother, const TTrait *father)
Definition: ttneutralgenes.cc:723
virtual void * getValue() const
Definition: ttneutralgenes.h:114
virtual void reset()
Definition: ttneutralgenes.cc:666
void mutate_SSM()
Definition: ttneutralgenes.cc:735
TProtoNeutralGenes * _myProto
Definition: ttneutralgenes.h:58
void(TTNeutralGenes::* _mutate_func_ptr)(void)
Definition: ttneutralgenes.h:60
virtual TTNeutralGenes & operator=(const TTrait &T)
Definition: ttneutralgenes.cc:557
virtual bool operator==(const TTrait &T)
Definition: ttneutralgenes.cc:577
virtual void set_allele_value(unsigned int locus, unsigned int allele, double value)
Definition: ttneutralgenes.cc:548
virtual void init_sequence()
Definition: ttneutralgenes.cc:632
void mutate_2all()
Definition: ttneutralgenes.cc:777
virtual void set_value()
Definition: ttneutralgenes.h:113
void set_mut_func_ptr(void(TTNeutralGenes::*theFunc)(void))
Definition: ttneutralgenes.h:83
const trait_t _type
Definition: ttneutralgenes.h:66
virtual void set_sequence(void **seq)
Definition: ttneutralgenes.cc:680
virtual trait_t get_type() const
Definition: ttneutralgenes.h:112
unsigned char ** _sequence
Definition: ttneutralgenes.h:64
virtual void * set_trait(void *value)
Definition: ttneutralgenes.h:107
virtual ~TTNeutralGenes()
Definition: ttneutralgenes.cc:602
void mutate_NULL()
Definition: ttneutralgenes.h:97
virtual void mutate()
Definition: ttneutralgenes.h:116
virtual bool retrieve_data(BinaryStorageBuffer *reader)
Definition: ttneutralgenes.cc:713
TTNeutralGenes()
Definition: ttneutralgenes.h:70
virtual void show_up()
Definition: ttneutralgenes.cc:689
virtual void ** get_sequence() const
Definition: ttneutralgenes.h:108
void mutate_KAM()
Definition: ttneutralgenes.cc:758
virtual void init()
Definition: ttneutralgenes.cc:613
void set_inherit_func_ptr(void(TProtoNeutralGenes::*theFunc)(sex_t, unsigned char *, const unsigned char **))
Definition: ttneutralgenes.h:85
TTNeutralGenes(const TTNeutralGenes &T)
Definition: ttneutralgenes.h:73
virtual void store_data(BinaryStorageBuffer *saver)
Definition: ttneutralgenes.cc:704
void(TProtoNeutralGenes::* _inherit_func_ptr)(sex_t, unsigned char *, const unsigned char **)
Definition: ttneutralgenes.h:61
TTProtoWithMap.
Definition: ttrait_with_map.h:184
virtual void reset()
Definition: ttrait_with_map.cc:612
Interface for all trait types, declares all basic trait operations.
Definition: ttrait.h:46
Template class for the trait's FileHandler.
Definition: filehandler.h:217
Template class for the trait's StatHandler.
Definition: stathandler.h:168
std::string trait_t
Trait types.
Definition: types.h:63
#define NTRL
Definition: types.h:70
sex_t
Sex types, males are always 0 and females 1!!
Definition: types.h:36
unsigned int age_t
Age class flags.
Definition: types.h:46
#define ADULTS
Adults age class flag (breeders).
Definition: types.h:54
#define OFFSPRG
Offspring age class flag.
Definition: types.h:50
age_idx
Array index of the age classes in the patch sizes and containers arrays.
Definition: types.h:41
@ OFFSx
Definition: types.h:42
@ ADLTx
Definition: types.h:42

Generated for Nemo v2.4.0b by  doxygen 1.9.1 -- Nemo is hosted on  Download Nemo

Locations of visitors to this page
Catalogued on GSR