Nemo  2.4.0b
Simulate forward-in-time genetic evolution in a spatially explicit, individual-based stochastic simulator
TTDeletMutations_bitstring Class Reference

Bitstring implementation of TTDeletMutations with recombination. More...

#include <ttdeletmutations_bitstring.h>

+ Inheritance diagram for TTDeletMutations_bitstring:
+ Collaboration diagram for TTDeletMutations_bitstring:

Public Member Functions

 TTDeletMutations_bitstring ()
 
 TTDeletMutations_bitstring (const TTDeletMutations_bitstring &T)
 
virtual ~TTDeletMutations_bitstring ()
 
double viability_multi ()
 
double viability_epist ()
 
double viability_multi_continuous ()
 
double viability_epist_continuous ()
 
void mutate_redraw ()
 
void mutate_noredraw ()
 
void mutate_noredraw_noBackMutation ()
 
void set_sequence (bitstring **seq)
 
Getters:
unsigned int get_nb_mutations () const
 
unsigned int get_nb_mut_atLocus (unsigned int loc) const
 
unsigned int get_nb_htz_mutations () const
 
unsigned int get_nb_hmz_mutations () const
 
bool get_hmz_atLocus (unsigned int loc) const
 
bool get_htz_atLocus (unsigned int loc) const
 
Setters:
void set_proto (TProtoDeletMutations_bitstring *proto)
 
void set_nb_locus (int val)
 
void set_mut_rate (double val, int nloc)
 
void set_viability_func_ptr (unsigned int f_model, bool is_cont)
 
void set_inherit_func_ptr (void(TProtoDeletMutations_bitstring::*theFunc)(sex_t, bitstring *, bitstring **))
 
void set_mutation_func_ptr (unsigned int m_model)
 
Implementations
virtual void init ()
 
virtual void init_sequence ()
 
virtual void reset ()
 
virtual void * set_trait (void *value)
 
virtual void ** get_sequence () const
 
virtual double get_allele_value (int loc, int all) const
 
virtual void set_allele_value (unsigned int locus, unsigned int allele, double value)
 
virtual void set_sequence (void **seq)
 
virtual trait_t get_type () const
 
virtual void inherit (const TTrait *mother, const TTrait *father)
 
virtual void mutate ()
 
virtual void set_value ()
 
virtual void * getValue () const
 
virtual void show_up ()
 
virtual TTDeletMutations_bitstringclone ()
 
virtual TTDeletMutations_bitstringoperator= (const TTrait &T)
 
virtual bool operator== (const TTrait &T)
 
virtual bool operator!= (const TTrait &T)
 
virtual void store_data (BinaryStorageBuffer *saver)
 
virtual bool retrieve_data (BinaryStorageBuffer *reader)
 
- Public Member Functions inherited from TTrait
virtual ~TTrait ()
 
- Public Member Functions inherited from StorableComponent
virtual ~StorableComponent ()
 

Static Public Member Functions

static void set_effects (float **fx)
 
static void set_recomb_template (unsigned int size)
 

Private Member Functions

void set_nb_mutations ()
 
void set_nb_htz_mutations ()
 
void set_nb_hmz_mutations ()
 

Private Attributes

TProtoDeletMutations_bitstring_myProto
 
unsigned int _nb_mutations
 
unsigned int _nb_hmz_mutations
 
unsigned int _nb_htz_mutations
 
bitstringsequence [2]
 
bitstring_htz
 
bitstring_hmz
 
double _phenotype
 
trait_t _type
 
Parameters
unsigned int _nb_locus
 
double _genomic_mut_rate
 
double(TTDeletMutations_bitstring::* _viability_func_ptr )(void)
 
void(TProtoDeletMutations_bitstring::* _inherit_func_ptr )(sex_t, bitstring *, bitstring **)
 
void(TTDeletMutations_bitstring::* _mutation_func_ptr )(void)
 

Detailed Description

Bitstring implementation of TTDeletMutations with recombination.

Constructor & Destructor Documentation

◆ TTDeletMutations_bitstring() [1/2]

