Извлечение результатов из odeModel? - PullRequest
1 голос
/ 14 апреля 2020

Мне не удалось получить объект df в качестве выходных данных (чтобы я мог подмножество / настраивать каждый график). Я также читал, что можно извлечь результаты, используя функцию «out», но я не получил ее на работу. Может ли кто-нибудь помочь мне с этим?

'' *

library(simecol)

library(latticeExtra)

Figure_7B <- odeModel(
main = function(time, init, parms) {
with(as.list(c(init, parms)),{

# Computing derivatives
dm  <- -k1*eT*m         
dmP <-  k1*eT*m    
 dE  <- -k2*E*mP         
 dEP <-  k2*mP*E  + (k3*EP)*(dE - TE - S) + k3r*TE 
 dDE <- +k3*EP*DE - k3r*TE
 dTE <-  (k3*EP)*(DE - TE - S) - k3r*TE - k7*TE*A 
 dME <-  k4*TE - d1*ME
 dDA <- +k5*EP*DA - k5r*TA
 dTA <-  k5*EP*DA - k5r*TA
 dMA <-  (k6*EP)/(EP + k5) - d2*MA
 dA  <-  k8*MA + k7*TE*A + d3*A
 dS  <-  k7*TE*A

return(list(c(dm, dmP, dE, dEP, dDE, dTE, dME, dDA, dTA, dMA, dA, dS)))

})
},

# Set parameters or constants

  parms = c(k1 = 8.3e-3,
        eT = 100, 
        k2 = 1.28e5,
        k3 = 1e5, 
        k3r = 5e-2, 
        k4 = 6.89e-15,
        k5  = 0.5e-6, 
        k5r = 5e-2, 
        k6 = 1.03e-15, 
        k7 = 1e5,
        k8 = 0.25, 
        d1 = 8.89e-4,      
        d2 = 2.36e-4,     
        d3 = 2.36e-4),

# Set integrations times
  times = c(from=0, to=10, by = 0.25),

# Set initial state
  init = c(
m = 130e-7,
mP = 0,  
E = 130e-7, 
EP = 0,   
DE = 3.32e-11, 
TE = 0,  
ME = 1e-12, 
DA = 3.32e-11, 
TA = 0, 
MA = 0,
A = 0, 
S = 0),


solver = "lsoda"

)

'' '

' ''

library(deSolve)

Figure_7B <- sim(Figure_7B)

plot(Figure_7B)

'' '

1 Ответ

1 голос
/ 15 апреля 2020

Попробуйте следующее:

Figure_7B <- sim(Figure_7B)
plot(Figure_7B)
df <- out(Figure_7B)
head(df)

Объяснение: Объект, возвращаемый sim (), содержит все входные данные (полная модель Figure_7B) плюс выходные данные. Части модели могут быть извлечены с помощью функций доступа к слотам, например:

times(Figure_7B)
main(Figure_7B)

out(Figure_7B)

Надеюсь, это поможет.

...