1 // $Id: defaults.h,v 1.62 2012/04/26 23:54:36 ewalkup Exp $ 2 3 #ifndef DEFAULTS_H 4 #define DEFAULTS_H 5 6 #include <ctime> 7 #include <string> 8 #include "constants.h" 9 #include "local_build.h" 10 #include "vectorx.h" 11 12 using std::string; 13 14 class defaults 15 { 16 // Default values -- you can change these, but it is easier to 17 // code your defaults into your input data file. 18 19 public: 20 21 // Whether or not the user expects 'site 0' in their output 22 static const bool convert_output_to_eliminate_zeroes; 23 24 // minimal mutation rate 25 static const double minMuRate; 26 27 // parameters 28 static const double theta; 29 static const double migration; 30 static const double divMigration; 31 static const double disease; 32 static const double recombinationRate; 33 static const double growth; 34 static const double logisticSelection; 35 static const double gammaOverRegions; // equals alpha, which equals the 36 // scaled shape parameter of a gamma distribution over regions 37 // of the background mutation rate 38 static const double epochtime; 39 40 // disease location 41 static const long diseaseLocation; 42 43 // growth approximation type 44 static const growth_type growType; 45 // selection approximation type 46 static const selection_type selectionType; 47 48 // maximum events 49 static const long coalEvents; 50 static const long migEvents; 51 static const long divMigEvents; 52 static const long diseaseEvents; 53 static const long recEvents; 54 static const long growEvents; 55 static const long lselectEvents; 56 static const long epochEvents; 57 58 // methods 59 static const method_type thetaMethod; 60 static const method_type migMethod; 61 static const method_type divMigMethod; 62 static const method_type diseaseMethod; 63 static const method_type recMethod; 64 static const method_type growMethod; 65 static const method_type lselectMethod; 66 static const method_type divMethod; 67 68 // Do a bayesian analysis 69 static const bool useBayesianAnalysis; 70 71 // bayesian prior default boundaries 72 static const double lowerboundTheta; 73 static const double upperboundTheta; 74 static const double lowerboundMig; 75 static const double upperboundMig; 76 static const double lowerboundDivMig; 77 static const double upperboundDivMig; 78 static const double lowerboundDisease; 79 static const double upperboundDisease; 80 static const double lowerboundRec; 81 static const double upperboundRec; 82 static const double lowerboundGrowth; 83 static const double upperboundGrowth; 84 static const double lowerboundLSelect; 85 static const double upperboundLSelect; 86 static const double lowerboundEpoch; 87 static const double upperboundEpoch; 88 89 #ifdef LAMARC_NEW_FEATURE_RELATIVE_SAMPLING 90 // default relative sampling rate 91 static const long samplingRate; 92 #endif 93 94 // bayesian prior default types 95 static const priortype priortypeTheta; 96 static const priortype priortypeMig; 97 static const priortype priortypeDivMig; 98 static const priortype priortypeDisease; 99 static const priortype priortypeRec; 100 static const priortype priortypeGrowth; 101 static const priortype priortypeLSelect; 102 static const priortype priortypeEpoch; 103 104 // Min/Max allowable values for bayesian priors. Used both in 105 // prior_interface.cpp and ui_vars_prior.cpp 106 static const double minboundTheta; 107 static const double maxboundTheta; 108 static const double minboundMig; 109 static const double maxboundMig; 110 static const double minboundDivMig; 111 static const double maxboundDivMig; 112 static const double minboundDisease; 113 static const double maxboundDisease; 114 static const double minboundRec; 115 static const double maxboundRec; 116 static const double minboundGrowth; 117 static const double maxboundGrowth; 118 static const double minboundLSelect; 119 static const double maxboundLSelect; 120 static const double minboundEpoch; 121 static const double maxboundEpoch; 122 123 // maximum allowable values for initial parameter estimates 124 static const double maxTheta; 125 static const double minTheta; 126 static const double maxMigRate; 127 static const double minMigRate; 128 static const double maxDivMigRate; 129 static const double minDivMigRate; 130 static const double maxDiseaseRate; 131 static const double minDiseaseRate; 132 static const double maxRecRate; 133 static const double minRecRate; 134 static const double maxGrowRate; 135 static const double minGrowRate; 136 static const double maxLSelectCoeff; 137 static const double minLSelectCoeff; 138 static const double minGammaOverRegions; 139 static const double maxGammaOverRegions; // equals alpha, which equals 140 // the shape parameter of a gamma distribution over regions 141 // of the background mutation rate 142 static const double minEpoch; 143 static const double maxEpoch; 144 145 // maximum allowable values during parameter estimation (maximization) 146 static const double maximization_maxTheta; 147 static const double maximization_minTheta; 148 static const double maximization_maxMigRate; 149 static const double maximization_minMigRate; 150 static const double maximization_maxDivMigRate; 151 static const double maximization_minDivMigRate; 152 static const double maximization_maxDiseaseRate; 153 static const double maximization_minDiseaseRate; 154 static const double maximization_maxRecRate; 155 static const double maximization_minRecRate; 156 static const double maximization_maxGrowRate; 157 static const double maximization_minGrowRate; 158 static const double maximization_maxLSelectCoeff; 159 static const double maximization_minLSelectCoeff; 160 static const double maximization_minGammaOverRegions; 161 static const double maximization_maxGammaOverRegions; // equals alpha, 162 // which equals the shape parameter of a gamma distribution over regions 163 // of the background mutation rate 164 static const double maximization_minEpoch; 165 static const double maximization_maxEpoch; 166 167 // arrangers 168 static const double dropArrangerTiming; 169 static const double sizeArrangerTiming; 170 static const double haplotypeArrangerTiming; 171 static const double probhapArrangerTiming; 172 static const double bayesianArrangerTiming; 173 174 // temperature 175 static const long temperatureInterval; 176 static const bool useAdaptiveTemperatures; 177 static const double minTemperature; 178 static const double secondTemperature; 179 180 // chains 181 static const long initial; 182 static const long initNChains; 183 static const long initNSamples; 184 static const long initInterval; 185 static const long initDiscard; 186 187 static const long final; 188 static const long finalNChains; 189 static const long finalNSamples; 190 static const long finalInterval; 191 static const long finalDiscard; 192 // replicates 193 static const long replicates; 194 static const long geyeriters; 195 196 //Max num heated chains. 197 static const long maxNumHeatedChains; 198 199 // error conditions 200 static const long tooManyDeNovo; // we give up; we can't make a denovo tree 201 202 // default user params for profiling 203 static const bool doProfile; 204 static const proftype profileType; 205 206 // default group parameter status 207 static const pstatus groupPstat; 208 209 //Parameters for profiling estimation 210 static const double highvalTheta; 211 static const double lowvalTheta; 212 static const double highmultTheta; 213 static const double lowmultTheta; 214 215 static const double highvalMig; 216 static const double lowvalMig; 217 static const double highmultMig; 218 static const double lowmultMig; 219 220 static const double highvalDisease; 221 static const double lowvalDisease; 222 static const double highmultDisease; 223 static const double lowmultDisease; 224 225 static const double highvalRec; 226 static const double lowvalRec; 227 static const double highmultRec; 228 static const double lowmultRec; 229 230 static const double highvalGrowth; 231 static const double lowvalGrowth; 232 static const double highmultGrowth; 233 static const double lowmultGrowth; 234 235 static const double highvalLSelect; 236 static const double lowvalLSelect; 237 static const double highmultLSelect; 238 static const double lowmultLSelect; 239 240 static const double highvalGammaOverRegions; 241 static const double lowvalGammaOverRegions; 242 static const double highmultGammaOverRegions; 243 static const double lowmultGammaOverRegions; // equals alpha, which equals 244 // the shape parameter of a gamma distribution over regions 245 // of the background mutation rate 246 247 static const double highvalEpoch; 248 static const double lowvalEpoch; 249 static const double highmultEpoch; 250 static const double lowmultEpoch; 251 252 // defaults for datamodels 253 static const long nucleotideBins; 254 // default number of bins for allelic and microsat stepwise models 255 static const long bins; 256 // default number of bins for brownian model 257 static const long brownianBins; 258 // default maximum seperation (functionally) allowed between any 259 // two alleles in a microsat stepwise model 260 static const long threshhold; 261 static const long step_allowance; 262 static const long mixedks_allowance; 263 264 static const string startMethod; 265 266 // default values for userparams 267 static const string curvefileprefix; 268 static const string mapfileprefix; 269 static const string reclocfileprefix; 270 static const string tracefileprefix; 271 static const string newicktreefileprefix; 272 #ifdef LAMARC_QA_TREE_DUMP 273 static const string argfileprefix; 274 #endif 275 276 static const string datafilename; 277 static const string profileprefix; 278 static const string resultsfilename; 279 static const string treesuminfilename; 280 static const string treesumoutfilename; 281 static const string xmloutfilename; 282 static const string xmlreportfilename; 283 284 static const verbosity_type verbosity; 285 static const verbosity_type progress; 286 287 static const time_t programstarttime; 288 static const long randomseed; 289 static const bool hasoldrandomseed; 290 291 static const bool plotpost; 292 static const bool readsumfile; 293 static const bool useoldrandomseed; 294 static const bool usesystemclock; 295 static const bool writecurvefiles; 296 static const bool writereclocfiles; 297 static const bool writetracefiles; 298 static const bool writenewicktreefiles; 299 #ifdef LAMARC_QA_TREE_DUMP 300 static const bool writeargfiles; 301 static const bool writemanyargs; 302 #endif // LAMARC_QA_TREE_DUMP 303 static const bool writesumfile; 304 305 // default values for regions 306 static const double effpopsize; 307 308 // default values for data models 309 310 static const double minLegalFrequency; 311 312 static const ModelTypeVec1d allDataModels(); 313 static const model_type dataModelType; 314 static const bool doNormalize; 315 static const double autoCorrelation; 316 static const double ttratio; 317 static const bool calcFreqsFromData; 318 static const double categoryProbability; 319 static const DoubleVec1d categoryProbabilities(); 320 static const double categoryRate; 321 static const double categoryRateMultiple; 322 static const DoubleVec1d categoryRates(); 323 static const DoubleVec1d chainTemperatures(); 324 static const double baseFrequencyA; 325 static const double baseFrequencyC; 326 static const double baseFrequencyG; 327 static const double baseFrequencyT; 328 static const double gtrRateAC; 329 static const double gtrRateAG; 330 static const double gtrRateAT; 331 static const double gtrRateCG; 332 static const double gtrRateCT; 333 static const double gtrRateGT; 334 static const double relativeMuRate; 335 static const double KS_alpha; 336 static const bool optimize_KS_alpha; 337 static const long numCategories; 338 339 static const long maxNumCategories; 340 341 static const double per_base_error_rate; 342 343 // default stick-joint length 344 static const double perThetaChange; 345 346 // default maximum number of "semi-unique" concurrent branches in 347 // all trees 348 static const long numSemiUniqueBranches; 349 #ifdef LAMARC_QA_SINGLE_DENOVOS 350 static const long numDenovos; 351 #endif // LAMARC_QA_SINGLE_DENOVOS 352 }; 353 354 #endif // DEFAULTS_H 355 356 //____________________________________________________________________________________ 357