Description Usage Format Simulation Source Examples
This PDMP models the most a gene regulation mechanism where we have one gene
and a positive feedback loop. The activator however is not the gene product
itself but a dimer of two molecules of the genproduct. This means that we
have two continous variables f
and fd
where f
represents
the gene product and fd
the concentration of the dimerized gene
product. Transcription and translation are considered as one step and are not
modeled separately. In PROM, this model is referred to as Model DF,
therefore it is named genePdmpDF
and genePolyDF
here.
1 2 3 |
genePdmpDF
is an object of class pdmpModel
,
genePolyDF
is an object of class polyPdmpModel
.
The simulations in PROM were done with slot times
set to
from = 0, to = 1000, by = 0.1.
The following parameter sets were simulated:
k01 = 0.02, k10 = 0.02, a = 1, b = 0.2, m21 = 0.1, m12 = 0.05
k01 = 0.02, k10 = 0.02, a = 1, b = 0.3, m21 = 0.1, m12 = 0.05
k01 = 0.02, k10 = 0.02, a = 1, b = 0.4, m21 = 0.1, m12 = 0.05
k01 = 0.02, k10 = 0.02, a = 1, b = 0.5, m21 = 0.1, m12 = 0.05
The model, including most of the parameter sets, are described in [Zeiser2009]. The parameter values do not rely on real data.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #------ code to generate the pdmpModel version -----
genePdmpDF <- new("pdmpModel",
descr = "Model DF: dimers + positive feedback",
parms = list(b = 1, a = 1, k01 = 1, k10 = 1, m21 = 1, m12 = 1),
init = c(f = 1, fd = 0.5, d = 1),
discStates = list(d = 0:1),
dynfunc = function(t, x, parms) {
df <- with(as.list(c(x, parms)),
c(-2*m21*f^2 + 2*m12*fd - b*f + d*a,
m21*f^2 - m12*fd))
return(c(df, 0))
},
ratefunc = function(t, x, parms) {
return(with(as.list(c(x, parms)),
c(switch(d+1, k01*fd, k10))))
},
jumpfunc = function(t, x, parms, jtype) {
c(x[1:2], 1 - x[3])
},
times = c(from = 0, to = 100, by = 0.1),
solver = "lsodar")
#------ code to generate the polyPdmpModel version -----
library("spray")
genePolyDF <- new("polyPdmpModel",
descr = "Model DF: dimers + positive feedback (polynomial version)",
parms = list(b = 1, a = 1, k01 = 1, k10 = 1, m21 = 1, m12 = 1),
init = c(f = 1, fd = 0.5, d = 1),
discStates = list(d = 0:1),
dynpolys = quote(list(
list(overall = linear(c(-2*m21, 0, 0), 2) + linear(c(-b, 2*m12, a))),
list(overall = linear(c(m21, 0, 0), 2) - m12*lone(2,3))
)),
ratepolys = quote(list(
list(k01*lone(2,3), k10)
)),
jumpfunc = function(t, x, parms, jtype){
c(x[1:2], 1 - x[3])
},
times = c(from = 0, to = 100, by = 0.1),
solver = "lsodar")
#------- comparison of the models --------------
all.equal(sim(genePdmpDF, outSlot = FALSE, seed = 12),
sim(genePolyDF, outSlot = FALSE, seed = 12))
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.