annotate egglib/egglib-2.1.5/include/egglib-cpp/ParamSet.hpp @ 13:734a3572c1d6 draft

Uploaded
author dereeper
date Tue, 08 Jan 2019 08:45:34 -0500
parents 420b57c3c185
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
1 /*
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
2 Copyright 2009-2010 Stéphane De Mita, Mathieu Siol
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
3
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
4 This file is part of the EggLib library.
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
5
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
6 EggLib is free software: you can redistribute it and/or modify
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
7 it under the terms of the GNU General Public License as published by
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
8 the Free Software Foundation, either version 3 of the License, or
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
9 (at your option) any later version.
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
10
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
11 EggLib is distributed in the hope that it will be useful,
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
14 GNU General Public License for more details.
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
15
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
17 along with EggLib. If not, see <http://www.gnu.org/licenses/>.
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
18 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
19
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
20 #ifndef EGGLIB_PARAMSET_HPP
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
21 #define EGGLIB_PARAMSET_HPP
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
22
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
23
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
24 #include "DataMatrix.hpp"
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
25
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
26
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
27 namespace egglib {
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
28
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
29 class Change;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
30 class Controller;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
31
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
32
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
33 /** \brief Set of parameters
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
34 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
35 * \ingroup coalesce
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
36 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
37 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
38 class ParamSet {
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
39
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
40 public:
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
41
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
42 /** \brief Default constructor
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
43 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
44 * Initializes all parameters to reasonnable values (except
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
45 * that the sample size is null: 1 population, 0 samples,
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
46 * selfing rate of 0, recombination rate of 0, growth rate of
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
47 * 0, population size of 1 and no changes.
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
48 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
49 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
50 ParamSet();
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
51
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
52 /** \brief Destructor
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
53 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
54 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
55 ~ParamSet();
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
56
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
57 /** \brief Copy constructor
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
58 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
59 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
60 ParamSet(const ParamSet&);
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
61
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
62 /** \brief Assignment operator
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
63 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
64 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
65 ParamSet& operator=(const ParamSet&);
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
66
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
67 /** \brief Restores default value of all parameters
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
68 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
69 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
70 void reset();
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
71
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
72 /** \brief Gets the number of populations
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
73 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
74 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
75 unsigned int numberOfPopulations() const;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
76
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
77 /** \brief Gets a pairwise migration rate
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
78 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
79 * It is allowed to access a diagonal value. Diagonal
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
80 * values contain the sum of values of the corresponding
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
81 * line (diagonal cell excepted, of course).
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
82 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
83 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
84 double pairwiseMigrationRate(unsigned int source, unsigned int dest) const;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
85
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
86 /** \brief Sets a pairwise migration rate
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
87 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
88 * It is not allowed to set a value on the diagonal (this
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
89 * would raise an exception). The method takes care of
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
90 * modifying the diagonal accordingly (still this is not
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
91 * relevant for the client);
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
92 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
93 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
94 void pairwiseMigrationRate(unsigned int source, unsigned int dest, double value);
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
95
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
96 /** \brief Sets the migration rate for all matrix
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
97 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
98 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
99 void migrationRate(double value);
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
100
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
101 /** \brief Gets a population size
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
102 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
103 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
104 double populationSize(unsigned int populationIndex) const;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
105
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
106 /** \brief Sets a population size
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
107 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
108 * The size must be strictly positive.
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
109 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
110 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
111 void populationSize(unsigned int populationIndex, double value);
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
112
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
113 /** \brief Gets a growth rate
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
114 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
115 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
116 double growthRate(unsigned int populationIndex) const;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
117
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
118 /** \brief Sets a growth rate
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
119 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
120 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
121 void growthRate(unsigned int populationIndex, double value);
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
122
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
123 /** \brief Gets the recombination rate
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
124 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
125 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
126 double recombinationRate() const;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
127
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
128 /** \brief Sets the recombination rate
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
129 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
130 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
131 void recombinationRate(double value);
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
132
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
133 /** \brief Gets the number of recombining segments
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
134 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
135 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
136 unsigned int numberOfSegments() const;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
137
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
138 /** \brief Sets the number of recombining segments
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
139 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
140 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
141 void numberOfSegments(unsigned int value);
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
142
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
143 /** \brief Gets the selfing rate
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
144 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
145 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
146 double selfingRate() const;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
147
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
148 /** \brief Sets the selfing rate
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
149 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
150 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
151 void selfingRate(double value);
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
152
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
153 /** \brief Adds a population to the model
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
154 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
155 * \param migr pairwise migration rate between other
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
156 * population and the new one.
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
157 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
158 * The parameters for the new population are equivalent to
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
159 * the default parameters.
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
160 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
161 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
162 void addPopulation(double migr);
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
163
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
164 /** \brief Adds a change
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
165 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
166 * The change can be of any type derived from Change. A
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
167 * const Change* must be passed, so ParamSet will neither
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
168 * modify or delete the object itself. All passed Change
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
169 * object must be kept available for use by ParamSet.
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
170 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
171 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
172 void addChange(const Change* change);
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
173
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
174 /** \brief Gets the date of the next change
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
175 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
176 * Returns -1 if no change is planned.
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
177 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
178 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
179 double nextChangeDate() const;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
180
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
181 /** \brief Applies the next change event
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
182 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
183 * \param controller the Change event might need to have
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
184 * access to simulation controller (to trigger coalescent
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
185 * events, for example).
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
186 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
187 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
188 void nextChangeDo(Controller* controller);
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
189
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
190 /** \brief Gets the number of single sample from a population
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
191 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
192 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
193 unsigned int singles(unsigned int populationIndex) const;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
194
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
195 /** \brief Sets the number of single sample from a population
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
196 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
197 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
198 void singles(unsigned int populationIndex, unsigned int value);
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
199
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
200 /** \brief Gets the number of double sample from a population
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
201 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
202 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
203 unsigned int doubles(unsigned int populationIndex) const;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
204
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
205 /** \brief Sets the number of double sample from a population
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
206 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
207 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
208 void doubles(unsigned int populationIndex, unsigned int value);
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
209
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
210 /** \brief Computes the total number of samples
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
211 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
212 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
213 unsigned int numberOfSamples() const;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
214
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
215 /** \brief Gives the date of the last size change
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
216 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
217 * \param populationIndex the index of the population.
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
218 * \return The date where the last change occurred, or 0. if
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
219 * no change occurred during the simulation.
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
220 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
221 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
222 double dateOfLastChange(unsigned int populationIndex) const;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
223
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
224
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
225 /** \brief Sets the date of the last size change
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
226 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
227 * \param populationIndex the index of the population.
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
228 * \param date the date where the last change occurred, or 0.
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
229 * if no change occurred during the simulation.
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
230 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
231 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
232 void dateOfLastChange(unsigned int populationIndex, double date) const;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
233
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
234
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
235 /** \brief Set groups labels
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
236 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
237 * Sets the group labels of the DataMatrix, according to the
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
238 * current state of population structure, and assuming that
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
239 * the DataMatrix was generated by the class Arg.
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
240 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
241 * \param dataMatrix the DataMatrix object to modify. The
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
242 * number of sequences must match the total number of samples
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
243 * defined by the ParamSet object this method is called on.
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
244 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
245 * \param labelIndividuals by default, labels the different
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
246 * samples depending on the population they come from (0
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
247 * being the label of the first population). If this flag is
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
248 * set to true, then the samples are labelled depending on
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
249 * the individual they come from, regardless of populations.
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
250 * In that case there can be only one or two genes for a
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
251 * given group label.
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
252 *
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
253 */
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
254 void setGroups(DataMatrix& dataMatrix, bool labelIndividuals=false);
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
255
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
256 private:
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
257
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
258 void clear();
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
259 void init();
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
260 void copy(const ParamSet&);
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
261
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
262 double _selfingRate;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
263 double _recombinationRate;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
264 unsigned int _numberOfSegments;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
265 unsigned int _numberOfPopulations;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
266 unsigned int* _singles;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
267 unsigned int* _doubles;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
268 double* _growthRates;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
269 double* _populationSize;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
270 double* _dateOfLastChange;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
271 double** migrationMatrix;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
272 unsigned int _numberOfChanges;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
273 unsigned int nextChangeIndex;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
274 Change const** changes;
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
275 };
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
276
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
277 }
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
278
420b57c3c185 Uploaded
dereeper
parents:
diff changeset
279 #endif