TTDeletMutations_bitstring::TTDeletMutations_bitstring ( )
inline
89  {sequence[0] = sequence[1] = NULL;}
TProtoDeletMutations_bitstring * _myProto
Definition: ttdeletmutations_bitstring.h:51
unsigned int _nb_htz_mutations
Definition: ttdeletmutations_bitstring.h:69
double _phenotype
Definition: ttdeletmutations_bitstring.h:73
bitstring * _htz
Definition: ttdeletmutations_bitstring.h:72
unsigned int _nb_hmz_mutations
Definition: ttdeletmutations_bitstring.h:68
double _genomic_mut_rate
Definition: ttdeletmutations_bitstring.h:56
unsigned int _nb_mutations
Definition: ttdeletmutations_bitstring.h:67
unsigned int _nb_locus
Definition: ttdeletmutations_bitstring.h:55
double(TTDeletMutations_bitstring::* _viability_func_ptr)(void)
Definition: ttdeletmutations_bitstring.h:58
trait_t _type
Definition: ttdeletmutations_bitstring.h:75
void(TTDeletMutations_bitstring::* _mutation_func_ptr)(void)
Definition: ttdeletmutations_bitstring.h:60
bitstring * _hmz
Definition: ttdeletmutations_bitstring.h:72
void(TProtoDeletMutations_bitstring::* _inherit_func_ptr)(sex_t, bitstring *, bitstring **)
Definition: ttdeletmutations_bitstring.h:59
bitstring * sequence[2]
Definition: ttdeletmutations_bitstring.h:71
#define DELE
Definition: types.h:66

References sequence.

Referenced by clone().

◆ TTDeletMutations_bitstring() [2/2]

TTDeletMutations_bitstring::TTDeletMutations_bitstring ( const TTDeletMutations_bitstring T)
inline

◆ ~TTDeletMutations_bitstring()

virtual TTDeletMutations_bitstring::~TTDeletMutations_bitstring ( )
inlinevirtual
99 {reset();}
virtual void reset()
Definition: ttdeletmutations_bitstring.cc:636

References reset().

Member Function Documentation

◆ clone()

virtual TTDeletMutations_bitstring* TTDeletMutations_bitstring::clone ( )
inlinevirtual

Implements TTrait.

154 {return new TTDeletMutations_bitstring(*this);}
TTDeletMutations_bitstring()
Definition: ttdeletmutations_bitstring.h:85

References TTDeletMutations_bitstring().

◆ get_allele_value()

double TTDeletMutations_bitstring::get_allele_value ( int  loc,
int  all 
) const
virtual

Implements TTrait.

664 {
665  if((*sequence[all])[loc]) {
666  if(get_hmz_atLocus(loc)) return _myProto->get_effect(1, loc);
667  else return _myProto->get_effect(0, loc);
668  } else {
669  if(get_hmz_atLocus(loc)) return 0;
670  else return _myProto->get_effect(0, loc);
671  }
672 }
float get_effect(unsigned int at, unsigned int loc)
Definition: ttdeletmutations_bitstring.h:191
bool get_hmz_atLocus(unsigned int loc) const
Definition: ttdeletmutations_bitstring.h:108

References _myProto, TProtoDeletMutations_bitstring::get_effect(), get_hmz_atLocus(), and sequence.

◆ get_hmz_atLocus()

bool TTDeletMutations_bitstring::get_hmz_atLocus ( unsigned int  loc) const
inline
108 {return (*sequence[0])[loc] & (*sequence[1])[loc];}

References sequence.

Referenced by get_allele_value().

◆ get_htz_atLocus()

bool TTDeletMutations_bitstring::get_htz_atLocus ( unsigned int  loc) const
inline
109 {return (*sequence[0])[loc] ^ (*sequence[1])[loc];}

References sequence.

◆ get_nb_hmz_mutations()

unsigned int TTDeletMutations_bitstring::get_nb_hmz_mutations ( ) const
inline
107 {return _nb_hmz_mutations;}

References _nb_hmz_mutations.

Referenced by TTDeletMutBitstrSH::setDeletStats(), and show_up().

◆ get_nb_htz_mutations()

unsigned int TTDeletMutations_bitstring::get_nb_htz_mutations ( ) const
inline
106 {return _nb_htz_mutations;}

References _nb_htz_mutations.

