Nemo  2.4.0
Simulate forward-in-time genetic evolution in a spatially explicit, individual-based stochastic simulator
ttneutralgenes.h
Go to the documentation of this file.
1 
28 #ifndef TTNEUTRALGENES_H
29 #define TTNEUTRALGENES_H
30 
31 #include <cmath>
32 #include <vector>
33 #include "ttrait_with_map.h"
34 #include "types.h"
35 #include "lifecycleevent.h"
36 #include "filehandler.h"
37 #include "stathandler.h"
38 #include "datatable.h"
39 #include "metapop.h"
40 #include "binarystoragebuffer.h"
41 #include "Uniform.h"
42 
43 class TTNeutralGenesFH;
44 class TTNeutralGenesSH;
45 class TTNtrlPhenotyperFH;
46 class TTNOhtaStats;
47 class TProtoNeutralGenes;
49 // ----------------------------------------------------------------------------------------
50 
51 // N E U T R A L T R A I T (abstract base)
52 
53 // ----------------------------------------------------------------------------------------
55 class TTNeutralGenes : public TTrait
56 {
57 protected:
59  const trait_t _type;
60 
61 public:
62 
64  : _myProto(0), _type(NTRL) { }
65 
67  : _myProto(T._myProto), _type(NTRL) { }
68 
69  virtual ~TTNeutralGenes () {}
70 
73  void set_proto (TProtoNeutralGenes* proto) {_myProto = proto;}
75 
78  virtual TTNeutralGenes& operator= (const TTrait& T) = 0;
79  virtual bool operator== (const TTrait& T);
80  virtual bool operator!= (const TTrait& T);
81  virtual void init ( ) = 0;
82  virtual void init_sequence ( ) = 0;
83  virtual void reset ( ) = 0;
84  virtual void* set_trait (void* value) {return NULL;}
85  virtual void** get_sequence ( ) const = 0;
86  virtual unsigned int get_allele (int loc, int all) const = 0;
87  virtual double get_allele_value (int loc, int all) const = 0;
88  virtual void set_allele_value (unsigned int locus, unsigned int allele, double value) = 0;
89  virtual void set_sequence (void** seq) = 0;
90  virtual trait_t get_type ( ) const {return _type;}
91  virtual void set_value ( ) { }
92  virtual void* getValue ( ) const {return 0;}
93  virtual void inherit (const TTrait* mother, const TTrait* father) = 0;
94  virtual void mutate ( ) = 0;
95  virtual void show_up ( ) = 0;
96  virtual TTNeutralGenes* clone ( ) = 0;
97 
98  //implements StorableComponent
99  virtual void store_data (BinaryStorageBuffer* saver) = 0;
100  virtual bool retrieve_data (BinaryStorageBuffer* reader) = 0;
102 };
103 // ----------------------------------------------------------------------------------------
104 
105 // N E U T R A L T R A I T (byte encoding)
106 
107 // ----------------------------------------------------------------------------------------
110 {
111 private:
113  void (TProtoNeutralGenes::* _inherit_func_ptr) (sex_t, unsigned char*, const unsigned char**);
114 
115  unsigned char** _sequence; // ordered as [ploidy][locus]
116 
117 public:
118 
121 
124  _sequence(0) { }
125 
126  virtual ~TTNeutralGenes_byte ();
127 
130  void set_mut_func_ptr (void(TTNeutralGenes_byte::* theFunc)(void))
131  {_mutate_func_ptr = theFunc;}
132  void set_inherit_func_ptr (void(TProtoNeutralGenes::* theFunc)(sex_t, unsigned char*, const unsigned char**))
133  {_inherit_func_ptr = theFunc;}
134  void set_allele (unsigned int loc, unsigned int al, unsigned char val) {_sequence[al][loc] = val;}
136 
139  void mutate_SSM ( );
140  void mutate_KAM ( );
141  void mutate_2all ( );
142  void mutate_NULL ( ) { }
146  virtual TTNeutralGenes& operator= (const TTrait& T);
147  virtual void init ( );
148  virtual void init_sequence ( );
149  virtual void reset ( );
150  virtual void** get_sequence ( ) const {return (void**)_sequence;}
151  virtual unsigned int get_allele (int loc, int all) const;
152  virtual double get_allele_value (int loc, int all) const ;
153  virtual void set_allele_value (unsigned int locus, unsigned int allele, double value) ;
154  virtual void set_sequence (void** seq);
155  virtual void inherit (const TTrait* mother, const TTrait* father);
156  virtual void mutate ( ) {(this->*_mutate_func_ptr) ();}
157  virtual void show_up ( );
158  virtual TTNeutralGenes* clone ( ) {return new TTNeutralGenes_byte(*this);}
159 
160  //implements StorableComponent
161  virtual void store_data (BinaryStorageBuffer* saver);
162  virtual bool retrieve_data (BinaryStorageBuffer* reader);
164 };
165 // ----------------------------------------------------------------------------------------
166 
167 // N E U T R A L T R A I T P R O T O T Y P E
168 
169 // ----------------------------------------------------------------------------------------
172 
173 private:
174  unsigned int _allele_num;
175  unsigned int _locus_num;
176  unsigned int _ploidy;
177  double _mut_rate;
179  unsigned int _2L; //genome size (ploidy*num_locus)
180  unsigned int _init_model;
181  double _recomb_rate;
183  void (TProtoNeutralGenes::* _inherit_func_ptr) (sex_t, unsigned char*, const unsigned char**);
184 
185  vector< TTNeutralGenesFH* > _writers;
188  const trait_t _type;
189 
190 public:
191 
192  TProtoNeutralGenes ( );
193 
195 
196  virtual ~TProtoNeutralGenes ( );
197 
198  unsigned int get_ploidy ( ) {return _ploidy;}
199  unsigned int get_locus_num ( ) {return _locus_num;}
200  unsigned int get_allele_num ( ) {return _allele_num;}
201  double get_mut_rate ( ) {return _mut_rate;}
202  unsigned int get_genome_size ( ) {return _2L;}
203  unsigned int get_num_mutations ( ) {return RAND::Binomial( _mut_rate, _2L );}
204  unsigned int get_init_model ( ) {return _init_model;}
205 
207 
208  void inherit_low (sex_t SEX, unsigned char* seq, const unsigned char** parent);
209  void inherit_free (sex_t SEX, unsigned char* seq, const unsigned char** parent);
210 
213  virtual void init (){}
214 
215  virtual void reset (){TTProtoWithMap::reset();}
216 
217  virtual TTNeutralGenes* hatch ();
218 
219  virtual TProtoNeutralGenes* clone () {return new TProtoNeutralGenes(*this);}
220 
221  virtual trait_t get_type () const {return _type;}
222 
223  virtual int get_phenotype_dimension () {return 0;}
224 
225  virtual int get_allele_number () {return _allele_num;}
227  virtual int get_locus_number () {return _locus_num;}
228 
232  virtual bool setParameters();
233 
234  virtual void loadFileServices ( FileServices* loader );
235 
236  virtual void loadStatServices ( StatServices* loader );
237 
238  virtual bool resetParameterFromSource (std::string param, SimComponent* cmpt); // {return false;}
239 
243  virtual void store_data ( BinaryStorageBuffer* saver ) {saver->store(&_locus_num,sizeof(int));}
244 
245  virtual bool retrieve_data ( BinaryStorageBuffer* reader );
247 };
248 
249 // ----------------------------------------------------------------------------------------
250 
251 // N E U T R A L T R A I T F I L E H A N D L E R
252 
253 // ----------------------------------------------------------------------------------------
254 
261 class TTNeutralGenesFH: public TraitFileHandler<TProtoNeutralGenes> {
262 
265 
266 public:
267 
269  : TraitFileHandler<TProtoNeutralGenes> (TP, ".txt"), write_fct(0)
270  { }
271 
272  virtual ~TTNeutralGenesFH ( ) { }
273 
274  virtual void FHwrite ();
275 
276  virtual void FHread (string& filename);
277 
278  void write_TAB();
279  void write_patch_TAB(Patch* patch, sex_t SEX, age_idx AGE, ofstream &FH);
280  void write_PLINK ();
281  void print_PLINK_PED(ofstream& FH, age_idx Ax, Patch *patch);
282  void write_PLINK_BED (ofstream &BED);
283  void write_GENEPOP();
284  void write_patch_GENEPOP(Patch* patch, sex_t SEX, age_idx AGE, ofstream &FH, unsigned int digits);
285  void write_FSTAT();
286  void write_patch_FSTAT(Patch* patch, sex_t SEX, age_idx AGE, ofstream &FH, unsigned int digits);
287  void write_Fst_i();
288  void write_varcompWC();
289 
290  void setOutputOption(string opt);
291  void set_write_fct( void (TTNeutralGenesFH::* fct_ptr) () ) {write_fct = fct_ptr;}
292 
293 };
294 
295 // ------------------------------------------------------------------------------
299 // ------------------------------------------------------------------------------
300 class TTNOhtaStats : public TraitFileHandler<TProtoNeutralGenes> {
301 
303 
304 public:
306 
307  virtual ~TTNOhtaStats () {}
308  virtual void FHwrite ();
309  virtual void FHread (string& filename) {}
310 };
311 
312 
313 // ----------------------------------------------------------------------------------------
314 
315 // N E U T R A L T R A I T S T A T H A N D L E R
316 
317 // ----------------------------------------------------------------------------------------
318 
320 class TTNeutralGenesSH: public TraitStatHandler<TProtoNeutralGenes, TTNeutralGenesSH> {
321 
328 
332 
334  double _sib_prop[4];
335  double _sib_coa[4];
336 
341  double _fst_WH;
346 
347  double _fst_W1, _fst_W2;
350 
351  //Nei's genetic distance:
353  double _meanD;
354 
355 public:
356 
360  _fit_WC_loc(0), _fst_matrix(0), _D(0)
361  { }
362 
363  virtual ~TTNeutralGenesSH ( )
364  {
365  if(_coa_matrix != NULL) delete _coa_matrix;
366  if(_fst_matrix != NULL) delete _fst_matrix;
367  if(_fst_WC_loc) delete[]_fst_WC_loc;
368  if(_fis_WC_loc) delete[]_fis_WC_loc;
369  if(_fit_WC_loc) delete[]_fit_WC_loc;
370  if(_D != NULL) delete _D;
371  }
372 
373  virtual void init ( ) ;
374 
375  virtual bool setStatRecorders (std::string& token);
376 
377  void setFreqRecorders (age_t AGE);
379  void setFstatRecorders (age_t AGE);
380 // void setFstat2Recorders (age_t AGE);
381  void setFstatWCRecorders (age_t AGE);
382  void setCoaMatrixRecorders (age_t AGE, unsigned char dim);
383  void setFstMatrixRecorders (age_t AGE, unsigned char dim);
384  void setNeiGeneticDistanceRecorders (age_t AGE, bool pairwise);
385  void setDxyRecorders (age_t AGE, bool patchwise);
386 
391  void setHeterozygosity (age_t AGE);
394 
395  double getGlobalAlleleFreq (unsigned int loc, unsigned int all) {
396  return _globalAlleleFreq.get(loc, all);
397  }
398 
399  double getHeterozygosity (unsigned int loc) {
400  double het = 0;
401  for(unsigned int i = 0; i < _heteroTable.getNumGroups(); ++i )
402  het += _heteroTable.get(i, loc, 0);
403  return het/_heteroTable.getNumGroups(); //mean per patch heterozygosity
404  }
405 
409  void setAlleleTables (age_t AGE);
410  void setHeteroTable (age_t AGE);
411  void allocateTables (unsigned int loci, unsigned int all);
412 
415 
417 
419 
422 
432  void setFstMatrix (age_t AGE, unsigned char dim);
441  double getWeightedFst () {return _fst_WH;}
443  double getFst_ij (unsigned int i)
444  {
445  unsigned int scale = (unsigned int)pow( 10.0, (int)log10((float)_fst_matrix->getNbCols()) + 1 );
446  return _fst_matrix->get(i/scale, i%scale);
447  }
449  void setFst_li(unsigned int N, unsigned int L, double **array);
450 // /**Computes raw Fst following the original definition (=var(p)/p_bar(1 - p_bar)).*/
451 // double getFstWright(unsigned int i) {if(i == 1) return _fst_W1; else return _fst_W2;}
452 
454  void setFstat (age_t AGE);
458  void setFstat_bitstring (age_t AGE);
461  double setHo (age_idx age_pos);
462  double setHs (age_idx age_pos);
463  double setHt (age_idx age_pos);
464  double getHsnei () {return _hsnei;}
465  double getHtnei () {return _htnei;}
466  double getHo () {return _ho;}
467  double getHs () {return _hs;}
468  double getHt () {return _ht;}
469  double getFst () {return _fst;}
470  double getFis () {return _fis;}
471  double getFit () {return _fit;}
473 // void setFstat2 (age_t AGE);
474 // void setOffsprgFstat2 () {setFstat2(OFFSPRG);}
475 // void setAdultsFstat2 () {setFstat2(ADULTS);}
476  deque<double> setHo2 (age_idx age_pos);
477  deque<double> setHs2 (age_idx age_pos);
478  deque<double> setHt2 (age_idx age_pos);
479 
481  void setFstatWeirCockerham (age_t AGE);
484  void setFstatWeirCockerham_MS (age_t AGE);
487  double getFstWC () {return _fst_WC;}
488  double getFisWC () {return _fis_WC;}
489  double getFitWC () {return _fit_WC;}
491  void setLociDivCounter (age_t AGE);
492  double getNbAllLocal () {return _nb_all_local;}
493  double getNbAllGlobal () {return _nb_all_global;}
494  double getFixLocLocal () {return _fix_loc_local;}
495  double getFixLocGlobal () {return _fix_loc_global;}
499 
506  double Coancestry (const TTrait* ind1, const TTrait* ind2, unsigned int nb_locus);
514  void setCoaMatrix (age_idx age_pos, unsigned char dim);
521  void setAdults_Theta ();
522 
527  double getCoa (unsigned int i)
528  {
529  unsigned int scale = (unsigned int)pow( 10.0, (int)log10((float)_coa_matrix->getNbCols()) + 1 );
530  return _coa_matrix->get(i/scale, i%scale);
531  }
532  double getMeanTheta () {return _mean_theta;}
533  double getMeanAlpha () {return _mean_alpha;}
535  double getTheta_FF () {return Theta_FF;}
537  double getTheta_MM () {return Theta_MM;}
539  double getTheta_FM () {return Theta_FM;}
540  void setSibStats ();
541  void setSibCoa (Individual *I1, Individual *I2);
542  double getSibProportions (unsigned int i) {return _sib_prop[i];}
543  double getSibCoaMeans (unsigned int i) {return _sib_coa[i];}
545 
550  void setNeiGeneticDistance (age_t AGE);
551  double getNeiGeneticDistance (unsigned int i)
552  {
553  unsigned int scale = (unsigned int)pow( 10.0, (int)log10((float)_D->getNbCols()) + 1 );
554  return _D->get(i/scale,i%scale);
555  }
556  double getMeanNeiGeneticDistance ( ) {return _meanD;}
558 
561  double getDxyOffspringPerPatch (unsigned int patch1, unsigned patch2) {return getDxyPerPatch(OFFSx, patch1, patch2);}
562  double getDxyAdultPerPatch (unsigned int patch1, unsigned patch2) {return getDxyPerPatch(ADLTx, patch1, patch2);}
563  double getDxyPerPatch (age_idx age, unsigned int patch1, unsigned patch2);
564  double getDxy (unsigned int age_class);
566 };
567 
568 // ----------------------------------------------------------------------------------------
569 
570 // 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
571 
572 // ----------------------------------------------------------------------------------------
573 
574 //LCE_NtrlInit
575 //
577 class LCE_NtrlInit : public virtual LifeCycleEvent
578 {
579 
581  unsigned int _nLoci;
582 
583 public:
584 
585  LCE_NtrlInit ( );
586 
587  virtual ~LCE_NtrlInit ( ) { }
588 
589  virtual void execute ();
590 
591  void init_allele_freq(sex_t SEX, age_idx AGE, unsigned int size, unsigned int deme, double *values);
592 
593  virtual LifeCycleEvent* clone ( ) {return new LCE_NtrlInit();}
594 
595  virtual bool setParameters ();
596 
597  //SimComponent implementation:
598  virtual void loadFileServices ( FileServices* loader ) {}
599  virtual void loadStatServices ( StatServices* loader ) {}
600  virtual bool resetParameterFromSource (std::string param, SimComponent* cmpt) {return false;}
601  virtual age_t removeAgeClass ( ) {return 0;}
602  virtual age_t addAgeClass ( ) {return 0;}
603  virtual age_t requiredAgeClass () {return 0;}
604 
605 };
606 
607 #endif //TTNEUTRALGENES_H
608 
Nemo2.
A class to store any kind of data in a char buffer before unloading it in a binary data file.
Definition: binarystoragebuffer.h:43
void store(void *stream, unsigned int nb_bytes)
Definition: binarystoragebuffer.cc:37
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:227
unsigned int getNumGroups()
Definition: datatable.h:257
A class to manage the files associated with each components of the simulation.
Definition: fileservices.h:51
This class contains traits along with other individual information (sex, pedigree,...
Definition: individual.h:48
Set patch-specifiec initial genotypes values.
Definition: ttneutralgenes.h:578
virtual age_t requiredAgeClass()
Definition: ttneutralgenes.h:603
virtual age_t removeAgeClass()
Definition: ttneutralgenes.h:601
TMatrix _init_freq
Definition: ttneutralgenes.h:580
virtual ~LCE_NtrlInit()
Definition: ttneutralgenes.h:587
unsigned int _nLoci
Definition: ttneutralgenes.h:581
virtual void execute()
Definition: ttneutralgenes.cc:2643
virtual age_t addAgeClass()
Definition: ttneutralgenes.h:602
virtual LifeCycleEvent * clone()
Definition: ttneutralgenes.h:593
void init_allele_freq(sex_t SEX, age_idx AGE, unsigned int size, unsigned int deme, double *values)
Definition: ttneutralgenes.cc:2667
virtual void loadFileServices(FileServices *loader)
Definition: ttneutralgenes.h:598
virtual bool setParameters()
Definition: ttneutralgenes.cc:2619
LCE_NtrlInit()
Definition: ttneutralgenes.cc:2612
virtual bool resetParameterFromSource(std::string param, SimComponent *cmpt)
Definition: ttneutralgenes.h:600
virtual void loadStatServices(StatServices *loader)
Definition: ttneutralgenes.h:599
Base class of the Life Cycle Events, declares the LCE interface.
Definition: lifecycleevent.h:72
Second class in the metapopulation design structure, between the Metapop and Individual classes.
Definition: metapop.h:431
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:44
The Service class used to manage the StatHandler objects.
Definition: statservices.h:49
A class to handle matrix in params, coerces matrix into a vector of same total size.
Definition: tmatrix.h:49
unsigned int getNbCols() const
Gives the number of columns.
Definition: tmatrix.h:214
double get(unsigned int i, unsigned int j) const
Accessor to element at row i and column j.
Definition: tmatrix.h:192
Prototype class for the TTNeutralGenes trait class.
Definition: ttneutralgenes.h:171
TTNOhtaStats * _ohtaStats
Definition: ttneutralgenes.h:186
virtual bool resetParameterFromSource(std::string param, SimComponent *cmpt)
Definition: ttneutralgenes.cc:477
TTNeutralGenesSH * _stats
Definition: ttneutralgenes.h:187
virtual void loadFileServices(FileServices *loader)
Definition: ttneutralgenes.cc:161
unsigned int _allele_num
Definition: ttneutralgenes.h:174
const trait_t _type
Definition: ttneutralgenes.h:188
double _mut_rate
Definition: ttneutralgenes.h:177
unsigned int _2L
Definition: ttneutralgenes.h:179
virtual void init()
Definition: ttneutralgenes.h:213
virtual trait_t get_type() const
Definition: ttneutralgenes.h:221
unsigned int get_locus_num()
Definition: ttneutralgenes.h:199
virtual bool retrieve_data(BinaryStorageBuffer *reader)
Definition: ttneutralgenes.cc:466
double _recomb_rate
Definition: ttneutralgenes.h:181
unsigned int _locus_num
Definition: ttneutralgenes.h:175
virtual bool setParameters()
Definition: ttneutralgenes.cc:101
virtual void store_data(BinaryStorageBuffer *saver)
Definition: ttneutralgenes.h:243
unsigned int get_num_mutations()
Definition: ttneutralgenes.h:203
TProtoNeutralGenes()
Definition: ttneutralgenes.cc:51
unsigned int get_ploidy()
Definition: ttneutralgenes.h:198
unsigned int get_allele_num()
Definition: ttneutralgenes.h:200
virtual void reset()
Definition: ttneutralgenes.h:215
void inherit_low(sex_t SEX, unsigned char *seq, const unsigned char **parent)
Definition: ttneutralgenes.cc:404
void inherit_free(sex_t SEX, unsigned char *seq, const unsigned char **parent)
Definition: ttneutralgenes.cc:396
virtual int get_allele_number()
Definition: ttneutralgenes.h:225
vector< TTNeutralGenesFH * > _writers
Definition: ttneutralgenes.h:185
void(TProtoNeutralGenes::* _inherit_func_ptr)(sex_t, unsigned char *, const unsigned char **)
Definition: ttneutralgenes.h:183
unsigned int _ploidy
Definition: ttneutralgenes.h:176
TTNeutralGenesSH * get_stater()
Definition: ttneutralgenes.h:206
unsigned int _init_model
Definition: ttneutralgenes.h:180
virtual TTNeutralGenes * hatch()
Definition: ttneutralgenes.cc:376
int _mut_model
Definition: ttneutralgenes.h:178
unsigned int get_genome_size()
Definition: ttneutralgenes.h:202
double get_mut_rate()
Definition: ttneutralgenes.h:201
virtual void loadStatServices(StatServices *loader)
Definition: ttneutralgenes.cc:362
virtual ~TProtoNeutralGenes()
Definition: ttneutralgenes.cc:89
void(TTNeutralGenes_byte::* _mutate_func_ptr)(void)
Definition: ttneutralgenes.h:182
virtual TProtoNeutralGenes * clone()
Definition: ttneutralgenes.h:219
virtual int get_locus_number()
Returns the number of locus.
Definition: ttneutralgenes.h:227
unsigned int get_init_model()
Definition: ttneutralgenes.h:204
virtual int get_phenotype_dimension()
Definition: ttneutralgenes.h:223
TTNOhtaStats.
Definition: ttneutralgenes.h:300
TTNOhtaStats(TProtoNeutralGenes *T)
Definition: ttneutralgenes.h:305
virtual ~TTNOhtaStats()
Definition: ttneutralgenes.h:307
virtual void FHwrite()
Definition: ttneutralgenes.cc:1786
virtual void FHread(string &filename)
Definition: ttneutralgenes.h:309
TMatrix _pairwiseCombs
Definition: ttneutralgenes.h:302
A file handler to save the neutral markers genotypes in the FSTAT format (extended).
Definition: ttneutralgenes.h:261
void write_patch_GENEPOP(Patch *patch, sex_t SEX, age_idx AGE, ofstream &FH, unsigned int digits)
Definition: ttneutralgenes.cc:1179
void(TTNeutralGenesFH::* write_fct)()
Definition: ttneutralgenes.h:264
void write_patch_FSTAT(Patch *patch, sex_t SEX, age_idx AGE, ofstream &FH, unsigned int digits)
Definition: ttneutralgenes.cc:1093
virtual void FHwrite()
Definition: ttneutralgenes.cc:770
virtual ~TTNeutralGenesFH()
Definition: ttneutralgenes.h:272
void write_GENEPOP()
Definition: ttneutralgenes.cc:1123
void write_PLINK_BED(ofstream &BED)
void write_Fst_i()
Definition: ttneutralgenes.cc:1396
string _output_option
Definition: ttneutralgenes.h:263
void setOutputOption(string opt)
Definition: ttneutralgenes.cc:759
void write_FSTAT()
Definition: ttneutralgenes.cc:1042
void print_PLINK_PED(ofstream &FH, age_idx Ax, Patch *patch)
Definition: ttneutralgenes.cc:965
void write_patch_TAB(Patch *patch, sex_t SEX, age_idx AGE, ofstream &FH)
Definition: ttneutralgenes.cc:843
virtual void FHread(string &filename)
Definition: ttneutralgenes.cc:1209
void write_TAB()
Definition: ttneutralgenes.cc:789
void write_varcompWC()
Definition: ttneutralgenes.cc:1462
void write_PLINK()
Definition: ttneutralgenes.cc:885
void set_write_fct(void(TTNeutralGenesFH::*fct_ptr)())
Definition: ttneutralgenes.h:291
TTNeutralGenesFH(TProtoNeutralGenes *TP)
Definition: ttneutralgenes.h:268
The stat handler for neutral markers.
Definition: ttneutralgenes.h:320
void setAdultHeterozygosity()
Definition: ttneutralgenes.h:392
virtual ~TTNeutralGenesSH()
Definition: ttneutralgenes.h:363
double setHo(age_idx age_pos)
Definition: stats_fstat.cc:534
void setFstatWeirCockerham_MS(age_t AGE)
Definition: stats_fstat.cc:1183
double getGlobalAlleleFreq(unsigned int loc, unsigned int all)
Definition: ttneutralgenes.h:395
void setFreqRecordersPerPatch(age_t AGE)
double getSibCoaMeans(unsigned int i)
Definition: ttneutralgenes.h:543
TTNeutralGenesSH(TProtoNeutralGenes *TP)
Definition: ttneutralgenes.h:357
double setHt(age_idx age_pos)
Definition: stats_fstat.cc:639
double getHeterozygosity(unsigned int loc)
Definition: ttneutralgenes.h:399
double getHsnei()
Definition: ttneutralgenes.h:464
double getDxyPerPatch(age_idx age, unsigned int patch1, unsigned patch2)
Definition: stats_fstat.cc:1565
double getSibProportions(unsigned int i)
Definition: ttneutralgenes.h:542
deque< double > setHo2(age_idx age_pos)
New version of Nei & Chesser.
Definition: stats_fstat.cc:729
void setAdultsCoaWithin()
Definition: ttneutralgenes.h:517
double _fst
Definition: ttneutralgenes.h:339
void setAlleleTables(age_t AGE)
Definition: stats_fstat.cc:75
void setOffsprgCoaWithin()
Definition: ttneutralgenes.h:518
double getFixLocGlobal()
Definition: ttneutralgenes.h:495
void setFstatWeirCockerham(age_t AGE)
Computes the Weir & Cockerham (1984) Fstat values (Theta, F, and f).
Definition: stats_fstat.cc:975
void setSibStats()
Definition: stats_coa.cc:277
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:869
void allocateTables(unsigned int loci, unsigned int all)
Definition: stats_fstat.cc:44
double getFit()
Definition: ttneutralgenes.h:471
double _hs
Definition: ttneutralgenes.h:338
DataTable< unsigned int > _alleleCountTable
Definition: ttneutralgenes.h:322
void setSibCoa(Individual *I1, Individual *I2)
Definition: stats_coa.cc:348
void setDxyRecorders(age_t AGE, bool patchwise)
Definition: ttneutralgenes.cc:2575
double _nb_all_local
Definition: ttneutralgenes.h:338
double * _fis_WC_loc
Definition: ttneutralgenes.h:345
double _ht
Definition: ttneutralgenes.h:338
double _mean_alpha
Definition: ttneutralgenes.h:330
TMatrix * _fst_matrix
Pairwise Fst matrix.
Definition: ttneutralgenes.h:349
void setAdultsFstat()
Definition: ttneutralgenes.h:460
double _fst_W1
Definition: ttneutralgenes.h:347
void setNeiGeneticDistance(age_t AGE)
Definition: stats_fstat.cc:1458
DataTable< double > _heteroTable
Definition: ttneutralgenes.h:324
void setCoaMatrixRecorders(age_t AGE, unsigned char dim)
void setFstatWeirCockerham_bitstring(age_t AGE)
Streaming W&C Fstat for diallelic bitstring traits.
Definition: stats_fstat.cc:1062
double getHt()
Definition: ttneutralgenes.h:468
void setAdultsFstatWeirCockerham()
Definition: ttneutralgenes.h:486
double _meanD
Definition: ttneutralgenes.h:353
void setFstatRecorders(age_t AGE)
Definition: ttneutralgenes.cc:2421
double _mean_theta
Definition: ttneutralgenes.h:330
double getCoa(unsigned int i)
Gets the given coancestry coefficient from the coancestry matrix.
Definition: ttneutralgenes.h:527
void setAdultAlleleFreq()
Definition: ttneutralgenes.h:389
void setOffspringFstatWeirCockerham()
Definition: ttneutralgenes.h:485
DataTable< double > * getAlleleFreqTable()
Accessor to the table of allele frequencies, per patch.
Definition: ttneutralgenes.h:414
double getNbAllGlobal()
Definition: ttneutralgenes.h:493
void setOffsprgCoaBetween()
Definition: ttneutralgenes.h:520
double _ho
F-statistics.
Definition: ttneutralgenes.h:338
double getWeightedFst()
Returns the weighted Fst using Weir & Hill (2002) method.
Definition: ttneutralgenes.h:441
void setAdultsFstBetween()
Definition: ttneutralgenes.h:435
double getMeanTheta()
Definition: ttneutralgenes.h:532
void setCoaMatrix(age_idx age_pos, unsigned char dim)
Computes the within and between patches coancestry coefficients.
Definition: stats_coa.cc:57
double Theta_MM
Definition: ttneutralgenes.h:329
unsigned int _table_set_gen
Definition: ttneutralgenes.h:326
double getMeanAlpha()
Definition: ttneutralgenes.h:533
double Theta_FM
Definition: ttneutralgenes.h:329
double getNeiGeneticDistance(unsigned int i)
Definition: ttneutralgenes.h:551
double getHs()
Definition: ttneutralgenes.h:467
double getHo()
Definition: ttneutralgenes.h:466
double getDxyAdultPerPatch(unsigned int patch1, unsigned patch2)
Definition: ttneutralgenes.h:562
double _fst_W2
Definition: ttneutralgenes.h:347
deque< double > setHt2(age_idx age_pos)
Definition: stats_fstat.cc:843
TMatrix * _D
Definition: ttneutralgenes.h:352
void setFreqRecorders(age_t AGE)
Definition: ttneutralgenes.cc:2389
double * _fst_WC_loc
Per-locus F-stats (Weir&Cockerham).
Definition: ttneutralgenes.h:345
double * _fit_WC_loc
Definition: ttneutralgenes.h:345
void setOffsprgNeiGeneticDistance()
Definition: ttneutralgenes.h:549
DataTable< unsigned int > * getAlleleCountTable()
Definition: ttneutralgenes.h:416
TMatrix _globalAlleleFreq
Definition: ttneutralgenes.h:325
void setOffsprgCoaMatrix()
Definition: ttneutralgenes.h:516
TMatrix * _coa_matrix
Definition: ttneutralgenes.h:331
void setOffsprgFstBetween()
Definition: ttneutralgenes.h:438
void setAdultsFstMatrix()
Definition: ttneutralgenes.h:433
double _fis_WC
Definition: ttneutralgenes.h:343
void setFstat(age_t AGE)
Computes the F-statistics following Nei & Chesser (1983).
Definition: stats_fstat.cc:281
void setAdltNeiGeneticDistance()
Definition: ttneutralgenes.h:548
double getDxy(unsigned int age_class)
Definition: stats_fstat.cc:1539
double getFis()
Definition: ttneutralgenes.h:470
double getNbAllLocal()
Definition: ttneutralgenes.h:492
double _sib_coa[4]
Definition: ttneutralgenes.h:335
double getTheta_FF()
Gives the mean within females coancestry coefficient.
Definition: ttneutralgenes.h:535
void setOffspringHeterozygosity()
Definition: ttneutralgenes.h:393
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:1386
void setHeteroTable(age_t AGE)
Definition: stats_fstat.cc:199
double getTheta_MM()
Gives the mean within males coancestry coefficient.
Definition: ttneutralgenes.h:537
virtual bool setStatRecorders(std::string &token)
Definition: ttneutralgenes.cc:2079
double getFixLocLocal()
Definition: ttneutralgenes.h:494
double Coancestry(const TTrait *ind1, const TTrait *ind2, unsigned int nb_locus)
Gives the coancestry (probability of identity by state) of two gene sequences.
Definition: stats_coa.cc:42
DataTable< double > * getHeteroTable()
Definition: ttneutralgenes.h:418
double getFitWC()
Definition: ttneutralgenes.h:489
double getHtnei()
Definition: ttneutralgenes.h:465
void setLociDivCounter(age_t AGE)
Sets the allelic diversity counters.
Definition: stats_fstat.cc:466
void setOffsprgFstat()
Definition: ttneutralgenes.h:459
deque< double > setHs2(age_idx age_pos)
Definition: stats_fstat.cc:793
double getTheta_FM()
Gives the mean between males and females coancestry coefficient.
Definition: ttneutralgenes.h:539
bool _is_diallelic_bitstring
Definition: ttneutralgenes.h:327
double _fis
Definition: ttneutralgenes.h:339
double _fix_loc_local
Definition: ttneutralgenes.h:339
void setOffsprgFstWithin()
Definition: ttneutralgenes.h:437
void setFstat_bitstring(age_t AGE)
Streaming F-stat computation for diallelic bitstring traits.
Definition: stats_fstat.cc:327
double _fit
Definition: ttneutralgenes.h:339
void setFstatWCRecorders(age_t AGE)
Definition: ttneutralgenes.cc:2477
double setHs(age_idx age_pos)
Definition: stats_fstat.cc:594
void setHeterozygosity(age_t AGE)
Definition: stats_fstat.cc:252
double getDxyOffspringPerPatch(unsigned int patch1, unsigned patch2)
Definition: ttneutralgenes.h:561
double Theta_FF
Definition: ttneutralgenes.h:329
unsigned int _table_set_age
Definition: ttneutralgenes.h:326
double getFst_ij(unsigned int i)
Accessor to the Fst matrix as set by setFstMatrix().
Definition: ttneutralgenes.h:443
double _sib_prop[4]
Kinship classes proportions.
Definition: ttneutralgenes.h:334
void setFstMatrixRecorders(age_t AGE, unsigned char dim)
Definition: ttneutralgenes.cc:2497
void setAdultsCoaBetween()
Definition: ttneutralgenes.h:519
void setAdultsFstWithin()
Definition: ttneutralgenes.h:434
void setOffsprgFstMatrix()
Definition: ttneutralgenes.h:436
double getFstWC()
Definition: ttneutralgenes.h:487
void setNeiGeneticDistanceRecorders(age_t AGE, bool pairwise)
Definition: ttneutralgenes.cc:2545
double getMeanNeiGeneticDistance()
Definition: ttneutralgenes.h:556
double _fit_WC
Definition: ttneutralgenes.h:343
double _hsnei
Definition: ttneutralgenes.h:338
virtual void init()
Definition: ttneutralgenes.cc:2064
TMatrix * getGlobalFreqs()
Accessor to the table of allele frequencies in the whole population.
Definition: ttneutralgenes.h:421
double getFisWC()
Definition: ttneutralgenes.h:488
double getFst()
Definition: ttneutralgenes.h:469
void setAdultsCoaMatrix()
Definition: ttneutralgenes.h:515
void setOffspringAlleleFreq()
Definition: ttneutralgenes.h:390
void setAdults_Theta()
Definition: stats_coa.cc:201
double _nb_all_global
Definition: ttneutralgenes.h:338
double _fst_WC
Weir & Cockerham (1984) F-stat estimates.
Definition: ttneutralgenes.h:343
double _fix_loc_global
Definition: ttneutralgenes.h:339
double _htnei
Definition: ttneutralgenes.h:338
unsigned int _table_set_repl
Definition: ttneutralgenes.h:326
DataTable< double > _alleleFreqTable
Definition: ttneutralgenes.h:323
double _fst_WH
Weir & Hill (2002) F-stat estimates.
Definition: ttneutralgenes.h:341
Byte-encoded neutral gene trait (unsigned char per allele).
Definition: ttneutralgenes.h:110
virtual double get_allele_value(int loc, int all) const
Definition: ttneutralgenes.cc:504
virtual void set_allele_value(unsigned int locus, unsigned int allele, double value)
Definition: ttneutralgenes.cc:511
unsigned char ** _sequence
Definition: ttneutralgenes.h:115
virtual ~TTNeutralGenes_byte()
Definition: ttneutralgenes.cc:565
void mutate_KAM()
Definition: ttneutralgenes.cc:721
void set_inherit_func_ptr(void(TProtoNeutralGenes::*theFunc)(sex_t, unsigned char *, const unsigned char **))
Definition: ttneutralgenes.h:132
virtual TTNeutralGenes & operator=(const TTrait &T)
Definition: ttneutralgenes.cc:520
void set_allele(unsigned int loc, unsigned int al, unsigned char val)
Definition: ttneutralgenes.h:134
virtual void ** get_sequence() const
Definition: ttneutralgenes.h:150
void set_mut_func_ptr(void(TTNeutralGenes_byte::*theFunc)(void))
Definition: ttneutralgenes.h:130
TTNeutralGenes_byte()
Definition: ttneutralgenes.h:119
void mutate_SSM()
Definition: ttneutralgenes.cc:698
virtual TTNeutralGenes * clone()
Definition: ttneutralgenes.h:158
virtual unsigned int get_allele(int loc, int all) const
Definition: ttneutralgenes.cc:497
virtual void show_up()
Definition: ttneutralgenes.cc:652
virtual void init()
Definition: ttneutralgenes.cc:576
void(TTNeutralGenes_byte::* _mutate_func_ptr)(void)
Definition: ttneutralgenes.h:112
void(TProtoNeutralGenes::* _inherit_func_ptr)(sex_t, unsigned char *, const unsigned char **)
Definition: ttneutralgenes.h:113
virtual void set_sequence(void **seq)
Definition: ttneutralgenes.cc:643
void mutate_2all()
Definition: ttneutralgenes.cc:740
void mutate_NULL()
Definition: ttneutralgenes.h:142
virtual void reset()
Definition: ttneutralgenes.cc:629
virtual void init_sequence()
Definition: ttneutralgenes.cc:595
virtual void mutate()
Definition: ttneutralgenes.h:156
virtual void inherit(const TTrait *mother, const TTrait *father)
Definition: ttneutralgenes.cc:686
TTNeutralGenes_byte(const TTNeutralGenes_byte &T)
Definition: ttneutralgenes.h:122
virtual bool retrieve_data(BinaryStorageBuffer *reader)
Definition: ttneutralgenes.cc:676
virtual void store_data(BinaryStorageBuffer *saver)
Definition: ttneutralgenes.cc:667
Abstract base class for neutral gene traits.
Definition: ttneutralgenes.h:56
virtual bool operator!=(const TTrait &T)
Definition: ttneutralgenes.cc:555
void set_proto(TProtoNeutralGenes *proto)
Definition: ttneutralgenes.h:73
virtual void * getValue() const
Definition: ttneutralgenes.h:92
virtual bool retrieve_data(BinaryStorageBuffer *reader)=0
virtual void init()=0
virtual double get_allele_value(int loc, int all) const =0
virtual void store_data(BinaryStorageBuffer *saver)=0
virtual unsigned int get_allele(int loc, int all) const =0
virtual void mutate()=0
virtual ~TTNeutralGenes()
Definition: ttneutralgenes.h:69
virtual void set_sequence(void **seq)=0
TProtoNeutralGenes * _myProto
Definition: ttneutralgenes.h:58
virtual TTNeutralGenes & operator=(const TTrait &T)=0
virtual TTNeutralGenes * clone()=0
virtual bool operator==(const TTrait &T)
Definition: ttneutralgenes.cc:540
virtual void show_up()=0
virtual void reset()=0
virtual void set_value()
Definition: ttneutralgenes.h:91
const trait_t _type
Definition: ttneutralgenes.h:59
virtual void inherit(const TTrait *mother, const TTrait *father)=0
virtual void set_allele_value(unsigned int locus, unsigned int allele, double value)=0
virtual void init_sequence()=0
virtual trait_t get_type() const
Definition: ttneutralgenes.h:90
virtual void * set_trait(void *value)
Definition: ttneutralgenes.h:84
TTNeutralGenes()
Definition: ttneutralgenes.h:63
virtual void ** get_sequence() const =0
TTNeutralGenes(const TTNeutralGenes &T)
Definition: ttneutralgenes.h:66
TTProtoWithMap.
Definition: ttrait_with_map.h:183
virtual void reset()
Definition: ttrait_with_map.cc:637
Interface for all trait types, declares all basic trait operations.
Definition: ttrait.h:45
Template class for the trait's FileHandler.
Definition: filehandler.h:220
Template class for the trait's StatHandler.
Definition: stathandler.h:167
Nemo2.
Nemo2.
std::string trait_t
Trait types.
Definition: types.h:62
#define NTRL
Definition: types.h:69
sex_t
Sex types, males are always 0 and females 1!!
Definition: types.h:35
unsigned int age_t
Age class flags.
Definition: types.h:45
#define ADULTS
Adults age class flag (breeders).
Definition: types.h:53
#define OFFSPRG
Offspring age class flag.
Definition: types.h:49
age_idx
Array index of the age classes in the patch sizes and containers arrays.
Definition: types.h:40
@ OFFSx
Definition: types.h:41
@ ADLTx
Definition: types.h:41

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

Locations of visitors to this page
Catalogued on GSR