modelKF: Gene regulation with positive feedback and constant rates

Description Usage Format Simulation Source Examples

Description

This PDMP models a gene regulation mechanism similar to genePolyF, where we have one gene and a positive feedback loop. The rate to unblock the gene depends on the concentration of the gene product f, but it is never zero because there is an additional rate that is independet of f. Transcription and translation are considered as one step and are not modeled separately. In PROM, this model is referred to as Model F+, therefore it is named genePdmpKF and genePolyKF here.

Usage

1
2
3

Format

genePdmpKF is an object of class pdmpModel,
genePolyKF is an object of class polyPdmpModel.

Simulation

The simulations in PROM were done with slot times set to

The following parameter sets were simulated:

Source

The parameter values do not rely on real data.

Examples

 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
library(spray)
#------ code to generate the pdmpModel version -----

genePdmpKF <- new("pdmpModel",
                 descr = "Model KF: positive feedback with constant rate",
                 parms = list(b = 0.2, a = 7, k10 = 0.02, k01 = 0.02,
                               m01 = 0.01, m10 = 0.01), 
                 init = c(f = 1, d = 1),
                 discStates = list(d = 0:1),
                 dynfunc = function(t, x, parms) {
                   df <- with(as.list(c(x, parms)), {a*d - b*f})
                   return(c(df, 0))
                 }, 
                 ratefunc = function(t, x, parms) {
                   return(with(as.list(c(x, parms)), 
                               switch(d + 1, k01*f + m01, k10 + m10)))
                 }, 
                 jumpfunc = function(t, x, parms, jtype) {
                   c(x[1], 1 - x[2])
                 }, 
                 times = c(from = 0, to = 100, by = 0.1), 
                 solver = "lsodar")

#------ code to generate the polyPdmpModel version -----

genePolyKF <- new("polyPdmpModel",
                 descr = "Model KF: positive feedback with constant rate (polynomial version)",
                 parms = list(b = 0.2, a = 7, k10 = 0.02, k01 = 0.02,
                               m01 = 0.01, m10 = 0.01), 
                 init = c(f = 1, d = 1), 
                 discStates = list(d = 0:1),
                 dynpolys = quote(list(
                   list(overall = linear(c(-b,a)))
                 )),
                 ratepolys = quote(list(  
                   list(k01*lone(1,2) + m01, k10 + m10)
                 )),
                 jumpfunc = function(t, x, parms, jtype) {
                   c(x[1], 1 - x[2])
                 }, 
                 times = c(from = 0, to = 100, by = 0.1), 
                 solver = "lsodar")

#------- comparison of the models --------------

identical(sim(genePdmpKF, outSlot = FALSE, seed = 20),
          sim(genePolyKF, outSlot = FALSE, seed = 20))

CharlotteJana/pdmppoly documentation built on Sept. 4, 2019, 4:40 p.m.