Referenced by TTDeletMutBitstrSH::setDeletStats(), and show_up().

◆ get_nb_mut_atLocus()

unsigned int TTDeletMutations_bitstring::get_nb_mut_atLocus ( unsigned int  loc) const
inline
105 {return (*sequence[0])[loc] + (*sequence[1])[loc];}

References sequence.

Referenced by TTDeletMutBitstrSH::setDeletStats().

◆ get_nb_mutations()

unsigned int TTDeletMutations_bitstring::get_nb_mutations ( ) const
inline
104 {return _nb_mutations;}

References _nb_mutations.

Referenced by show_up().

◆ get_sequence()

virtual void** TTDeletMutations_bitstring::get_sequence ( ) const
inlinevirtual

Implements TTrait.

143 {return (void**)&sequence[0];}

References sequence.

◆ get_type()

virtual trait_t TTDeletMutations_bitstring::get_type ( ) const
inlinevirtual

Implements TTrait.

148 {return _type;}

References _type.

◆ getValue()

virtual void* TTDeletMutations_bitstring::getValue ( ) const
inlinevirtual

Implements TTrait.

152 {return (void*)&_phenotype;}

References _phenotype.

Referenced by show_up().

◆ inherit()

void TTDeletMutations_bitstring::inherit ( const TTrait mother,
const TTrait father 
)
virtual

Implements TTrait.

733 {
734  bitstring** mother_seq = (bitstring**)mother->get_sequence();
735  bitstring** father_seq = (bitstring**)father->get_sequence();
736 
737  (_myProto->* _inherit_func_ptr) (FEM, sequence[FEM], mother_seq);
738 
739  (_myProto->* _inherit_func_ptr) (MAL, sequence[MAL], father_seq);
740 }
virtual void ** get_sequence() const =0
sequence accessor.
Non-template and faster implementation of std::bitset.
Definition: bitstring.h:57
@ FEM
Definition: types.h:37
@ MAL
Definition: types.h:37

References _inherit_func_ptr, _myProto, FEM, TTrait::get_sequence(), MAL, and sequence.

◆ init()

void TTDeletMutations_bitstring::init ( )
virtual

Implements TTrait.

620 {
621  if(sequence[0] != NULL)
622  fatal("TTDeletMutations_bitstring::init::sequence[0] is not NULL !\n");
623 
624  if(sequence[1] != NULL)
625  fatal("TTDeletMutations_bitstring::init::sequence[1] is not NULL !\n");
626 
627  sequence[0] = new bitstring(_nb_locus);
628  sequence[1] = new bitstring(_nb_locus);
629 
630  _htz = new bitstring(_nb_locus);
631  _hmz = new bitstring(_nb_locus);
632 }
void fatal(const char *str,...)
Definition: output.cc:96

References _hmz, _htz, _nb_locus, fatal(), and sequence.

Referenced by operator=(), and set_sequence().

◆ init_sequence()

void TTDeletMutations_bitstring::init_sequence ( )
virtual

Implements TTrait.

