Lattice Microbes 2.5
This is for whole cell modeling
Loading...
Searching...
No Matches
SelfRegulatingGeneSwitch.h
Go to the documentation of this file.
1/*
2 * University of Illinois Open Source License
3 * Copyright 2010-2018 Luthey-Schulten Group,
4 * All rights reserved.
5 *
6 * Developed by: Luthey-Schulten Group
7 * University of Illinois at Urbana-Champaign
8 * http://www.scs.uiuc.edu/~schulten
9 *
10 * Permission is hereby granted, free of charge, to any person obtaining a copy of
11 * this software and associated documentation files (the Software), to deal with
12 * the Software without restriction, including without limitation the rights to
13 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
14 * of the Software, and to permit persons to whom the Software is furnished to
15 * do so, subject to the following conditions:
16 *
17 * - Redistributions of source code must retain the above copyright notice,
18 * this list of conditions and the following disclaimers.
19 *
20 * - Redistributions in binary form must reproduce the above copyright notice,
21 * this list of conditions and the following disclaimers in the documentation
22 * and/or other materials provided with the distribution.
23 *
24 * - Neither the names of the Luthey-Schulten Group, University of Illinois at
25 * Urbana-Champaign, nor the names of its contributors may be used to endorse or
26 * promote products derived from this Software without specific prior written
27 * permission.
28 *
29 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
30 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
31 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
32 * THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
33 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
34 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
35 * OTHER DEALINGS WITH THE SOFTWARE.
36 *
37 * Author(s): Elijah Roberts
38 */
39
40#ifndef LM_CME_SELFREGULATINGGENESWITCH_H_
41#define LM_CME_SELFREGULATINGGENESWITCH_H_
42
43#include <cmath>
44#include <map>
45#include <string>
47#include "ParameterValues.pb.h"
48
49using std::string;
50using std::map;
51using lm::io::ParameterValues;
52
53namespace lm {
54namespace cme {
55
57{
58protected:
60 {
61 OUKHillPropensityArgs(uint xi, uint oui, double kmin, double kmax, double x50, double noiseVariance, double noiseTau, RandomGenerator * rng):xi(xi),oui(oui),kmin(kmin),dk(kmax-kmin),x50sq(x50*x50),noiseVariance(noiseVariance),noiseTau(noiseTau),noise(0.0),lastOUJumpNumber(0),previousTime(0.0),rng(rng),rngNext(TUNE_LOCAL_RNG_CACHE_SIZE) {}
65 double kmin;
66 double dk;
67 double x50sq;
69 double noiseTau;
70 double noise;
74 double normRngValues[TUNE_LOCAL_RNG_CACHE_SIZE];
76 };
77
78public:
81 virtual bool needsReactionModel() {return false;}
82 virtual bool needsDiffusionModel() {return false;}
83 virtual void generateTrajectory();
84
85protected:
86 static double ouKHillPropensity(double time, uint * speciesCounts, void * pargs);
87};
88
89}
90}
91
92#endif
unsigned int uint
Definition Types.h:52
uint * speciesCounts
Definition CMESolver.h:275
NextReactionSolver()
Definition NextReactionSolver.cpp:79
static double ouKHillPropensity(double time, uint *speciesCounts, void *pargs)
Definition SelfRegulatingGeneSwitch.cpp:133
virtual bool needsDiffusionModel()
Tells whether the solver needs a reaction model.
Definition SelfRegulatingGeneSwitch.h:82
SelfRegulatingGeneSwitch()
Definition SelfRegulatingGeneSwitch.cpp:67
virtual ~SelfRegulatingGeneSwitch()
Definition SelfRegulatingGeneSwitch.cpp:72
virtual void generateTrajectory()
Actually run the simulation.
Definition SelfRegulatingGeneSwitch.cpp:76
virtual bool needsReactionModel()
Tells whether the solver needs a reaction model.
Definition SelfRegulatingGeneSwitch.h:81
Base class for random number generators in Lattice Microbes.
Definition RandomGenerator.h:51
Definition CMESolver.cpp:72
Definition Capsule.cpp:46
double noiseTau
Definition SelfRegulatingGeneSwitch.h:69
uint xi
Definition SelfRegulatingGeneSwitch.h:63
~OUKHillPropensityArgs()
Definition SelfRegulatingGeneSwitch.h:62
double noise
Definition SelfRegulatingGeneSwitch.h:70
OUKHillPropensityArgs(uint xi, uint oui, double kmin, double kmax, double x50, double noiseVariance, double noiseTau, RandomGenerator *rng)
Definition SelfRegulatingGeneSwitch.h:61
double x50sq
Definition SelfRegulatingGeneSwitch.h:67
uint lastOUJumpNumber
Definition SelfRegulatingGeneSwitch.h:71
double noiseVariance
Definition SelfRegulatingGeneSwitch.h:68
double dk
Definition SelfRegulatingGeneSwitch.h:66
double previousTime
Definition SelfRegulatingGeneSwitch.h:72
double normRngValues[TUNE_LOCAL_RNG_CACHE_SIZE]
Definition SelfRegulatingGeneSwitch.h:74
int rngNext
Definition SelfRegulatingGeneSwitch.h:75
uint oui
Definition SelfRegulatingGeneSwitch.h:64
RandomGenerator * rng
Definition SelfRegulatingGeneSwitch.h:73
double kmin
Definition SelfRegulatingGeneSwitch.h:65