44 #include <gsl/gsl_vector.h>
45 #include <gsl/gsl_matrix.h>
46 #include <gsl/gsl_eigen.h>
76 virtual void*
set_trait (
void* value) {
return value;}
85 unsigned int to_pos,
const TTQuanti *parent) = 0;
88 virtual void mutate_add (
unsigned int position,
unsigned int allele,
double value) = 0;
89 virtual void mutate_inplace (
unsigned int position,
unsigned int allele,
double value) = 0;
92 virtual bool get_allele_bit (
unsigned int position,
unsigned int allele)
const = 0;
93 virtual void set_allele_bit (
unsigned int position,
unsigned int allele,
bool value) = 0;
133 virtual void reset ();
134 virtual void init ();
137 virtual unsigned int get_allele (
int loc,
int all)
const ;
139 virtual void set_allele_value (
unsigned int locus,
unsigned int allele,
double value);
152 virtual void mutate_add (
unsigned int position,
unsigned int allele,
double value)
154 virtual void mutate_inplace (
unsigned int position,
unsigned int allele,
double value)
156 virtual bool get_allele_bit (
unsigned int position,
unsigned int allele)
const {
return false;}
157 virtual void set_allele_bit (
unsigned int position,
unsigned int allele,
bool value) {}
188 unsigned int to_locus,
const TTQuanti *parent);
217 unsigned int to_locus,
const TTQuanti *parent);
244 unsigned int to_locus,
const TTQuanti *parent);
271 unsigned int to_locus,
const TTQuanti *parent);
290 virtual bool get_allele_bit (
unsigned int position,
unsigned int allele)
const;
291 virtual void set_allele_bit (
unsigned int position,
unsigned int allele,
bool value);
295 virtual void reset ();
296 virtual void init ();
299 virtual unsigned int get_allele (
int loc,
int all)
const ;
301 virtual void set_allele_value (
unsigned int locus,
unsigned int allele,
double value);
314 virtual void mutate_add (
unsigned int position,
unsigned int allele,
double value)
315 {
_sequence[allele][position] = bool(value);}
316 virtual void mutate_inplace (
unsigned int position,
unsigned int allele,
double value)
346 unsigned int to_locus,
const TTQuanti *parent);
373 unsigned int to_locus,
const TTQuanti *parent);
402 unsigned int to_locus,
const TTQuanti *parent);
473 double get_allele_value (
const TTQuanti* ind,
const unsigned int allele,
const unsigned int locus,
const unsigned int trait);
743 gsl_eigen_symmv_workspace *
_ws;
762 virtual void init ( );
823 void print(ofstream& FH,
Patch* patch,
sex_t SEX,
age_idx Ax,
unsigned int print_gene,
bool print_genotype,
bool print_additive_genotype);
828 virtual void FHread (
string& filename);
846 virtual void FHread (
string& filename) {}
863 virtual void FHread (
string& filename) {}
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 read(void *out, unsigned int nb_bytes)
Definition: binarystoragebuffer.h:220
void store(void *stream, unsigned int nb_bytes)
Definition: binarystoragebuffer.cc:37
A class to manage the files associated with each components of the simulation.
Definition: fileservices.h:51
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
double get(unsigned int i, unsigned int j) const
Accessor to element at row i and column j.
Definition: tmatrix.h:192
TProtoQuanti.
Definition: ttquanti.h:414
bool setMutationSigmaFromQuantiMutationVariance()
Definition: ttquanti.cc:1921
bool _equal_effects
Definition: ttquanti.h:623
vector< double > _eVariance
Definition: ttquanti.h:656
double * getMutationEffectMultivariateGaussian(unsigned int loc)
Definition: ttquanti.cc:2389
unsigned int setAlleleModel()
Definition: ttquanti.cc:804
double set_genotype_value_dominance(const TTQuanti *ind, const unsigned int trait)
Definition: ttquanti.cc:2531
bool do_epistasis()
Definition: ttquanti.h:566
unsigned int _allele_model
Definition: ttquanti.h:609
TMatrix _dominance_effects
Definition: ttquanti.h:647
bool _epistasis
Definition: ttquanti.h:679
size_t _sizeofLocusType
Definition: ttquanti.h:653
void set_mutation_matrix_decomposition(unsigned int loc, unsigned int pleio_deg)
Definition: ttquanti.cc:2258
unsigned int _doInitMutation
Definition: ttquanti.h:641
unsigned int get_locus_PD(unsigned int locus)
Definition: ttquanti.h:456
void mutate_inplace_var_pleio(TTQuanti *ind)
Definition: ttquanti.cc:2785
double set_genotype_value_additive(const TTQuanti *ind, const unsigned int trait)
Definition: ttquanti.cc:2524
void setTraitAndLocusTables_full_pleio()
Definition: ttquanti.cc:1272
virtual ~TProtoQuanti()
Definition: ttquanti.cc:223
double set_trait_value_VE(const TTQuanti *ind, const unsigned int trait)
Definition: ttquanti.cc:2510
virtual int get_phenotype_dimension()
Returns the dimension of the phenotype of the trait (size of the array accessed with TTrait::getValue...
Definition: ttquanti.h:577
void mutate_diallelic_var_pleio(TTQuanti *ind)
Definition: ttquanti.cc:2844
void mutate_var_pleio(TTQuanti *ind)
Definition: ttquanti.cc:2714
bool setContinuousMutationModel_var_pleio()
Definition: ttquanti.cc:1668
unsigned int _dominance_model
Definition: ttquanti.h:646
bool _equal_dom_coeff
Definition: ttquanti.h:648
double get_equal_val_diff()
Definition: ttquanti.h:443
TMatrix _mutation_correlation
Definition: ttquanti.h:633
double * getMutationEffectUnivariateGaussian(unsigned int loc)
Definition: ttquanti.cc:2432
gsl_matrix * set_gsl_mutation_matrix_from_sigma(unsigned int loc, unsigned int pleio_deg)
Definition: ttquanti.cc:2222
bool setMutationModel_var_pleio()
Definition: ttquanti.cc:947
double get_allele_value(const TTQuanti *ind, const unsigned int allele, const unsigned int locus, const unsigned int trait)
Definition: ttquanti.cc:2486
void(TProtoQuanti::* _inherit_fun_ptr)(sex_t, TTQuanti *, const TTQuanti *)
Pointer to inheritance functions: either inherit_free() (r=0.5), or inherit_low() (r<0....
Definition: ttquanti.h:688
bool setMutationModel_no_pleio()
Definition: ttquanti.cc:1143
bool _h2_isBroad
Definition: ttquanti.h:659
const TMatrix & get_diallele_values()
Definition: ttquanti.h:434
const TMatrix & get_pleio_matrix()
Definition: ttquanti.h:451
TTQuantiFH * _reader
Definition: ttquanti.h:723
bool setDominanceParameters()
Definition: ttquanti.cc:2310
unsigned int _h2_setTime
Definition: ttquanti.h:658
unsigned int _seq_length
Total number of allelic values stored in individual sequences, no trait x no locus.
Definition: ttquanti.h:608
double _mutation_rate
Definition: ttquanti.h:613
gsl_matrix ** _evect
Definition: ttquanti.h:636
void mutate_nill(TTQuanti *ind)
Definition: ttquanti.cc:2660
bool setContinuousMutationModel_no_pleio()
Definition: ttquanti.cc:1825
gsl_vector ** _ws
Definition: ttquanti.h:639
TMatrix _mutation_sigma
Definition: ttquanti.h:634
double get_dominance(unsigned int locus, unsigned int trait)
Definition: ttquanti.h:478
bool setInitialValuesParams()
Definition: ttquanti.cc:593
bool _mutationVarianceIsLocusSpecific
Definition: ttquanti.h:642
const TMatrix & get_epi_coefs() const
Definition: ttquanti.h:567
bool readMatrixFromQuantiMutationMatrix(vector< vector< double >> &varmat)
Definition: ttquanti.cc:2057
TMatrix _allele_value
Definition: ttquanti.h:621
bool setGeneticMapParams()
Definition: ttquanti.cc:648
double * getMutationEffects(unsigned int loc)
Definition: ttquanti.h:532
double * getMutationEffectBivariateGaussian(unsigned int loc)
Definition: ttquanti.cc:2413
void set_trait_value_func_ptr(bool withVe)
Definition: ttquanti.cc:678
TTQuantiSH * get_stater()
Definition: ttquanti.h:449
vector< double > _h2
Definition: ttquanti.h:657
unsigned int _num_epi_coefs
Definition: ttquanti.h:680
size_t get_locus_byte_size()
Definition: ttquanti.h:428
void mutate_diallelic_no_pleio(TTQuanti *ind)
Definition: ttquanti.cc:2875
double get_genotypic_value(const TTQuanti *ind, const unsigned int trait)
Definition: ttquanti.h:484
unsigned int _num_traits
Number of traits.
Definition: ttquanti.h:606
double * _sequence_diallele_values[2]
Definition: ttquanti.h:622
double get_init_value(unsigned int i)
Definition: ttquanti.h:446
void mutate_inplace_full_pleio(TTQuanti *ind)
Definition: ttquanti.cc:2760
size_t get_size_locus_type()
Definition: ttquanti.h:427
unsigned int get_locus_ID(unsigned int locus, unsigned int trait)
Definition: ttquanti.h:454
TTQuantiSH * _stats
Definition: ttquanti.h:721
virtual TTQuanti * hatch()
Definition: ttquanti.cc:2895
void set_init_values(const double *values, unsigned int nval)
Definition: ttquanti.cc:2500
void(TProtoQuanti::* _mutation_func_ptr)(TTQuanti *)
Pointer to mutation function, which depends on allele on model (HC, noHC, diallelic)
Definition: ttquanti.h:691
gsl_vector ** _effects_multivar
Definition: ttquanti.h:638
double(TProtoQuanti::* _set_genotype_func_ptr)(const TTQuanti *, const unsigned int)
Pointer to functions get_genotype_value_additive() or get_genotype_value_dominance() computing the ge...
Definition: ttquanti.h:712
void inherit(sex_t SEX, TTQuanti *ind, const TTQuanti *parent)
Definition: ttquanti.cc:2593
TMatrix _pleio_matx
Pleiotropy matrix provided in input (num locu X num trait).
Definition: ttquanti.h:664
unsigned int get_num_epi_coefs()
Definition: ttquanti.h:565
string _diallele_datatype
Definition: ttquanti.h:610
const bitstring & get_trait_mask(unsigned int trait) const
Definition: ttquanti.h:444
double get_seq_diallele_value(unsigned int position, unsigned int allele)
Definition: ttquanti.h:437
double _genomic_mutation_rate
Definition: ttquanti.h:614
gsl_matrix ** _gsl_mutation_matrix
Definition: ttquanti.h:635
bool has_equal_effects()
Definition: ttquanti.h:440
double * getMutationEffectBivariateDiallelic(unsigned int loc)
Definition: ttquanti.cc:2456
virtual bool retrieve_data(BinaryStorageBuffer *reader)
Definition: ttquanti.h:588
double get_diallele_value(unsigned int locus, unsigned int allele)
Definition: ttquanti.h:435
vector< vector< unsigned int > > _trait_locus_table
Table storing the locus id of each locus affecting each trait (num trait X (variable length/trait)).
Definition: ttquanti.h:670
unsigned int get_allele_model()
Definition: ttquanti.h:433
double get_init_variance(unsigned int i)
Definition: ttquanti.h:447
bool * _all_chooser
Definition: ttquanti.h:651
bool setMutationSigmaFromQuantiMutationVariance_no_pleio()
Definition: ttquanti.cc:1991
double(TProtoQuanti::* _getGenotypeWithDominance)(double, double, double)
Pointer to either dominance_h() or dominance_k() function computing the genotypic value with dominanc...
Definition: ttquanti.h:700
double _equal_val_diff
Definition: ttquanti.h:626
void allocate_gsl_mutation_matrix_space(unsigned int num_locus)
Definition: ttquanti.cc:2116
TMatrix _epistatic_coefs_matrix
Definition: ttquanti.h:681
vector< bitstring > _trait_masks
Definition: ttquanti.h:627
double _equal_val_0
Definition: ttquanti.h:624
TMatrix _init_variance
Definition: ttquanti.h:629
void inherit_low(sex_t SEX, TTQuanti *ind, const TTQuanti *parent)
Definition: ttquanti.cc:2600
virtual int get_locus_number()
Returns the number of locus.
Definition: ttquanti.h:581
void mutate(TTQuanti *ind)
Definition: ttquanti.cc:2653
unsigned int get_h2_setTime()
Definition: ttquanti.h:431
const TMatrix & get_dominance_effects()
Definition: ttquanti.h:480
virtual TProtoQuanti * clone()
Definition: ttquanti.h:574
void mutate_inplace_no_pleio(TTQuanti *ind)
Definition: ttquanti.cc:2740
double * getMutationEffectUnivariateGaussianLocSpec(unsigned int loc)
Definition: ttquanti.cc:2440
unsigned int get_locus_seq_pos(unsigned int loc, unsigned int trait)
Definition: ttquanti.h:452
void mutate_diallelic_pleio(TTQuanti *ind)
Definition: ttquanti.cc:2809
vector< vector< unsigned int > > _trait_table
Trait table, (num trait X (variable length/trait)), holds, for each trait, the array position of caus...
Definition: ttquanti.h:667
void setTraitAndLocusTables_no_pleio(TMatrix &mat)
Definition: ttquanti.cc:1304
gsl_matrix * set_gsl_mutation_matrix(unsigned int pleio_deg, const vector< double > &varcov)
Definition: ttquanti.cc:2185
double * getMutationEffectBivariateGaussianLocSpec(unsigned int loc)
Definition: ttquanti.cc:2423
vector< vector< unsigned int > > _locus_table
Locus table, num_locus x 2, first column holds the start position of the alleles of each locus in the...
Definition: ttquanti.h:675
unsigned int get_num_mutations()
Definition: ttquanti.h:542
vector< double > get_heritability()
Definition: ttquanti.h:430
const TMatrix & get_epi_coef_index() const
Definition: ttquanti.h:568
size_t _locusByteSize
Definition: ttquanti.h:652
TMatrix _init_value
Definition: ttquanti.h:628
double get_equal_val_0()
Definition: ttquanti.h:441
double set_trait_value_noVE(const TTQuanti *ind, const unsigned int trait)
Definition: ttquanti.cc:2517
unsigned int get_sequence_block_size(unsigned int from, unsigned int to)
Definition: ttquanti.h:458
unsigned int get_num_locus()
Definition: ttquanti.h:423
virtual void loadStatServices(StatServices *loader)
Definition: ttquanti.cc:3088
unsigned int get_seq_length()
Definition: ttquanti.h:426
bool setEpistasisParameters()
Definition: ttquanti.cc:688
double(TProtoQuanti::* _set_trait_value_func_ptr)(const TTQuanti *, const unsigned int)
Pointer to either set_trait_value_VE() or set_trait_value_noVE() to compute phenotypic values.
Definition: ttquanti.h:706
double get_phenotypic_value(const TTQuanti *ind, const unsigned int trait)
Definition: ttquanti.h:488
unsigned int get_pleiotropy_type()
Definition: ttquanti.h:425
bool setHeritabilityParams()
Definition: ttquanti.cc:437
virtual trait_t get_type() const
Definition: ttquanti.h:575
double *(TProtoQuanti::* _getMutationValues)(unsigned int)
Pointer to mutation allele value function, which depends on allele model and number of traits affecte...
Definition: ttquanti.h:694
double get_genotype_dominance_k(double a1, double a2, double k)
Definition: ttquanti.cc:2572
virtual bool resetParameterFromSource(std::string param, SimComponent *cmpt)
Definition: ttquanti.h:596
double get_genotype_dominance_h(double a1, double a2, double h)
Definition: ttquanti.cc:2556
double _effects_bivar[2]
Definition: ttquanti.h:640
virtual void reset()
Definition: ttquanti.h:572
double * getMutationEffectMultivariateGaussianLocSpec(unsigned int loc)
Definition: ttquanti.cc:2401
bool setDiallelicMutationModel()
Definition: ttquanti.cc:1347
unsigned int get_num_traits()
Definition: ttquanti.h:422
double get_equal_val_1()
Definition: ttquanti.h:442
gsl_vector ** _eval
Definition: ttquanti.h:637
unsigned int get_doInitMutation()
Definition: ttquanti.h:448
TMatrix _epistatic_coefs_indices
Definition: ttquanti.h:682
TTQuantiFH * _writer
Definition: ttquanti.h:722
virtual bool setParameters()
Definition: ttquanti.cc:248
bool has_equal_domCoeff()
Definition: ttquanti.h:439
bool setMutationCorrelation()
Definition: ttquanti.cc:1863
bool get_h2_isBroad()
Definition: ttquanti.h:432
virtual void loadFileServices(FileServices *loader)
Definition: ttquanti.cc:2974
void mutate_full_pleio(TTQuanti *ind)
Definition: ttquanti.cc:2688
virtual void store_data(BinaryStorageBuffer *saver)
Definition: ttquanti.h:585
bool _mutationEffectIsFixedDiAllele
Definition: ttquanti.h:643
TTQOhtaStats * _ohtaStats
Definition: ttquanti.h:725
double get_trait_mutation_variance(unsigned int trait)
Definition: ttquanti.cc:2579
virtual int get_allele_number()
Returns the number of allele per locus.
Definition: ttquanti.h:579
unsigned int _2L
Diploid locus size, to save on useless operations during mutation.
Definition: ttquanti.h:604
unsigned int get_dominance_model()
Definition: ttquanti.h:477
bool setContinuousMutationModel_full_pleio()
Definition: ttquanti.cc:1501
double * getMutationEffectsVarPleio(unsigned int loc)
Definition: ttquanti.h:535
TProtoQuanti()
Definition: ttquanti.cc:63
bool setMutationModel_full_pleio()
Definition: ttquanti.cc:868
unsigned int _num_locus
Total number of loci, for all traits.
Definition: ttquanti.h:602
unsigned int get_num_locus(unsigned int trait)
Definition: ttquanti.h:424
unsigned int get_locus_start_pos(unsigned int locus)
Definition: ttquanti.h:457
double _equal_val_1
Definition: ttquanti.h:625
void set_eVarianceSD(unsigned int trait, double SD)
Definition: ttquanti.cc:2379
double get_genotype_with_dominance(const double a1, const double a2, const unsigned int locus, const unsigned int trait)
Definition: ttquanti.cc:2538
int get_allele_position(const unsigned int locus, const unsigned int trait)
Definition: ttquanti.cc:2467
void inherit_free(sex_t SEX, TTQuanti *ind, const TTQuanti *parent)
Definition: ttquanti.cc:2636
vector< double > get_env_var()
Definition: ttquanti.h:429
unsigned int _pleio_type
Definition: ttquanti.h:617
void mutate_no_pleio(TTQuanti *ind)
Definition: ttquanti.cc:2667
void deallocate_gsl_mutation_matrix_space()
Definition: ttquanti.cc:2136
TTQFreqExtractor * _freqExtractor
Definition: ttquanti.h:724
vector< double *(TProtoQuanti::*)(unsigned int) > _getMutationValuesVarPleio
Collection of pointers to mutation functions, which generate allele values in dependence of pleiotrop...
Definition: ttquanti.h:697
TTProtoWithMap.
Definition: ttrait_with_map.h:203
virtual void reset()
Definition: ttrait_with_map.cc:637
TTQOhtaStats.
Definition: ttquanti.h:854
TMatrix _pairwiseCombs
Definition: ttquanti.h:856
virtual void FHread(string &filename)
Definition: ttquanti.h:863
TTQOhtaStats(TProtoQuanti *T)
Definition: ttquanti.h:859
virtual ~TTQOhtaStats()
Definition: ttquanti.h:861
virtual void FHwrite()
Definition: ttquanti.cc:6462
TTQuantiFH.
Definition: ttquanti.h:809
void write_PLINK()
Definition: ttquanti.cc:5882
void print_PLINK_FAM(ofstream &FH, age_idx Ax, Patch *patch)
Definition: ttquanti.cc:6113
TTQuantiFH(TProtoQuanti *T)
Definition: ttquanti.h:815
virtual void FHread(string &filename)
Definition: ttquanti.cc:6188
void print_PLINK_PED(ofstream &FH, age_idx Ax, Patch *patch)
Definition: ttquanti.cc:6016
void write_TABLE()
Definition: ttquanti.cc:5718
virtual void FHwrite()
Definition: ttquanti.cc:5696
virtual ~TTQuantiFH()
Definition: ttquanti.h:817
string _output_option
Definition: ttquanti.h:811
bool _has_genetic_map
Definition: ttquanti.h:812
void setOutputOption(string opt)
Definition: ttquanti.cc:5674
void print(ofstream &FH, Patch *patch, sex_t SEX, age_idx Ax, unsigned int print_gene, bool print_genotype, bool print_additive_genotype)
Definition: ttquanti.cc:5813
TTQuantiSH.
Definition: ttquanti.h:733
double * _Vp
Definition: ttquanti.h:735
double getMeanGenotPerPatch(unsigned int i, unsigned int p)
Definition: ttquanti.h:790
void addQuanti(age_t AGE)
Definition: ttquanti.cc:4735
void addAvgPerPatch(age_t AGE)
Definition: ttquanti.cc:4820
double ** _pVa
Definition: ttquanti.h:736
double getEigenVectorEltPerPatch(unsigned int p, unsigned int v)
Definition: ttquanti.h:796
vector< double > getVaNoDominance(Patch *curPop, const age_idx AGE)
Definition: ttquanti.cc:5387
double * _Vb
Definition: ttquanti.h:735
unsigned int _num_locus
Definition: ttquanti.h:739
void addCovarPerPatch(age_t AGE)
Definition: ttquanti.cc:4943
double * _meanP
Definition: ttquanti.h:735
void addEigenVect1PerPatch(age_t AGE)
Definition: ttquanti.cc:5062
void addVarPerPatch(age_t AGE)
Definition: ttquanti.cc:4890
TTQuantiSH(TProtoQuanti *TP)
Definition: ttquanti.h:750
virtual ~TTQuantiSH()
Definition: ttquanti.h:758
double ** _pVp
Definition: ttquanti.h:736
double getVa(unsigned int i)
Definition: ttquanti.h:783
bool _eVar
Definition: ttquanti.h:737
gsl_matrix * _evec
Definition: ttquanti.h:741
double getEigenValuePerPatch(unsigned int i, unsigned int p)
Definition: ttquanti.h:794
void addGenotPerPatch(age_t AGE)
Definition: ttquanti.cc:4855
unsigned int _table_set_age
Definition: ttquanti.h:746
void addEigenValuesPerPatch(age_t AGE)
Definition: ttquanti.cc:5028
double getVb(unsigned int i)
Definition: ttquanti.h:785
double getSkewPerPatch(unsigned int i, unsigned int p)
Definition: ttquanti.cc:5137
double ** _pmeanP
Definition: ttquanti.h:736
double * _meanG
Definition: ttquanti.h:735
double getMeanPhenotPerPatch(unsigned int i, unsigned int p)
Definition: ttquanti.h:791
void setStats(age_t AGE)
Definition: ttquanti.cc:5223
void setAdultStats()
Definition: ttquanti.h:778
double getVg(unsigned int i)
Definition: ttquanti.h:784
gsl_vector * _eval
Definition: ttquanti.h:742
double getMeanPhenot(unsigned int i)
Definition: ttquanti.h:782
double * _covar
Definition: ttquanti.h:735
DataTable< double > _phenoTable
Definition: ttquanti.h:745
double getCovarPerPatch(unsigned int p, unsigned int i)
Definition: ttquanti.h:795
double getQst(unsigned int i)
Definition: ttquanti.h:787
void addEigenPerPatch(age_t AGE)
Definition: ttquanti.cc:4984
vector< double > getVaWithDominance(Patch *curPop, const age_idx AGE)
computation of the additive genetic variance from the average excess of each allele exact under rando...
Definition: ttquanti.cc:5486
double getVp(unsigned int i)
Definition: ttquanti.h:786
gsl_matrix * _G
Definition: ttquanti.h:741
double getMeanGenot(unsigned int i)
Definition: ttquanti.h:781
double ** _peigvect
Definition: ttquanti.h:736
unsigned int _table_set_repl
Definition: ttquanti.h:746
double getVpPerPatch(unsigned int i, unsigned int p)
Definition: ttquanti.h:793
gsl_eigen_symmv_workspace * _ws
Definition: ttquanti.h:743
unsigned int _table_set_gen
Definition: ttquanti.h:746
double getCovar(unsigned int i)
Definition: ttquanti.h:788
vector< double > getSNPalleleFreqInPatch(Patch *patch, const age_idx AGE)
Definition: ttquanti.cc:5344
virtual bool setStatRecorders(std::string &token)
Definition: ttquanti.cc:4673
DataTable< double > _genoTable
Definition: ttquanti.h:745
unsigned int _num_trait
Definition: ttquanti.h:739
double * _Va
Definition: ttquanti.h:735
void resetPtrs()
Definition: ttquanti.cc:4542
double * _Vg
Definition: ttquanti.h:735
void setDataTables(age_t AGE)
Definition: ttquanti.cc:5152
void addQuantiPerPatch(age_t AGE)
Definition: ttquanti.cc:4804
double ** _peigval
Definition: ttquanti.h:736
unsigned int _patchNbr
Definition: ttquanti.h:739
double ** _pcovar
Definition: ttquanti.h:736
double ** _pmeanG
Definition: ttquanti.h:736
double getVaPerPatch(unsigned int i, unsigned int p)
Definition: ttquanti.h:792
void addSkewPerPatch(age_t AGE)
Definition: ttquanti.cc:5101
void setOffsprgStats()
Definition: ttquanti.h:779
virtual void init()
Definition: ttquanti.cc:4600
TTQuanti_continuous_full_pleio : universal pleiotropy.
Definition: ttquanti.h:170
TTQuanti_continuous_full_pleio(const TTQuanti_continuous_full_pleio &TT)
Definition: ttquanti.h:175
virtual void show_up()
Definition: ttquanti.cc:3449
virtual void copy_sequence_1locus(sex_t SEX, unsigned int strand, unsigned int at, const TTQuanti *parent)
Definition: ttquanti.cc:3360
virtual void copy_sequence_block(sex_t SEX, unsigned int strand, unsigned int from_locus, unsigned int to_locus, const TTQuanti *parent)
Definition: ttquanti.cc:3343
virtual ~TTQuanti_continuous_full_pleio()
Definition: ttquanti.h:177
virtual TTQuanti_continuous_full_pleio * clone()
Definition: ttquanti.h:181
TTQuanti_continuous_full_pleio()
Definition: ttquanti.h:173
virtual double get_dominant_genotype(const unsigned int trait) const
Definition: ttquanti.cc:3328
virtual double get_additive_genotype(const unsigned int trait) const
Definition: ttquanti.cc:3311
virtual void init_sequence()
Definition: ttquanti.cc:3372
TTQuanti_continuous_no_pleio : multiple non-pleiotropic traits.
Definition: ttquanti.h:226
virtual double get_dominant_genotype(const unsigned int trait) const
Definition: ttquanti.cc:3683
virtual ~TTQuanti_continuous_no_pleio()
Definition: ttquanti.h:233
TTQuanti_continuous_no_pleio()
Definition: ttquanti.h:229
virtual TTQuanti_continuous_no_pleio * clone()
Definition: ttquanti.h:237
TTQuanti_continuous_no_pleio(const TTQuanti_continuous_no_pleio &TT)
Definition: ttquanti.h:231
virtual void init_sequence()
Definition: ttquanti.cc:3752
virtual void copy_sequence_1locus(sex_t SEX, unsigned int strand, unsigned int at, const TTQuanti *parent)
Definition: ttquanti.cc:3742
virtual void copy_sequence_block(sex_t SEX, unsigned int strand, unsigned int from_locus, unsigned int to_locus, const TTQuanti *parent)
Definition: ttquanti.cc:3726
virtual double get_additive_genotype(const unsigned int trait) const
Definition: ttquanti.cc:3662
virtual void show_up()
Definition: ttquanti.cc:3806
TTQuanti_continuous_single : simple implementation for a single quantitative trait with continuous al...
Definition: ttquanti.h:253
virtual void copy_sequence_block(sex_t SEX, unsigned int strand, unsigned int from_locus, unsigned int to_locus, const TTQuanti *parent)
virtual TTQuanti_continuous_single * clone()
Definition: ttquanti.h:264
virtual void copy_sequence_1locus(sex_t SEX, unsigned int strand, unsigned int at, const TTQuanti *parent)
virtual ~TTQuanti_continuous_single()
Definition: ttquanti.h:260
virtual double get_dominant_genotype(const unsigned int trait) const
Definition: ttquanti.cc:3864
virtual void init_sequence()
virtual double get_additive_genotype(const unsigned int trait) const
Definition: ttquanti.cc:3851
TTQuanti_continuous_single(const TTQuanti_continuous_single &TT)
Definition: ttquanti.h:258
TTQuanti_continuous_single()
Definition: ttquanti.h:256
TTQuanti_continuous_var_pleio : variable pleiotropy.
Definition: ttquanti.h:197
unsigned int get_sequence_block_size(unsigned int from, unsigned int to)
Definition: ttquanti.cc:3522
virtual double get_additive_genotype(const unsigned int trait) const
Definition: ttquanti.cc:3488
virtual void copy_sequence_1locus(sex_t SEX, unsigned int strand, unsigned int at, const TTQuanti *parent)
Definition: ttquanti.cc:3545
TTQuanti_continuous_var_pleio()
Definition: ttquanti.h:200
virtual TTQuanti_continuous_var_pleio * clone()
Definition: ttquanti.h:210
virtual void show_up()
Definition: ttquanti.cc:3617
virtual double get_dominant_genotype(const unsigned int trait) const
Definition: ttquanti.cc:3505
TTQuanti_continuous_var_pleio(const TTQuanti_continuous_var_pleio &TT)
Definition: ttquanti.h:202
virtual ~TTQuanti_continuous_var_pleio()
Definition: ttquanti.h:204
virtual void init_sequence()
Definition: ttquanti.cc:3558
virtual void copy_sequence_block(sex_t SEX, unsigned int strand, unsigned int from_locus, unsigned int to_locus, const TTQuanti *parent)
Definition: ttquanti.cc:3530
TTQuanti_continuous.
Definition: ttquanti.h:113
virtual bool retrieve_data(BinaryStorageBuffer *reader)
Definition: ttquanti.cc:3288
virtual void set_allele_value(unsigned int locus, unsigned int allele, double value)
Definition: ttquanti.cc:3228
TTQuanti_continuous(const TTQuanti &T)
Definition: ttquanti.h:122
TTQuanti_continuous()
Definition: ttquanti.h:117
virtual void set_allele(int locus, int allele, double value)
Definition: ttquanti.h:151
virtual void store_data(BinaryStorageBuffer *saver)
Definition: ttquanti.cc:3280
virtual bool operator!=(const TTrait &T)
Definition: ttquanti.cc:3202
virtual unsigned int get_allele(int loc, int all) const
Definition: ttquanti.cc:3212
virtual void ** get_sequence() const
Definition: ttquanti.h:136
virtual void set_allele_bit(unsigned int position, unsigned int allele, bool value)
Definition: ttquanti.h:157
virtual ~TTQuanti_continuous()
Definition: ttquanti.h:127
virtual void set_sequence(void **seq)
Definition: ttquanti.cc:3297
virtual void mutate_add(unsigned int position, unsigned int allele, double value)
Definition: ttquanti.h:152
virtual void init()
Definition: ttquanti.cc:3236
virtual void mutate_inplace(unsigned int position, unsigned int allele, double value)
Definition: ttquanti.h:154
virtual TTQuanti_continuous & operator=(const TTrait &T)
Definition: ttquanti.cc:3164
virtual double get_full_genotype(unsigned int trait)
Definition: ttquanti.cc:3273
virtual double get_allele_value(int loc, int all) const
Definition: ttquanti.cc:3220
virtual bool operator==(const TTrait &T)
Definition: ttquanti.cc:3185
virtual void reset()
Definition: ttquanti.cc:3256
double ** _sequence
Definition: ttquanti.h:162
virtual bool get_allele_bit(unsigned int position, unsigned int allele) const
Definition: ttquanti.h:156
TTQuanti_diallelic_full_pleio : pleiotropic di-allelic loci, max PD = 2.
Definition: ttquanti.h:355
virtual TTQuanti_diallelic_full_pleio * clone()
Definition: ttquanti.h:366
virtual double get_dominant_genotype(const unsigned int trait) const
Definition: ttquanti.cc:4241
virtual void show_up()
Definition: ttquanti.cc:4335
TTQuanti_diallelic_full_pleio()
Definition: ttquanti.h:358
virtual ~TTQuanti_diallelic_full_pleio()
Definition: ttquanti.h:362
virtual void copy_sequence_block(sex_t SEX, unsigned int strand, unsigned int from_locus, unsigned int to_locus, const TTQuanti *parent)
Definition: ttquanti.cc:4262
virtual void copy_sequence_1locus(sex_t SEX, unsigned int strand, unsigned int at, const TTQuanti *parent)
Definition: ttquanti.cc:4278
virtual double get_additive_genotype(const unsigned int trait) const
Definition: ttquanti.cc:4223
virtual void init_sequence()
Definition: ttquanti.cc:4290
TTQuanti_diallelic_full_pleio(const TTQuanti_diallelic_full_pleio &TT)
Definition: ttquanti.h:360
TTQuanti_diallelic_no_pleio : single or multiple non-pleiotropic traits, di-allelic.
Definition: ttquanti.h:328
TTQuanti_diallelic_no_pleio()
Definition: ttquanti.h:331
virtual ~TTQuanti_diallelic_no_pleio()
Definition: ttquanti.h:335
virtual void copy_sequence_block(sex_t SEX, unsigned int strand, unsigned int from_locus, unsigned int to_locus, const TTQuanti *parent)
Definition: ttquanti.cc:4109
virtual TTQuanti_diallelic_no_pleio * clone()
Definition: ttquanti.h:339
virtual double get_dominant_genotype(const unsigned int trait) const
Definition: ttquanti.cc:4088
virtual double get_additive_genotype(const unsigned int trait) const
Definition: ttquanti.cc:4060
virtual void copy_sequence_1locus(sex_t SEX, unsigned int strand, unsigned int at, const TTQuanti *parent)
Definition: ttquanti.cc:4125
virtual void init_sequence()
Definition: ttquanti.cc:4135
TTQuanti_diallelic_no_pleio(const TTQuanti_diallelic_no_pleio &TT)
Definition: ttquanti.h:333
virtual void show_up()
Definition: ttquanti.cc:4180
TTQuanti_diallelic_var_pleio : variable pleiotropic di-allelic loci, max PD = 2.
Definition: ttquanti.h:382
virtual void copy_sequence_block(sex_t SEX, unsigned int strand, unsigned int from_locus, unsigned int to_locus, const TTQuanti *parent)
Definition: ttquanti.cc:4420
TTQuanti_diallelic_var_pleio(const TTQuanti_diallelic_var_pleio &TT)
Definition: ttquanti.h:387
virtual void copy_sequence_1locus(sex_t SEX, unsigned int strand, unsigned int at, const TTQuanti *parent)
Definition: ttquanti.cc:4437
TTQuanti_diallelic_var_pleio()
Definition: ttquanti.h:385
virtual TTQuanti_diallelic_var_pleio * clone()
Definition: ttquanti.h:395
virtual ~TTQuanti_diallelic_var_pleio()
Definition: ttquanti.h:389
virtual double get_additive_genotype(const unsigned int trait) const
Definition: ttquanti.cc:4373
virtual void show_up()
Definition: ttquanti.cc:4495
unsigned int get_sequence_block_size(unsigned int from, unsigned int to)
Definition: ttquanti.cc:4412
virtual double get_dominant_genotype(const unsigned int trait) const
Definition: ttquanti.cc:4391
virtual void init_sequence()
Definition: ttquanti.cc:4451
TTQuanti_diallelic.
Definition: ttquanti.h:280
virtual void ** get_sequence() const
Definition: ttquanti.h:298
virtual void mutate_inplace(unsigned int position, unsigned int allele, double value)
Definition: ttquanti.h:316
virtual unsigned int get_allele(int loc, int all) const
Definition: ttquanti.cc:3986
TTQuanti_diallelic()
Definition: ttquanti.h:284
TTQuanti_diallelic(const TTQuanti &T)
Definition: ttquanti.h:286
virtual TTQuanti_diallelic & operator=(const TTrait &T)
Definition: ttquanti.cc:3919
virtual void init()
Definition: ttquanti.cc:3881
virtual bool operator==(const TTrait &T)
Definition: ttquanti.cc:3940
virtual void mutate_add(unsigned int position, unsigned int allele, double value)
Definition: ttquanti.h:314
virtual void reset()
Definition: ttquanti.cc:3901
unsigned char ** _sequence
Definition: ttquanti.h:321
virtual double get_full_genotype(unsigned int trait)
Definition: ttquanti.cc:4023
virtual ~TTQuanti_diallelic()
Definition: ttquanti.h:288
virtual void store_data(BinaryStorageBuffer *saver)
Definition: ttquanti.cc:4030
virtual bool retrieve_data(BinaryStorageBuffer *reader)
Definition: ttquanti.cc:4038
virtual void set_allele(int locus, int allele, double value)
Definition: ttquanti.h:313
virtual double get_allele_value(int locus, int allele) const
Definition: ttquanti.cc:3995
virtual void set_allele_value(unsigned int locus, unsigned int allele, double value)
Definition: ttquanti.cc:4006
virtual bool get_allele_bit(unsigned int position, unsigned int allele) const
Definition: ttquanti.cc:3967
virtual void set_allele_bit(unsigned int position, unsigned int allele, bool value)
Definition: ttquanti.cc:3976
virtual void set_sequence(void **seq)
Definition: ttquanti.cc:4048
void inherit_free(const TTrait *mother, const TTrait *father)
virtual bool operator!=(const TTrait &T)
Definition: ttquanti.cc:3957
TTQuanti.
Definition: ttquanti.h:60
virtual void mutate_add(unsigned int position, unsigned int allele, double value)=0
TProtoQuanti * _myProto
Definition: ttquanti.h:106
virtual void copy_sequence_1locus(sex_t SEX, unsigned int strand, unsigned int at, const TTQuanti *parent)=0
virtual ~TTQuanti()
Definition: ttquanti.h:71
virtual void set_value()
Definition: ttquanti.cc:3122
virtual void set_allele_bit(unsigned int position, unsigned int allele, bool value)=0
TProtoQuanti * get_proto()
Definition: ttquanti.h:97
virtual bool get_allele_bit(unsigned int position, unsigned int allele) const =0
virtual double get_dominant_genotype(const unsigned int trait) const =0
void set_phenotype(unsigned int trait, double value)
Definition: ttquanti.cc:3151
virtual double get_additive_genotype(const unsigned int trait) const =0
TTQuanti()
Definition: ttquanti.h:63
virtual void * getValue() const
Definition: ttquanti.h:78
virtual void * set_trait(void *value)
Definition: ttquanti.h:76
TTQuanti(const TTQuanti &T)
Definition: ttquanti.h:68
void set_proto(TProtoQuanti *proto)
Definition: ttquanti.h:96
virtual void mutate_inplace(unsigned int position, unsigned int allele, double value)=0
virtual void inherit(const TTrait *mother, const TTrait *father)
Definition: ttquanti.cc:3113
double get_phenotype(unsigned int trai)
Definition: ttquanti.cc:3142
double * _phenotypes
Definition: ttquanti.h:104
virtual double get_full_genotype(unsigned int trait)=0
void reset_phenotype_to_genotypic_value()
Definition: ttquanti.cc:3134
virtual void mutate()
Definition: ttquanti.cc:3106
double * _genotypic_values
Definition: ttquanti.h:105
virtual void copy_sequence_block(sex_t SEX, unsigned int strand, unsigned int from_pos, unsigned int to_pos, const TTQuanti *parent)=0
virtual trait_t get_type() const
Definition: ttquanti.h:73
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
Non-template and faster implementation of std::bitset.
Definition: bitstring.h:56
#define QUANT
Definition: types.h:71
std::string trait_t
Trait types.
Definition: types.h:62
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