700 {
701  if(sequence[0] == NULL) sequence[0] = new bitstring(_nb_locus);
702 
703  if(sequence[1] == NULL) sequence[1] = new bitstring(_nb_locus);
704 
705  unsigned int nb_mut, locus;
706 
707  sequence[0]->reset();
708  sequence[1]->reset();
709 
710  if(_myProto->get_init_freq() != 0) {
711 
712  nb_mut = (unsigned int)(_myProto->get_init_freq()*_nb_locus*2);
713 
714  for(unsigned int i = 0; i < nb_mut; i++) {
715 
716  do {
717  locus = RAND::Uniform( _nb_locus );
718  //check if the locus is not already homozygote:
719  } while( (*sequence[0])[ locus ] && (*sequence[1])[ locus ] );
720 
721  if((*sequence[0])[ locus ])
722  sequence[1]->set(locus);
723  else
724  sequence[0]->set(locus);
725  }
726 
727  }
728 }
static double Uniform()
Generates a random number from [0.0, 1.0[ uniformly distributed.
Definition: Uniform.h:124
double get_init_freq()
Definition: ttdeletmutations_bitstring.h:186
void set(size_t n)
Set a bit to 1.
Definition: bitstring.h:256
void reset(size_t length)
Definition: bitstring.h:140

References _myProto, _nb_locus, TProtoDeletMutations_bitstring::get_init_freq(), bitstring::reset(), sequence, bitstring::set(), and RAND::Uniform().

◆ mutate()

virtual void TTDeletMutations_bitstring::mutate ( )
inlinevirtual

Implements TTrait.

150 {(this->*_mutation_func_ptr)();}

References _mutation_func_ptr.

◆ mutate_noredraw()

void TTDeletMutations_bitstring::mutate_noredraw ( )
774 {
775  unsigned int NbMut, mut_locus, mut_chrom;
776 
777  NbMut = (unsigned int)RAND::Poisson(_genomic_mut_rate);
778 
779  while(NbMut != 0) {
780 
781  mut_locus = RAND::Uniform( _nb_locus ); // choose the locus that is going to mutate
782  mut_chrom = RAND::RandBool(); // which chromosome of the two will we mutate
783 
784  // has it already mutated in the past?
785  if( (*sequence[mut_chrom])[mut_locus] ) {
786 
787  // true if there is already a mutation there because that would =1
788  // maybe backmutate (this has a reduced prob)
789  // draw a new rand num and if of some value, proceed with backmutation
790 
792  { // by default, 1% of the time do a backmutation once we get here
793 
794  //backmutate:
795  sequence[mut_chrom]->flip(mut_locus); // change to the other number at that locus (0 to 1 or vice versa)
796 
797  }
798 
799  } else {
800  // or forward mutate
801  sequence[mut_chrom]->set(mut_locus);
802  }
803 
804  NbMut--;
805  }
806 }
static double Poisson(double mean)
From the Numerical Recieps.
Definition: Uniform.h:219
static bool RandBool()
Returns a random boolean.
Definition: Uniform.h:162
double get_backmutation_rate()
Definition: ttdeletmutations_bitstring.h:181
void flip(size_t n)
Flip the bit at n.
Definition: bitstring.h:267

References _genomic_mut_rate, _myProto, _nb_locus, bitstring::flip(), TProtoDeletMutations_bitstring::get_backmutation_rate(), RAND::Poisson(), RAND::RandBool(), sequence, bitstring::set(), and RAND::Uniform().

Referenced by set_mutation_func_ptr().

◆ mutate_noredraw_noBackMutation()

void TTDeletMutations_bitstring::mutate_noredraw_noBackMutation ( )
811 {
812  unsigned int NbMut = (unsigned int)RAND::Poisson(_genomic_mut_rate);
813 
814  while(NbMut != 0) {
815 
817 
818  NbMut--;
819  }
820 
821 }

References _genomic_mut_rate, _nb_locus, RAND::Poisson(), RAND::RandBool(), sequence, bitstring::set(), and RAND::Uniform().

Referenced by set_mutation_func_ptr().

◆ mutate_redraw()

void TTDeletMutations_bitstring::mutate_redraw ( )
746 {
747  unsigned int NbMut, mutLocus;
748 
749  NbMut = (unsigned int)RAND::Poisson(_genomic_mut_rate);
750 
751  if( (int)_nb_hmz_mutations - (int)NbMut < 0 ) NbMut -= _nb_hmz_mutations;
752 
753  while(NbMut != 0) {
754 
755  do {
756  mutLocus = RAND::Uniform( _nb_locus );
757  //check if the locus is not already homozygote:
758  } while( (*sequence[0])[mutLocus] && (*sequence[1])[mutLocus] );
759 
760  if ( !( (*sequence[0])[mutLocus] || (*sequence[1])[mutLocus] ) )
761  sequence[RAND::RandBool()]->set(mutLocus);
762  else if((*sequence[0])[mutLocus])
763  sequence[1]->set(mutLocus);
764  else
765  sequence[0]->set(mutLocus);
766 
767  NbMut--;
768  }
769 }

References _genomic_mut_rate, _nb_hmz_mutations, _nb_locus, RAND::Poisson(), RAND::RandBool(), sequence, bitstring::set(), and RAND::Uniform().

Referenced by set_mutation_func_ptr().

◆ operator!=()

bool TTDeletMutations_bitstring::operator!= ( const TTrait T)
virtual

Implements TTrait.

568 {
569  if(!((*this) == T))
570  return true;
571  else
572  return false;
573 }

◆ operator=()

TTDeletMutations_bitstring & TTDeletMutations_bitstring::operator= ( const TTrait T)
virtual

Implements TTrait.

530 {
531  const TTDeletMutations_bitstring& TD = dynamic_cast<const TTDeletMutations_bitstring&> (T);
532 
533  if(this != &TD) {
534 
535  _nb_locus = TD._nb_locus;
536 
537  //deallocate any previous sequence memory:
538  reset();
539 
540  //allocate sequence memory:
541  init();
542 
543  //copy sequence:
544  sequence[0]->copy(*TD.sequence[0]);
545  sequence[1]->copy(*TD.sequence[1]);
546 
547  set_value();
548  }
549  return *this;
550 }
Bitstring implementation of TTDeletMutations with recombination.
Definition: ttdeletmutations_bitstring.h:47
virtual void set_value()
Definition: ttdeletmutations_bitstring.cc:825
virtual void init()
Definition: ttdeletmutations_bitstring.cc:619
void copy(const bitstring &b)
Unchecked copy, assumes we have sames sizes.
Definition: bitstring.h:284

References _nb_locus, bitstring::copy(), init(), reset(), sequence, and set_value().

◆ operator==()

bool TTDeletMutations_bitstring::operator== ( const TTrait T)
virtual

Implements TTrait.

555 {
556  if( _type != T.get_type() ) return false;
557 
558  const TTDeletMutations_bitstring& TD = dynamic_cast<const TTDeletMutations_bitstring&> (T);
559  if(this != &TD) {
560  if(_nb_locus != TD._nb_locus) return false;
561  }
562  return true;
563 }
virtual trait_t get_type() const =0
type accessor.

References _nb_locus, _type, and TTrait::get_type().

◆ reset()

void TTDeletMutations_bitstring::reset ( )
virtual

Implements TTrait.

637 {
638  if(sequence[0] != NULL) delete sequence[0];
639  if(sequence[1] != NULL) delete sequence[1];
640 
641  sequence[0] = NULL;
642  sequence[1] = NULL;
643 
644  if(_htz != NULL) delete _htz;
645  _htz = 0;
646 
647  if(_hmz != NULL) delete _hmz;
648  _hmz = 0;
649 }

References _hmz, _htz, and sequence.

Referenced by operator=(), set_sequence(), and ~TTDeletMutations_bitstring().

◆ retrieve_data()

bool TTDeletMutations_bitstring::retrieve_data ( BinaryStorageBuffer reader)
virtual

Implements StorableComponent.

915 {
916  size_t wnb = sequence[0]->nb_words();
917  size_t bytes = wnb * sizeof(bitstring::_ul);
918  bitstring::_ul *srce = new bitstring::_ul [wnb];
919 
920  reader->read(srce, bytes);
921  sequence[0]->set_data(srce,wnb);
922 
923  reader->read(srce, bytes);
924  sequence[1]->set_data(srce,wnb);
925 
926  delete [] srce;
927 
928  return true;
929 }
void read(void *out, unsigned int nb_bytes)
Definition: binarystoragebuffer.h:162
unsigned long _ul
Definition: bitstring.h:61
void set_data(_ul *srce, size_t nbwrd)
Copy bits from an array of unsigned long words.
Definition: bitstring.h:270
size_t nb_words() const
Definition: bitstring.h:160

References bitstring::nb_words(), BinaryStorageBuffer::read(), sequence, and bitstring::set_data().

◆ set_allele_value()

void TTDeletMutations_bitstring::set_allele_value ( unsigned int  locus,
unsigned int  allele,
double  value 
)
virtual

Implements TTrait.

678 {
679  assert(locus < _nb_locus && allele < 2);
680 
681  sequence[allele]->set(locus);
682 
683  _myProto->set_effect(1, locus, (float)value);
684 
685  double dom;
686 
687  if(_myProto->get_dominance_model() == 1)
688  dom = exp(-1.0*_myProto->get_effect(1, locus)*(-1.0*log(2*_myProto->get_dominance()) / _myProto->get_strength()))/2.0; //scaling of h on s
689  else dom = _myProto->get_dominance();
690 
691  //heterozygote effect: hs
692  _myProto->set_effect(0, locus, (float)(dom * _myProto->get_effect(1, locus)) );
693 
694 }
double get_dominance()
Definition: ttdeletmutations_bitstring.h:183
int get_dominance_model()
Definition: ttdeletmutations_bitstring.h:184
void set_effect(unsigned int at, unsigned int loc, float val)
Definition: ttdeletmutations_bitstring.h:197
double get_strength()
Definition: ttdeletmutations_bitstring.h:182

References _myProto, _nb_locus, TProtoDeletMutations_bitstring::get_dominance(), TProtoDeletMutations_bitstring::get_dominance_model(), TProtoDeletMutations_bitstring::get_effect(), TProtoDeletMutations_bitstring::get_strength(), sequence, bitstring::set(), and TProtoDeletMutations_bitstring::set_effect().

◆ set_effects()

static void TTDeletMutations_bitstring::set_effects ( float **  fx)
static

◆ set_inherit_func_ptr()

void TTDeletMutations_bitstring::set_inherit_func_ptr ( void(TProtoDeletMutations_bitstring::*)(sex_t, bitstring *, bitstring **)  theFunc)
inline
120  {_inherit_func_ptr = theFunc;}

References _inherit_func_ptr.

Referenced by TProtoDeletMutations_bitstring::hatch().

◆ set_mut_rate()

void TTDeletMutations_bitstring::set_mut_rate ( double  val,
int  nloc 
)
inline
117 {_genomic_mut_rate = 2*nloc*val;}

References _genomic_mut_rate.

Referenced by TProtoDeletMutations_bitstring::hatch().

◆ set_mutation_func_ptr()

void TTDeletMutations_bitstring::set_mutation_func_ptr ( unsigned int  m_model)
601 {
602  switch(m_model) {
603  case 1:
604  {
605  if(_myProto->get_backmutation_rate() != 0)
607  else
609  break;
610  }
611  case 2:
613  break;
614  }
615 }
void mutate_noredraw_noBackMutation()
Definition: ttdeletmutations_bitstring.cc:810
void mutate_redraw()
Definition: ttdeletmutations_bitstring.cc:745
void mutate_noredraw()
Definition: ttdeletmutations_bitstring.cc:773

References _mutation_func_ptr, _myProto, TProtoDeletMutations_bitstring::get_backmutation_rate(), mutate_noredraw(), mutate_noredraw_noBackMutation(), and mutate_redraw().

Referenced by TProtoDeletMutations_bitstring::hatch().

◆ set_nb_hmz_mutations()

void TTDeletMutations_bitstring::set_nb_hmz_mutations ( )
private
851 {
852  (*_hmz) = *sequence[0] & *sequence[1];
854 }
unsigned int count()
Count number of set bits.
Definition: bitstring.h:245

References _hmz, _nb_hmz_mutations, bitstring::count(), and sequence.

Referenced by set_value(), and show_up().

◆ set_nb_htz_mutations()

void TTDeletMutations_bitstring::set_nb_htz_mutations ( )
private
843 {
844  (*_htz) = *sequence[0] ^ *sequence[1];
846 }

References _htz, _nb_htz_mutations, bitstring::count(), and sequence.

Referenced by set_value(), and show_up().

◆ set_nb_locus()

void TTDeletMutations_bitstring::set_nb_locus ( int  val)
inline
116 {_nb_locus = val;}

References _nb_locus.

Referenced by TProtoDeletMutations_bitstring::hatch().

◆ set_nb_mutations()

void TTDeletMutations_bitstring::set_nb_mutations ( )
private
836 {
837  _nb_mutations = sequence[0]->count() + sequence[1]->count();
838 }

References _nb_mutations, bitstring::count(), and sequence.

Referenced by set_value(), and show_up().

◆ set_proto()

void TTDeletMutations_bitstring::set_proto ( TProtoDeletMutations_bitstring proto)
inline
115 {_myProto = proto;}

References _myProto.

Referenced by TProtoDeletMutations_bitstring::hatch().

◆ set_recomb_template()

static void TTDeletMutations_bitstring::set_recomb_template ( unsigned int  size)
static

◆ set_sequence() [1/2]

void TTDeletMutations_bitstring::set_sequence ( bitstring **  seq)
654 {
655  reset();
656  init();
657  sequence[0]->copy(*seq[0]);
658  sequence[1]->copy(*seq[1]);
659 }

References bitstring::copy(), init(), reset(), and sequence.

Referenced by TTDeletMutBitstrFH::FHread().

◆ set_sequence() [2/2]

virtual void TTDeletMutations_bitstring::set_sequence ( void **  seq)
inlinevirtual

Implements TTrait.

147 {}

◆ set_trait()

virtual void* TTDeletMutations_bitstring::set_trait ( void *  value)
inlinevirtual

Implements TTrait.

142 {return NULL;}

◆ set_value()

void TTDeletMutations_bitstring::set_value ( )
virtual

Implements TTrait.

826 {
830  _phenotype = (this->*_viability_func_ptr)();
831 }
void set_nb_htz_mutations()
Definition: ttdeletmutations_bitstring.cc:842
void set_nb_mutations()
Definition: ttdeletmutations_bitstring.cc:835
void set_nb_hmz_mutations()
Definition: ttdeletmutations_bitstring.cc:850

References _phenotype, _viability_func_ptr, set_nb_hmz_mutations(), set_nb_htz_mutations(), and set_nb_mutations().

Referenced by TTDeletMutBitstrFH::FHread(), operator=(), and show_up().

◆ set_viability_func_ptr()

void TTDeletMutations_bitstring::set_viability_func_ptr ( unsigned int  f_model,
bool  is_cont 
)
577  {
578  switch(f_model) {
579  case 1:
580  {
581  if(is_cont)
583  else
585  break;
586  }
587  case 2:
588  {
589  if(is_cont)
591  else
593  break;
594  }
595  }
596 }
double viability_multi()
Definition: ttdeletmutations_bitstring.cc:858
double viability_epist_continuous()
Definition: ttdeletmutations_bitstring.cc:891
double viability_multi_continuous()
Definition: ttdeletmutations_bitstring.cc:876
double viability_epist()
Definition: ttdeletmutations_bitstring.cc:868

References _viability_func_ptr, viability_epist(), viability_epist_continuous(), viability_multi(), and viability_multi_continuous().

Referenced by TProtoDeletMutations_bitstring::hatch().

◆ show_up()

void TTDeletMutations_bitstring::show_up ( )
virtual

Implements TTrait.

935 {
939  set_value();
940  std::cout<<"\n Trait type: delet"
941  <<"\n value: "<<*(double*)getValue()
942  <<"\nnb mutations: "<<get_nb_mutations()
943  <<"\n nb hmz mut: "<<get_nb_hmz_mutations()
944  <<"\n nb htz mut: "<<get_nb_htz_mutations()
945  <<"\n sequence: "<<std::endl;
946  cout<<"0: ";
947  for(unsigned int i = 0; i < _nb_locus && i < 64; i++)
948  cout<<(*sequence[0])[i];
949  cout<<"\n1: ";
950  for(unsigned int i = 0; i < _nb_locus && i < 64; i++)
951  cout<<(*sequence[1])[i];
952  cout<<endl;
953 }
unsigned int get_nb_mutations() const
Definition: ttdeletmutations_bitstring.h:104
virtual void * getValue() const
Definition: ttdeletmutations_bitstring.h:152
unsigned int get_nb_htz_mutations() const
Definition: ttdeletmutations_bitstring.h:106
unsigned int get_nb_hmz_mutations() const
Definition: ttdeletmutations_bitstring.h:107

References _nb_locus, get_nb_hmz_mutations(), get_nb_htz_mutations(), get_nb_mutations(), getValue(), sequence, set_nb_hmz_mutations(), set_nb_htz_mutations(), set_nb_mutations(), and set_value().

◆ store_data()

void TTDeletMutations_bitstring::store_data ( BinaryStorageBuffer saver)
virtual

Implements StorableComponent.

903 {
904  size_t wnb = sequence[0]->nb_words();
905  size_t bytes = sizeof(bitstring::_ul);
906 
907  for(size_t i = 0; i < wnb; i++)
908  saver->store(sequence[0]->getword_atIdx(i), bytes);
909 
910  for(size_t i = 0; i < wnb; i++)
911  saver->store(sequence[1]->getword_atIdx(i), bytes);
912 }
void store(void *stream, unsigned int nb_bytes)
Definition: binarystoragebuffer.cc:16
_ul * getword_atIdx(size_t index) const
Definition: bitstring.h:155

References bitstring::getword_atIdx(), bitstring::nb_words(), sequence, and BinaryStorageBuffer::store().

◆ viability_epist()

double TTDeletMutations_bitstring::viability_epist ( )

◆ viability_epist_continuous()

double TTDeletMutations_bitstring::viability_epist_continuous ( )
892 {
893  //w = 1 - s(hmz + h*htz)
894  double fitness = 1.0;
895 
896  for(unsigned int i = 0; i < _nb_locus; ++i)
897  fitness -= (*_hmz)[i]*_myProto->get_effect(1,i) + (*_htz)[i]*_myProto->get_effect(0,i);
898 
899  return fitness * _myProto->get_fitness_scaling_factor();
900 }

References _hmz, _myProto, _nb_locus, TProtoDeletMutations_bitstring::get_effect(), and TProtoDeletMutations_bitstring::get_fitness_scaling_factor().

Referenced by set_viability_func_ptr().

◆ viability_multi()

double TTDeletMutations_bitstring::viability_multi ( )

◆ viability_multi_continuous()

double TTDeletMutations_bitstring::viability_multi_continuous ( )
877 {
878  //w = (1-s)^hmz * (1-hs)^htz
879  double fitness = 1.0;
880 
881  for(unsigned int i = 0; i < _nb_locus; ++i)
882  //_effects[0] stores hs, _effects[1] stores s
883  fitness *= (1.0f - (*_hmz)[i]*_myProto->get_effect(1, i))
884  * (1.0f - (*_htz)[i]*_myProto->get_effect(0, i));
885 
886  return fitness * _myProto->get_fitness_scaling_factor();
887 }

References _hmz, _myProto, _nb_locus, TProtoDeletMutations_bitstring::get_effect(), and TProtoDeletMutations_bitstring::get_fitness_scaling_factor().

Referenced by set_viability_func_ptr().

Member Data Documentation

◆ _genomic_mut_rate

double TTDeletMutations_bitstring::_genomic_mut_rate
private

◆ _hmz

bitstring * TTDeletMutations_bitstring::_hmz
private

◆ _htz

bitstring* TTDeletMutations_bitstring::_htz
private

Referenced by init(), reset(), and set_nb_htz_mutations().

◆ _inherit_func_ptr

void(TProtoDeletMutations_bitstring::* TTDeletMutations_bitstring::_inherit_func_ptr) (sex_t, bitstring *, bitstring **)
private

Referenced by inherit(), and set_inherit_func_ptr().

◆ _mutation_func_ptr

void(TTDeletMutations_bitstring::* TTDeletMutations_bitstring::_mutation_func_ptr) (void)
private

Referenced by mutate(), and set_mutation_func_ptr().

◆ _myProto

◆ _nb_hmz_mutations

unsigned int TTDeletMutations_bitstring::_nb_hmz_mutations
private

◆ _nb_htz_mutations

unsigned int TTDeletMutations_bitstring::_nb_htz_mutations
private

◆ _nb_locus

◆ _nb_mutations

unsigned int TTDeletMutations_bitstring::_nb_mutations
private

◆ _phenotype

double TTDeletMutations_bitstring::_phenotype
private

Referenced by getValue(), and set_value().

◆ _type

trait_t TTDeletMutations_bitstring::_type
private

Referenced by get_type(), and operator==().

◆ _viability_func_ptr

double(TTDeletMutations_bitstring::* TTDeletMutations_bitstring::_viability_func_ptr) (void)
private

◆ sequence


The documentation for this class was generated from the following files:

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

Locations of visitors to this page
Catalogued on GSR