Nemo  2.4.2
Simulate forward-in-time genetic evolution in a spatially explicit, individual-based stochastic simulator
ttneutralgenes.h
Go to the documentation of this file.
1 
27 #ifndef TTNEUTRALGENES_H
28 #define TTNEUTRALGENES_H
29 
30 #include <cmath>
31 #include <vector>
32 #include "ttrait_with_map.h"
33 #include "types.h"
34 #include "lifecycleevent.h"
35 #include "filehandler.h"
36 #include "stathandler.h"
37 #include "datatable.h"
38 #include "metapop.h"
39 #include "binarystoragebuffer.h"
40 #include "Uniform.h"
41 
42 class TTNeutralGenesFH;
43 class TTNeutralGenesSH;
44 class TTNtrlPhenotyperFH;
45 class TTNOhtaStats;
46 class TProtoNeutralGenes;
48 // ----------------------------------------------------------------------------------------
49 
50 // N E U T R A L T R A I T (abstract base)
51 
52 // ----------------------------------------------------------------------------------------
54 class TTNeutralGenes : public TTrait
55 {
56 protected:
58  const trait_t _type;
59 
60 public:
61 
63  : _myProto(0), _type(NTRL) { }
64 
66  : _myProto(T._myProto), _type(NTRL) { }
67 
68  virtual ~TTNeutralGenes () {}
69 
72  void set_proto (TProtoNeutralGenes* proto) {_myProto = proto;}
74 
77  virtual TTNeutralGenes& operator= (const TTrait& T) = 0;
78  virtual bool operator== (const TTrait& T);
79  virtual bool operator!= (const TTrait& T);
80  virtual void init ( ) = 0;
81  virtual void init_sequence ( ) = 0;
82  virtual void reset ( ) = 0;
83  virtual void* set_trait (void* value) {return NULL;}
84  virtual void** get_sequence ( ) const = 0;
85  virtual unsigned int get_allele (int loc, int all) const = 0;
86  virtual double get_allele_value (int loc, int all) const = 0;
87  virtual void set_allele_value (unsigned int locus, unsigned int allele, double value) = 0;
88  virtual void set_sequence (void** seq) = 0;
89  virtual trait_t get_type ( ) const {return _type;}
90  virtual void set_value ( ) { }
91  virtual void* getValue ( ) const {return 0;}
92  virtual void inherit (const TTrait* mother, const TTrait* father) = 0;
93  virtual void mutate ( ) = 0;
94  virtual void show_up ( ) = 0;
95  virtual TTNeutralGenes* clone ( ) = 0;
96 
97  //implements StorableComponent
98  virtual void store_data (BinaryStorageBuffer* saver) = 0;
99  virtual bool retrieve_data (BinaryStorageBuffer* reader) = 0;
101 };
102 // ----------------------------------------------------------------------------------------
103 
104 // N E U T R A L T R A I T (byte encoding)
105 
106 // ----------------------------------------------------------------------------------------
109 {
110 private:
112  void (TProtoNeutralGenes::* _inherit_func_ptr) (sex_t, unsigned char*, const unsigned char**);
113 
114  unsigned char** _sequence; // ordered as [ploidy][locus]
115 
116 public:
117 
120 
123  _sequence(0) { }
124 
125  virtual ~TTNeutralGenes_byte ();
126 
129  void set_mut_func_ptr (void(TTNeutralGenes_byte::* theFunc)(void))
130  {_mutate_func_ptr = theFunc;}
131  void set_inherit_func_ptr (void(TProtoNeutralGenes::* theFunc)(sex_t, unsigned char*, const unsigned char**))
132  {_inherit_func_ptr = theFunc;}
133  void set_allele (unsigned int loc, unsigned int al, unsigned char val) {_sequence[al][loc] = val;}
135 
138  void mutate_SSM ( );
139  void mutate_KAM ( );
140  void mutate_2all ( );
141  void mutate_NULL ( ) { }
145  virtual TTNeutralGenes& operator= (const TTrait& T);
146  virtual void init ( );
147  virtual void init_sequence ( );
148  virtual void reset ( );
149  virtual void** get_sequence ( ) const {return (void**)_sequence;}
150  virtual unsigned int get_allele (int loc, int all) const;
151  virtual double get_allele_value (int loc, int all) const ;
152  virtual void set_allele_value (unsigned int locus, unsigned int allele, double value) ;
153  virtual void set_sequence (void** seq);
154  virtual void inherit (const TTrait* mother, const TTrait* father);
155  virtual void mutate ( ) {(this->*_mutate_func_ptr) ();}
156  virtual void show_up ( );
157  virtual TTNeutralGenes* clone ( ) {return new TTNeutralGenes_byte(*this);}
158 
159  //implements StorableComponent
160  virtual void store_data (BinaryStorageBuffer* saver);
161  virtual bool retrieve_data (BinaryStorageBuffer* reader);
163 };
164 // ----------------------------------------------------------------------------------------
165 
166 // N E U T R A L T R A I T P R O T O T Y P E
167 
168 // ----------------------------------------------------------------------------------------
171 
172 private:
173  unsigned int _allele_num;
174  unsigned int _locus_num;
175  unsigned int _ploidy;
176  double _mut_rate;
178  unsigned int _2L; //genome size (ploidy*num_locus)
179  unsigned int _init_model;
180  double _recomb_rate;
182  void (TProtoNeutralGenes::* _inherit_func_ptr) (sex_t, unsigned char*, const unsigned char**);
183 
184  vector< TTNeutralGenesFH* > _writers;
187  const trait_t _type;
188 
189 public:
190 
191  TProtoNeutralGenes ( );
192 
194 
195  virtual ~TProtoNeutralGenes ( );
196 
197  unsigned int get_ploidy ( ) {return _ploidy;}
198  unsigned int get_locus_num ( ) {return _locus_num;}
199  unsigned int get_allele_num ( ) {return _allele_num;}
200  double get_mut_rate ( ) {return _mut_rate;}
201  unsigned int get_genome_size ( ) {return _2L;}
202  unsigned int get_num_mutations ( ) {return RAND::Binomial( _mut_rate, _2L );}
203  unsigned int get_init_model ( ) {return _init_model;}
204 
206 
207  void inherit_low (sex_t SEX, unsigned char* seq, const unsigned char** parent);
208  void inherit_free (sex_t SEX, unsigned char* seq, const unsigned char** parent);
209 
212  virtual void init (){}
213 
214  virtual void reset (){TTProtoWithMap::reset();}
215 
216  virtual TTNeutralGenes* hatch ();
217 
218  virtual TProtoNeutralGenes* clone () {return new TProtoNeutralGenes(*this);}
219 
220  virtual trait_t get_type () const {return _type;}
221 
222  virtual int get_phenotype_dimension () {return 0;}
223 
224  virtual int get_allele_number () {return _allele_num;}
226  virtual int get_locus_number () {return _locus_num;}
227 
231  virtual bool setParameters();
232 
233  virtual void loadFileServices ( FileServices* loader );
234 
235  virtual void loadStatServices ( StatServices* loader );
236 
237  virtual bool resetParameterFromSource (std::string param, SimComponent* cmpt); // {return false;}
238 
242  virtual void store_data ( BinaryStorageBuffer* saver ) {saver->store(&_locus_num,sizeof(int));}
243 
244  virtual bool retrieve_data ( BinaryStorageBuffer* reader );
246 };
247 
248 // ----------------------------------------------------------------------------------------
249 
250 // N E U T R A L T R A I T F I L E H A N D L E R
251 
252 // ----------------------------------------------------------------------------------------
253 
260 class TTNeutralGenesFH: public TraitFileHandler<TProtoNeutralGenes> {
261 
264 
265 public:
266 
268  : TraitFileHandler<TProtoNeutralGenes> (TP, ".txt"), write_fct(0)
269  { }
270 
271  virtual ~TTNeutralGenesFH ( ) { }
272 
273  virtual void FHwrite ();
274 
275  virtual void FHread (string& filename);
276 
277  void write_TAB();
278  void write_patch_TAB(Patch* patch, sex_t SEX, age_idx AGE, ofstream &FH);
279  void write_PLINK ();
280  void print_PLINK_PED(ofstream& FH, age_idx Ax, Patch *patch);
281  void write_PLINK_BED (ofstream &BED);
282  void write_GENEPOP();
283  void write_patch_GENEPOP(Patch* patch, sex_t SEX, age_idx AGE, ofstream &FH, unsigned int digits);
284  void write_FSTAT();
285  void write_patch_FSTAT(Patch* patch, sex_t SEX, age_idx AGE, ofstream &FH, unsigned int digits);
286  void write_Fst_i();
287  void write_varcompWC();
288 
289  void setOutputOption(string opt);
290  void set_write_fct( void (TTNeutralGenesFH::* fct_ptr) () ) {write_fct = fct_ptr;}
291 
292 };
293 
294 // ------------------------------------------------------------------------------
298 // ------------------------------------------------------------------------------
299 class TTNOhtaStats : public TraitFileHandler<TProtoNeutralGenes> {
300 
302 
303 public:
305 
306  virtual ~TTNOhtaStats () {}
307  virtual void FHwrite ();
308  virtual void FHread (string& filename) {}
309 };
310 
311 
312 // ----------------------------------------------------------------------------------------
313 
314 // N E U T R A L T R A I T S T A T H A N D L E R
315 
316 // ----------------------------------------------------------------------------------------
317 
319 class TTNeutralGenesSH: public TraitStatHandler<TProtoNeutralGenes, TTNeutralGenesSH> {
320 
327 
331 
333  double _sib_prop[4];
334  double _sib_coa[4];
335 
340  double _fst_WH;
345 
346  double _fst_W1, _fst_W2;
349 
350  //Nei's genetic distance:
352  double _meanD;
353 
354 public:
355 
359  _fit_WC_loc(0), _fst_matrix(0), _D(0)
360  { }
361 
362  virtual ~TTNeutralGenesSH ( )
363  {
364  if(_coa_matrix != NULL) delete _coa_matrix;
365  if(_fst_matrix != NULL) delete _fst_matrix;
366  if(_fst_WC_loc) delete[]_fst_WC_loc;
367  if(_fis_WC_loc) delete[]_fis_WC_loc;
368  if(_fit_WC_loc) delete[]_fit_WC_loc;
369  if(_D != NULL) delete _D;
370  }
371 
372  virtual void init ( ) ;
373 
374  virtual bool setStatRecorders (std::string& token);
375 
376  void setFreqRecorders (age_t AGE);
378  void setFstatRecorders (age_t AGE);
379 // void setFstat2Recorders (age_t AGE);
380  void setFstatWCRecorders (age_t AGE);
381  void setCoaMatrixRecorders (age_t AGE, unsigned char dim);
382  void setFstMatrixRecorders (age_t AGE, unsigned char dim);
383  void setNeiGeneticDistanceRecorders (age_t AGE, bool pairwise);
384  void setDxyRecorders (age_t AGE, bool patchwise);
385 
390  void setHeterozygosity (age_t AGE);
393 
394  double getGlobalAlleleFreq (unsigned int loc, unsigned int all) {
395  return _globalAlleleFreq.get(loc, all);
396  }
397 
398  double getHeterozygosity (unsigned int loc) {
399  double het = 0;
400  for(unsigned int i = 0; i < _heteroTable.getNumGroups(); ++i )
401  het += _heteroTable.get(i, loc, 0);
402  return het/_heteroTable.getNumGroups(); //mean per patch heterozygosity
403  }
404 
408  void setAlleleTables (age_t AGE);
409  void setHeteroTable (age_t AGE);
410  void allocateTables (unsigned int loci, unsigned int all);
411 
414 
416 
418 
421 
431  void setFstMatrix (age_t AGE, unsigned char dim);
440  double getWeightedFst () {return _fst_WH;}
442  double getFst_ij (unsigned int i)
443  {
444  unsigned int scale = (unsigned int)pow( 10.0, (int)log10((float)_fst_matrix->getNbCols()) + 1 );
445  return _fst_matrix->get(i/scale, i%scale);
446  }
448  void setFst_li(unsigned int N, unsigned int L, double **array);
449 // /**Computes raw Fst following the original definition (=var(p)/p_bar(1 - p_bar)).*/
450 // double getFstWright(unsigned int i) {if(i == 1) return _fst_W1; else return _fst_W2;}
451 
453  void setFstat (age_t AGE);
457  void setFstat_bitstring (age_t AGE);
460  double setHo (age_idx age_pos);
461  double setHs (age_idx age_pos);
462  double setHt (age_idx age_pos);
463  double getHsnei () {return _hsnei;}
464  double getHtnei () {return _htnei;}
465  double getHo () {return _ho;}
466  double getHs () {return _hs;}
467  double getHt () {return _ht;}
468  double getFst () {return _fst;}
469  double getFis () {return _fis;}
470  double getFit () {return _fit;}
472 // void setFstat2 (age_t AGE);
473 // void setOffsprgFstat2 () {setFstat2(OFFSPRG);}
474 // void setAdultsFstat2 () {setFstat2(ADULTS);}
475  deque<double> setHo2 (age_idx age_pos);
476  deque<double> setHs2 (age_idx age_pos);
477  deque<double> setHt2 (age_idx age_pos);
478 
480  void setFstatWeirCockerham (age_t AGE);
483  void setFstatWeirCockerham_MS (age_t AGE);
486  double getFstWC () {return _fst_WC;}
487  double getFisWC () {return _fis_WC;}
488  double getFitWC () {return _fit_WC;}
490  void setLociDivCounter (age_t AGE);
491  double getNbAllLocal () {return _nb_all_local;}
492  double getNbAllGlobal () {return _nb_all_global;}
493  double getFixLocLocal () {return _fix_loc_local;}
494  double getFixLocGlobal () {return _fix_loc_global;}
498 
505  double Coancestry (const TTrait* ind1, const TTrait* ind2, unsigned int nb_locus);
513  void setCoaMatrix (age_idx age_pos, unsigned char dim);
520  void setAdults_Theta ();
521 
526  double getCoa (unsigned int i)
527  {
528  unsigned int scale = (unsigned int)pow( 10.0, (int)log10((float)_coa_matrix->getNbCols()) + 1 );
529  return _coa_matrix->get(i/scale, i%scale);
530  }
531  double getMeanTheta () {return _mean_theta;}
532  double getMeanAlpha () {return _mean_alpha;}
534  double getTheta_FF () {return Theta_FF;}
536  double getTheta_MM () {return Theta_MM;}
538  double getTheta_FM () {return Theta_FM;}
539  void setSibStats ();
540  void setSibCoa (Individual *I1, Individual *I2);
541  double getSibProportions (unsigned int i) {return _sib_prop[i];}
542  double getSibCoaMeans (unsigned int i) {return _sib_coa[i];}
544 
549  void setNeiGeneticDistance (age_t AGE);
550  double getNeiGeneticDistance (unsigned int i)
551  {
552  unsigned int scale = (unsigned int)pow( 10.0, (int)log10((float)_D->getNbCols()) + 1 );
553  return _D->get(i/scale,i%scale);
554  }
555  double getMeanNeiGeneticDistance ( ) {return _meanD;}
557 
560  double getDxyOffspringPerPatch (unsigned int patch1, unsigned patch2) {return getDxyPerPatch(OFFSx, patch1, patch2);}
561  double getDxyAdultPerPatch (unsigned int patch1, unsigned patch2) {return getDxyPerPatch(ADLTx, patch1, patch2);}
562  double getDxyPerPatch (age_idx age, unsigned int patch1, unsigned patch2);
563  double getDxy (unsigned int age_class);
565 };
566 
567 // ----------------------------------------------------------------------------------------
568 
569 // 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
570 
571 // ----------------------------------------------------------------------------------------
572 
573 //LCE_NtrlInit
574 //
576 class LCE_NtrlInit : public virtual LifeCycleEvent
577 {
578 
580  unsigned int _nLoci;
581 
582 public:
583 
584  LCE_NtrlInit ( );
585 
586  virtual ~LCE_NtrlInit ( ) { }
587 
588  virtual void execute ();
589 
590  void init_allele_freq(sex_t SEX, age_idx AGE, unsigned int size, unsigned int deme, double *values);
591 
592  virtual LifeCycleEvent* clone ( ) {return new LCE_NtrlInit();}
593 
594  virtual bool setParameters ();
595 
596  //SimComponent implementation:
597  virtual void loadFileServices ( FileServices* loader ) {}
598  virtual void loadStatServices ( StatServices* loader ) {}
599  virtual bool resetParameterFromSource (std::string param, SimComponent* cmpt) {return false;}
600  virtual age_t removeAgeClass ( ) {return 0;}
601  virtual age_t addAgeClass ( ) {return 0;}
602  virtual age_t requiredAgeClass () {return 0;}
603 
604 };
605 
606 #endif //TTNEUTRALGENES_H
607 
Nemo2.
A class to store any kind of data in a char buffer before unloading it in a binary data file.
Definition: binarystoragebuffer.h:42
void store(void *stream, unsigned int nb_bytes)
Definition: binarystoragebuffer.cc:36
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:226
unsigned int getNumGroups()
Definition: datatable.h:256
A class to manage the files associated with each components of the simulation.
Definition: fileservices.h:50
This class contains traits along with other individual information (sex, pedigree,...
Definition: individual.h:47
Set patch-specifiec initial genotypes values.
Definition: ttneutralgenes.h:577
virtual age_t requiredAgeClass()
Definition: ttneutralgenes.h:602
virtual age_t removeAgeClass()
Definition: ttneutralgenes.h:600
TMatrix _init_freq
Definition: ttneutralgenes.h:579
virtual ~LCE_NtrlInit()
Definition: ttneutralgenes.h:586
unsigned int _nLoci
Definition: ttneutralgenes.h:580
virtual void execute()
Definition: ttneutralgenes.cc:2642
virtual age_t addAgeClass()
Definition: ttneutralgenes.h:601
virtual LifeCycleEvent * clone()
Definition: ttneutralgenes.h:592
void init_allele_freq(sex_t SEX, age_idx AGE, unsigned int size, unsigned int deme, double *values)
Definition: ttneutralgenes.cc:2666
virtual void loadFileServices(FileServices *loader)
Definition: ttneutralgenes.h:597
virtual bool setParameters()
Definition: ttneutralgenes.cc:2618
LCE_NtrlInit()
Definition: ttneutralgenes.cc:2611
virtual bool resetParameterFromSource(std::string param, SimComponent *cmpt)
Definition: ttneutralgenes.h:599
virtual void loadStatServices(StatServices *loader)
Definition: ttneutralgenes.h:598
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
static double Binomial(double p, unsigned int n)
Definition: Uniform.h:499
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
unsigned int getNbCols() const
Gives the number of columns.
Definition: tmatrix.h:213
double get(unsigned int i, unsigned int j) const
Accessor to element at row i and column j.
Definition: tmatrix.h:191
Prototype class for the TTNeutralGenes trait class.
Definition: ttneutralgenes.h:170
TTNOhtaStats * _ohtaStats
Definition: ttneutralgenes.h:185
virtual bool resetParameterFromSource(std::string param, SimComponent *cmpt)
Definition: ttneutralgenes.cc:476
TTNeutralGenesSH * _stats
Definition: ttneutralgenes.h:186
virtual void loadFileServices(FileServices *loader)
Definition: ttneutralgenes.cc:160
unsigned int _allele_num
Definition: ttneutralgenes.h:173
const trait_t _type
Definition: ttneutralgenes.h:187
double _mut_rate
Definition: ttneutralgenes.h:176
unsigned int _2L
Definition: ttneutralgenes.h:178
virtual void init()
Definition: ttneutralgenes.h:212
virtual trait_t get_type() const
Definition: ttneutralgenes.h:220
unsigned int get_locus_num()
Definition: ttneutralgenes.h:198
virtual bool retrieve_data(BinaryStorageBuffer *reader)
Definition: ttneutralgenes.cc:465
double _recomb_rate
Definition: ttneutralgenes.h:180
unsigned int _locus_num
Definition: ttneutralgenes.h:174
virtual bool setParameters()
Definition: ttneutralgenes.cc:100
virtual void store_data(BinaryStorageBuffer *saver)
Definition: ttneutralgenes.h:242
unsigned int get_num_mutations()
Definition: ttneutralgenes.h:202
TProtoNeutralGenes()
Definition: ttneutralgenes.cc:50
unsigned int get_ploidy()
Definition: ttneutralgenes.h:197
unsigned int get_allele_num()
Definition: ttneutralgenes.h:199
virtual void reset()
Definition: ttneutralgenes.h:214
void inherit_low(sex_t SEX, unsigned char *seq, const unsigned char **parent)
Definition: ttneutralgenes.cc:403
void inherit_free(sex_t SEX, unsigned char *seq, const unsigned char **parent)
Definition: ttneutralgenes.cc:395
virtual int get_allele_number()
Definition: ttneutralgenes.h:224
vector< TTNeutralGenesFH * > _writers
Definition: ttneutralgenes.h:184
void(TProtoNeutralGenes::* _inherit_func_ptr)(sex_t, unsigned char *, const unsigned char **)
Definition: ttneutralgenes.h:182
unsigned int _ploidy
Definition: ttneutralgenes.h:175
TTNeutralGenesSH * get_stater()
Definition: ttneutralgenes.h:205
unsigned int _init_model
Definition: ttneutralgenes.h:179
virtual TTNeutralGenes * hatch()
Definition: ttneutralgenes.cc:375
int _mut_model
Definition: ttneutralgenes.h:177
unsigned int get_genome_size()
Definition: ttneutralgenes.h:201
double get_mut_rate()
Definition: ttneutralgenes.h:200
virtual void loadStatServices(StatServices *loader)
Definition: ttneutralgenes.cc:361
virtual ~TProtoNeutralGenes()
Definition: ttneutralgenes.cc:88
void(TTNeutralGenes_byte::* _mutate_func_ptr)(void)
Definition: ttneutralgenes.h:181
virtual TProtoNeutralGenes * clone()
Definition: ttneutralgenes.h:218
virtual int get_locus_number()
Returns the number of locus.
Definition: ttneutralgenes.h:226
unsigned int get_init_model()
Definition: ttneutralgenes.h:203
virtual int get_phenotype_dimension()
Definition: ttneutralgenes.h:222
TTNOhtaStats.
Definition: ttneutralgenes.h:299
TTNOhtaStats(TProtoNeutralGenes *T)
Definition: ttneutralgenes.h:304
virtual ~TTNOhtaStats()
Definition: ttneutralgenes.h:306
virtual void FHwrite()
Definition: ttneutralgenes.cc:1785
virtual void FHread(string &filename)
Definition: ttneutralgenes.h:308
TMatrix _pairwiseCombs
Definition: ttneutralgenes.h:301
A file handler to save the neutral markers genotypes in the FSTAT format (extended).
Definition: ttneutralgenes.h:260
void write_patch_GENEPOP(Patch *patch, sex_t SEX, age_idx AGE, ofstream &FH, unsigned int digits)
Definition: ttneutralgenes.cc:1178
void(TTNeutralGenesFH::* write_fct)()
Definition: ttneutralgenes.h:263
void write_patch_FSTAT(Patch *patch, sex_t SEX, age_idx AGE, ofstream &FH, unsigned int digits)
Definition: ttneutralgenes.cc:1092
virtual void FHwrite()
Definition: ttneutralgenes.cc:769
virtual ~TTNeutralGenesFH()
Definition: ttneutralgenes.h:271
void write_GENEPOP()
Definition: ttneutralgenes.cc:1122
void write_PLINK_BED(ofstream &BED)
void write_Fst_i()
Definition: ttneutralgenes.cc:1395
string _output_option
Definition: ttneutralgenes.h:262
void setOutputOption(string opt)
Definition: ttneutralgenes.cc:758
void write_FSTAT()
Definition: ttneutralgenes.cc:1041
void print_PLINK_PED(ofstream &FH, age_idx Ax, Patch *patch)
Definition: ttneutralgenes.cc:964
void write_patch_TAB(Patch *patch, sex_t SEX, age_idx AGE, ofstream &FH)
Definition: ttneutralgenes.cc:842
virtual void FHread(string &filename)
Definition: ttneutralgenes.cc:1208
void write_TAB()
Definition: ttneutralgenes.cc:788
void write_varcompWC()
Definition: ttneutralgenes.cc:1461
void write_PLINK()
Definition: ttneutralgenes.cc:884
void set_write_fct(void(TTNeutralGenesFH::*fct_ptr)())
Definition: ttneutralgenes.h:290
TTNeutralGenesFH(TProtoNeutralGenes *TP)
Definition: ttneutralgenes.h:267
The stat handler for neutral markers.
Definition: ttneutralgenes.h:319
void setAdultHeterozygosity()
Definition: ttneutralgenes.h:391
virtual ~TTNeutralGenesSH()
Definition: ttneutralgenes.h:362
double setHo(age_idx age_pos)
Definition: stats_fstat.cc:533
void setFstatWeirCockerham_MS(age_t AGE)
Definition: stats_fstat.cc:1182
double getGlobalAlleleFreq(unsigned int loc, unsigned int all)
Definition: ttneutralgenes.h:394
void setFreqRecordersPerPatch(age_t AGE)
double getSibCoaMeans(unsigned int i)
Definition: ttneutralgenes.h:542
TTNeutralGenesSH(TProtoNeutralGenes *TP)
Definition: ttneutralgenes.h:356
double setHt(age_idx age_pos)
Definition: stats_fstat.cc:638
double getHeterozygosity(unsigned int loc)
Definition: ttneutralgenes.h:398
double getHsnei()
Definition: ttneutralgenes.h:463
double getDxyPerPatch(age_idx age, unsigned int patch1, unsigned patch2)
Definition: stats_fstat.cc:1564
double getSibProportions(unsigned int i)
Definition: ttneutralgenes.h:541
deque< double > setHo2(age_idx age_pos)
New version of Nei & Chesser.
Definition: stats_fstat.cc:728
void setAdultsCoaWithin()
Definition: ttneutralgenes.h:516
double _fst
Definition: ttneutralgenes.h:338
void setAlleleTables(age_t AGE)
Definition: stats_fstat.cc:74
void setOffsprgCoaWithin()
Definition: ttneutralgenes.h:517
double getFixLocGlobal()
Definition: ttneutralgenes.h:494
void setFstatWeirCockerham(age_t AGE)
Computes the Weir & Cockerham (1984) Fstat values (Theta, F, and f).
Definition: stats_fstat.cc:974
void setSibStats()
Definition: stats_coa.cc:276
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:868
void allocateTables(unsigned int loci, unsigned int all)
Definition: stats_fstat.cc:43
double getFit()
Definition: ttneutralgenes.h:470
double _hs
Definition: ttneutralgenes.h:337
DataTable< unsigned int > _alleleCountTable
Definition: ttneutralgenes.h:321
void setSibCoa(Individual *I1, Individual *I2)
Definition: stats_coa.cc:347
void setDxyRecorders(age_t AGE, bool patchwise)
Definition: ttneutralgenes.cc:2574
double _nb_all_local
Definition: ttneutralgenes.h:337
double * _fis_WC_loc
Definition: ttneutralgenes.h:344
double _ht
Definition: ttneutralgenes.h:337
double _mean_alpha
Definition: ttneutralgenes.h:329
TMatrix * _fst_matrix
Pairwise Fst matrix.
Definition: ttneutralgenes.h:348
void setAdultsFstat()
Definition: ttneutralgenes.h:459
double _fst_W1
Definition: ttneutralgenes.h:346
void setNeiGeneticDistance(age_t AGE)
Definition: stats_fstat.cc:1457
DataTable< double > _heteroTable
Definition: ttneutralgenes.h:323
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:1061
double getHt()
Definition: ttneutralgenes.h:467
void setAdultsFstatWeirCockerham()
Definition: ttneutralgenes.h:485
double _meanD
Definition: ttneutralgenes.h:352
void setFstatRecorders(age_t AGE)
Definition: ttneutralgenes.cc:2420
double _mean_theta
Definition: ttneutralgenes.h:329
double getCoa(unsigned int i)
Gets the given coancestry coefficient from the coancestry matrix.
Definition: ttneutralgenes.h:526
void setAdultAlleleFreq()
Definition: ttneutralgenes.h:388
void setOffspringFstatWeirCockerham()
Definition: ttneutralgenes.h:484
DataTable< double > * getAlleleFreqTable()
Accessor to the table of allele frequencies, per patch.
Definition: ttneutralgenes.h:413
double getNbAllGlobal()
Definition: ttneutralgenes.h:492
void setOffsprgCoaBetween()
Definition: ttneutralgenes.h:519
double _ho
F-statistics.
Definition: ttneutralgenes.h:337
double getWeightedFst()
Returns the weighted Fst using Weir & Hill (2002) method.
Definition: ttneutralgenes.h:440
void setAdultsFstBetween()
Definition: ttneutralgenes.h:434
double getMeanTheta()
Definition: ttneutralgenes.h:531
void setCoaMatrix(age_idx age_pos, unsigned char dim)
Computes the within and between patches coancestry coefficients.
Definition: stats_coa.cc:56
double Theta_MM
Definition: ttneutralgenes.h:328
unsigned int _table_set_gen
Definition: ttneutralgenes.h:325
double getMeanAlpha()
Definition: ttneutralgenes.h:532
double Theta_FM
Definition: ttneutralgenes.h:328
double getNeiGeneticDistance(unsigned int i)
Definition: ttneutralgenes.h:550
double getHs()
Definition: ttneutralgenes.h:466
double getHo()
Definition: ttneutralgenes.h:465
double getDxyAdultPerPatch(unsigned int patch1, unsigned patch2)
Definition: ttneutralgenes.h:561
double _fst_W2
Definition: ttneutralgenes.h:346
deque< double > setHt2(age_idx age_pos)
Definition: stats_fstat.cc:842
TMatrix * _D
Definition: ttneutralgenes.h:351
void setFreqRecorders(age_t AGE)
Definition: ttneutralgenes.cc:2388
double * _fst_WC_loc
Per-locus F-stats (Weir&Cockerham).
Definition: ttneutralgenes.h:344
double * _fit_WC_loc
Definition: ttneutralgenes.h:344
void setOffsprgNeiGeneticDistance()
Definition: ttneutralgenes.h:548
DataTable< unsigned int > * getAlleleCountTable()
Definition: ttneutralgenes.h:415
TMatrix _globalAlleleFreq
Definition: ttneutralgenes.h:324
void setOffsprgCoaMatrix()
Definition: ttneutralgenes.h:515
TMatrix * _coa_matrix
Definition: ttneutralgenes.h:330
void setOffsprgFstBetween()
Definition: ttneutralgenes.h:437
void setAdultsFstMatrix()
Definition: ttneutralgenes.h:432
double _fis_WC
Definition: ttneutralgenes.h:342
void setFstat(age_t AGE)
Computes the F-statistics following Nei & Chesser (1983).
Definition: stats_fstat.cc:280
void setAdltNeiGeneticDistance()
Definition: ttneutralgenes.h:547
double getDxy(unsigned int age_class)
Definition: stats_fstat.cc:1538
double getFis()
Definition: ttneutralgenes.h:469
double getNbAllLocal()
Definition: ttneutralgenes.h:491
double _sib_coa[4]
Definition: ttneutralgenes.h:334
double getTheta_FF()
Gives the mean within females coancestry coefficient.
Definition: ttneutralgenes.h:534
void setOffspringHeterozygosity()
Definition: ttneutralgenes.h:392
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:1385
void setHeteroTable(age_t AGE)
Definition: stats_fstat.cc:198
double getTheta_MM()
Gives the mean within males coancestry coefficient.
Definition: ttneutralgenes.h:536
virtual bool setStatRecorders(std::string &token)
Definition: ttneutralgenes.cc:2078
double getFixLocLocal()
Definition: ttneutralgenes.h:493
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:41
DataTable< double > * getHeteroTable()
Definition: ttneutralgenes.h:417
double getFitWC()
Definition: ttneutralgenes.h:488
double getHtnei()
Definition: ttneutralgenes.h:464
void setLociDivCounter(age_t AGE)
Sets the allelic diversity counters.
Definition: stats_fstat.cc:465
void setOffsprgFstat()
Definition: ttneutralgenes.h:458
deque< double > setHs2(age_idx age_pos)
Definition: stats_fstat.cc:792
double getTheta_FM()
Gives the mean between males and females coancestry coefficient.
Definition: ttneutralgenes.h:538
bool _is_diallelic_bitstring
Definition: ttneutralgenes.h:326
double _fis
Definition: ttneutralgenes.h:338
double _fix_loc_local
Definition: ttneutralgenes.h:338
void setOffsprgFstWithin()
Definition: ttneutralgenes.h:436
void setFstat_bitstring(age_t AGE)
Streaming F-stat computation for diallelic bitstring traits.
Definition: stats_fstat.cc:326
double _fit
Definition: ttneutralgenes.h:338
void setFstatWCRecorders(age_t AGE)
Definition: ttneutralgenes.cc:2476
double setHs(age_idx age_pos)
Definition: stats_fstat.cc:593
void setHeterozygosity(age_t AGE)
Definition: stats_fstat.cc:251
double getDxyOffspringPerPatch(unsigned int patch1, unsigned patch2)
Definition: ttneutralgenes.h:560
double Theta_FF
Definition: ttneutralgenes.h:328
unsigned int _table_set_age
Definition: ttneutralgenes.h:325
double getFst_ij(unsigned int i)
Accessor to the Fst matrix as set by setFstMatrix().
Definition: ttneutralgenes.h:442
double _sib_prop[4]
Kinship classes proportions.
Definition: ttneutralgenes.h:333
void setFstMatrixRecorders(age_t AGE, unsigned char dim)
Definition: ttneutralgenes.cc:2496
void setAdultsCoaBetween()
Definition: ttneutralgenes.h:518
void setAdultsFstWithin()
Definition: ttneutralgenes.h:433
void setOffsprgFstMatrix()
Definition: ttneutralgenes.h:435
double getFstWC()
Definition: ttneutralgenes.h:486
void setNeiGeneticDistanceRecorders(age_t AGE, bool pairwise)
Definition: ttneutralgenes.cc:2544
double getMeanNeiGeneticDistance()
Definition: ttneutralgenes.h:555
double _fit_WC
Definition: ttneutralgenes.h:342
double _hsnei
Definition: ttneutralgenes.h:337
virtual void init()
Definition: ttneutralgenes.cc:2063
TMatrix * getGlobalFreqs()
Accessor to the table of allele frequencies in the whole population.
Definition: ttneutralgenes.h:420
double getFisWC()
Definition: ttneutralgenes.h:487
double getFst()
Definition: ttneutralgenes.h:468
void setAdultsCoaMatrix()
Definition: ttneutralgenes.h:514
void setOffspringAlleleFreq()
Definition: ttneutralgenes.h:389
void setAdults_Theta()
Definition: stats_coa.cc:200
double _nb_all_global
Definition: ttneutralgenes.h:337
double _fst_WC
Weir & Cockerham (1984) F-stat estimates.
Definition: ttneutralgenes.h:342
double _fix_loc_global
Definition: ttneutralgenes.h:338
double _htnei
Definition: ttneutralgenes.h:337
unsigned int _table_set_repl
Definition: ttneutralgenes.h:325
DataTable< double > _alleleFreqTable
Definition: ttneutralgenes.h:322
double _fst_WH
Weir & Hill (2002) F-stat estimates.
Definition: ttneutralgenes.h:340
Byte-encoded neutral gene trait (unsigned char per allele).
Definition: ttneutralgenes.h:109
virtual double get_allele_value(int loc, int all) const
Definition: ttneutralgenes.cc:503
virtual void set_allele_value(unsigned int locus, unsigned int allele, double value)
Definition: ttneutralgenes.cc:510
unsigned char ** _sequence
Definition: ttneutralgenes.h:114
virtual ~TTNeutralGenes_byte()
Definition: ttneutralgenes.cc:564
void mutate_KAM()
Definition: ttneutralgenes.cc:720
void set_inherit_func_ptr(void(TProtoNeutralGenes::*theFunc)(sex_t, unsigned char *, const unsigned char **))
Definition: ttneutralgenes.h:131
virtual TTNeutralGenes & operator=(const TTrait &T)
Definition: ttneutralgenes.cc:519
void set_allele(unsigned int loc, unsigned int al, unsigned char val)
Definition: ttneutralgenes.h:133
virtual void ** get_sequence() const
Definition: ttneutralgenes.h:149
void set_mut_func_ptr(void(TTNeutralGenes_byte::*theFunc)(void))
Definition: ttneutralgenes.h:129
TTNeutralGenes_byte()
Definition: ttneutralgenes.h:118
void mutate_SSM()
Definition: ttneutralgenes.cc:697
virtual TTNeutralGenes * clone()
Definition: ttneutralgenes.h:157
virtual unsigned int get_allele(int loc, int all) const
Definition: ttneutralgenes.cc:496
virtual void show_up()
Definition: ttneutralgenes.cc:651
virtual void init()
Definition: ttneutralgenes.cc:575
void(TTNeutralGenes_byte::* _mutate_func_ptr)(void)
Definition: ttneutralgenes.h:111
void(TProtoNeutralGenes::* _inherit_func_ptr)(sex_t, unsigned char *, const unsigned char **)
Definition: ttneutralgenes.h:112
virtual void set_sequence(void **seq)
Definition: ttneutralgenes.cc:642
void mutate_2all()
Definition: ttneutralgenes.cc:739
void mutate_NULL()
Definition: ttneutralgenes.h:141
virtual void reset()
Definition: ttneutralgenes.cc:628
virtual void init_sequence()
Definition: ttneutralgenes.cc:594
virtual void mutate()
Definition: ttneutralgenes.h:155
virtual void inherit(const TTrait *mother, const TTrait *father)
Definition: ttneutralgenes.cc:685
TTNeutralGenes_byte(const TTNeutralGenes_byte &T)
Definition: ttneutralgenes.h:121
virtual bool retrieve_data(BinaryStorageBuffer *reader)
Definition: ttneutralgenes.cc:675
virtual void store_data(BinaryStorageBuffer *saver)
Definition: ttneutralgenes.cc:666
Abstract base class for neutral gene traits.
Definition: ttneutralgenes.h:55
virtual bool operator!=(const TTrait &T)
Definition: ttneutralgenes.cc:554
void set_proto(TProtoNeutralGenes *proto)
Definition: ttneutralgenes.h:72
virtual void * getValue() const
Definition: ttneutralgenes.h:91
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:68
virtual void set_sequence(void **seq)=0
TProtoNeutralGenes * _myProto
Definition: ttneutralgenes.h:57
virtual TTNeutralGenes & operator=(const TTrait &T)=0
virtual TTNeutralGenes * clone()=0
virtual bool operator==(const TTrait &T)
Definition: ttneutralgenes.cc:539
virtual void show_up()=0
virtual void reset()=0
virtual void set_value()
Definition: ttneutralgenes.h:90
const trait_t _type
Definition: ttneutralgenes.h:58
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:89
virtual void * set_trait(void *value)
Definition: ttneutralgenes.h:83
TTNeutralGenes()
Definition: ttneutralgenes.h:62
virtual void ** get_sequence() const =0
TTNeutralGenes(const TTNeutralGenes &T)
Definition: ttneutralgenes.h:65
TTProtoWithMap.
Definition: ttrait_with_map.h:202
virtual void reset()
Definition: ttrait_with_map.cc:636
Interface for all trait types, declares all basic trait operations.
Definition: ttrait.h:44
Template class for the trait's FileHandler.
Definition: filehandler.h:219
Template class for the trait's StatHandler.
Definition: stathandler.h:166
Nemo2.
Nemo2.
std::string trait_t
Trait types.
Definition: types.h:61
#define NTRL
Definition: types.h:68
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
@ OFFSx
Definition: types.h:40
@ ADLTx
Definition: types.h:40

Generated for Nemo v2.4.2 by  doxygen 1.9.1

Catalogued on GSR