Nemo  2.4.0b
Simulate forward-in-time genetic evolution in a spatially explicit, individual-based stochastic simulator
ttneutralgenes_bitstring.h
Go to the documentation of this file.
1 /*
2  * @file ttneutralgenes_bitstring.h
3  * Nemo2
4  *
5  * Copyright (C) 2026 Frederic Guillaume
6  * frederic.guillaume@helsinki.fi
7  *
8  * This file is part of Nemo
9  *
10  * Nemo is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * Nemo is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23  *
24  * created on @date 03.03.2026
25  *
26  * @author fred
27  */
28 
29 #ifndef TTNEUTRALGENES_BITSTRING_H_
30 #define TTNEUTRALGENES_BITSTRING_H_
31 
32 #include "ttneutralgenes.h"
33 #include "bitstring.h"
34 
35 // ------------------------------------------------------------------------------
39 // ------------------------------------------------------------------------------
41 
42 public:
43 
46 
49 
50  virtual ~TTNeutralGenes_bitstring () { reset(); }
51 
52  const bitstring& get_bit_sequence (bool chromosome) const
53  { return _sequence[chromosome]; }
54 
57  virtual TTNeutralGenes& operator= (const TTrait& T);
58  virtual void init ( );
59  virtual void init_sequence ( );
60  virtual void reset ( );
61  virtual void** get_sequence ( ) const {
62  error("calling TTNeutralGenes_bitstring::get_sequence()\n");
63  return (void**)NULL;
64  }
65  virtual unsigned int get_allele (int loc, int all) const;
66  virtual double get_allele_value (int loc, int all) const;
67  virtual void set_allele_value (unsigned int locus, unsigned int allele, double value);
68  virtual void set_sequence (void** seq);
69  virtual void inherit (const TTrait* mother, const TTrait* father);
70  virtual void mutate ( );
71  virtual void show_up ( );
72  virtual TTNeutralGenes* clone ( ) { return new TTNeutralGenes_bitstring(*this); }
73 
74  //implements StorableComponent
75  virtual void store_data (BinaryStorageBuffer* saver);
76  virtual bool retrieve_data (BinaryStorageBuffer* reader);
78 
79 private:
80 
81  void inherit_low (sex_t SEX, const TTNeutralGenes_bitstring* parent);
82 
83 protected:
84 
85  bitstring *_sequence; // array of 2 bitstrings [ploidy]
87 
88 };
89 
90 #endif /* TTNEUTRALGENES_BITSTRING_H_ */
A class to store any kind of data in a char buffer before unloading it in a binary data file.
Definition: binarystoragebuffer.h:44
TTNeutralGenes_bitstring : diallelic neutral loci encoded as bitstrings.
Definition: ttneutralgenes_bitstring.h:40
virtual TTNeutralGenes * clone()
Definition: ttneutralgenes_bitstring.h:72
virtual void reset()
Definition: ttneutralgenes_bitstring.cc:86
bitstring * _sequence
Definition: ttneutralgenes_bitstring.h:85
virtual void inherit(const TTrait *mother, const TTrait *father)
Definition: ttneutralgenes_bitstring.cc:154
const bitstring & get_bit_sequence(bool chromosome) const
Definition: ttneutralgenes_bitstring.h:52
virtual bool retrieve_data(BinaryStorageBuffer *reader)
Definition: ttneutralgenes_bitstring.cc:257
virtual unsigned int get_allele(int loc, int all) const
Definition: ttneutralgenes_bitstring.cc:115
bool _free_recombination
Definition: ttneutralgenes_bitstring.h:86
virtual void ** get_sequence() const
Definition: ttneutralgenes_bitstring.h:61
void inherit_low(sex_t SEX, const TTNeutralGenes_bitstring *parent)
Definition: ttneutralgenes_bitstring.cc:202
TTNeutralGenes_bitstring()
Definition: ttneutralgenes_bitstring.h:44
virtual void init()
Definition: ttneutralgenes_bitstring.cc:39
virtual void show_up()
Definition: ttneutralgenes_bitstring.cc:225
virtual TTNeutralGenes & operator=(const TTrait &T)
Definition: ttneutralgenes_bitstring.cc:96
virtual void set_allele_value(unsigned int locus, unsigned int allele, double value)
Definition: ttneutralgenes_bitstring.cc:129
virtual void init_sequence()
Definition: ttneutralgenes_bitstring.cc:53
virtual void set_sequence(void **seq)
Definition: ttneutralgenes_bitstring.cc:136
virtual void store_data(BinaryStorageBuffer *saver)
Definition: ttneutralgenes_bitstring.cc:243
virtual ~TTNeutralGenes_bitstring()
Definition: ttneutralgenes_bitstring.h:50
virtual void mutate()
Definition: ttneutralgenes_bitstring.cc:143
virtual double get_allele_value(int loc, int all) const
Definition: ttneutralgenes_bitstring.cc:122
TTNeutralGenes_bitstring(const TTNeutralGenes_bitstring &T)
Definition: ttneutralgenes_bitstring.h:47
Abstract base class for neutral gene traits.
Definition: ttneutralgenes.h:57
Interface for all trait types, declares all basic trait operations.
Definition: ttrait.h:46
Non-template and faster implementation of std::bitset.
Definition: bitstring.h:57
int error(const char *str,...)
Definition: output.cc:79
sex_t
Sex types, males are always 0 and females 1!!
Definition: types.h:36

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