modelF: Gene regulation with positive feedback

Description Usage Format Simulation Source Examples

Description

This PDMP models a gene regulation mechanism where we have one gene and a positive feedback loop. This means that the rate to unblock the gene depends on the concentration of the gene product f, where a high concentration leads to a higher rate and vice versa. 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 genePdmpF and genePolyF here.

Usage

1
2
3

Format

genePdmpF is an object of class pdmpModel,
genePolyF 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 model, including most of the parameter sets, are described in [Zeiser2009] and [ZeiserFranzLiebscher2000]. 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
library(spray)
#------ code to generate the pdmpModel version -----

genePdmpF <- new("pdmpModel",
   descr = "Model F: positive feedback",
   parms = list(b = 0.2, a = 7, k10 = 0.02, k01 = 0.02), 
   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, k10)))
   }, 
   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 -----

genePolyF <- new("polyPdmpModel",
     descr = "Model F: positive feedback (polynomial version)",
     parms = list(b = 0.2, a = 7, k10 = 0.02, k01 = 0.02), 
     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), k10)
     )),
     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(genePdmpF, outSlot = FALSE, seed = 40),
          sim(genePolyF, outSlot = FALSE, seed = 40))

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