Description Usage Format Simulation Source Examples
This PDMP models the most simple situation of gene regulation,
where we have one gene and a constant activation rate without
a further regulation mechanism. Transcription and translation
are modeled separately which leads to a model wit two continous
variables (the first (f1
) representing the mRNA and the
second (f2
) representing the protein arising from translation).
In PROM, this model is referred to as Model K2,
therefore it is named genePdmpK2
and genePolyK2
here.
1 2 3 |
genePdmpK2
is an object of class pdmpModel
,
genePolyK2
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.01, k10 = 0.01, a1 = 1, b1 = 0.06, a2 = 0.5, b2 = 0.02
k01 = 0.01, k10 = 0.01, a1 = 1, b1 = 0.025, a2 = 0.5, b2 = 0.02
k01 = 0.01, k10 = 0.03, a1 = 1, b1 = 0.025, a2 = 0.5, b2 = 0.0025
The model, including most of the parameter sets, are described in [RajCo2006] and [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 | library(spray)
#------ code to generate the pdmpModel version -----
genePdmpK2 <- new("pdmpModel",
descr = "Model K2: constant activation with translation",
parms = list(b1 = 0.025, a1 = 1, k10 = 0.01, k01 = 0.01, a2 = 0.5, b2 = 0.02),
init = c(f1 = 0.5, f2 = 0, d = 1),
discStates = list(d = 0:1),
dynfunc = function(t, x, parms) {
df <- with(as.list(c(x, parms)), c(a1*d - b1*f1, a2*f1-b2*f2))
return(c(df, 0))
},
ratefunc = function(t, x, parms) {
return(with(as.list(c(x, parms)), switch(d + 1, k01, 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 -----
genePolyK2 <- new("polyPdmpModel",
descr = "Model K2: constant activation with translation (polynomial version)",
parms = list(b1 = 0.025, a1 = 1, k10 = 0.01, k01 = 0.01, a2 = 0.5, b2 = 0.02),
init = c(f1 = 0.5, f2 = 0, d = 1),
discStates = list(d = 0:1),
dynpolys = quote(list(
list(overall = linear(c(-b1, 0, a1))), #df1/dt = -b1f1 + a1d
list(overall = linear(c(a2, -b2, 0))) #df2/dt = a2f1 - b2f2
)),
ratepolys = quote(list(
list(k01,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 --------------
identical(sim(genePdmpK2, outSlot = FALSE, seed = 20),
sim(genePolyK2, outSlot = FALSE, seed = 20))
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.