[R] deSolve, extracting variable values from inside ode function
Berend Hasselman
bhh at xs4all.nl
Tue Aug 16 16:23:00 CEST 2011
jamaas wrote:
>
> I'm just getting to grips with using ode function and have used the
> examples and vignettes to produce a small model of a one-pool,
> michaelis-menten, enzyme kinetic reaction. The rate of flux of substrate
> into pool A is constant (fluxoa) however the rate of flux out of pool A
> is controlled by the HMM equation (v = Vmax/ ( 1 + (Km / Concentration A
> )) ). This function works fine and gives correct answers for the
> size of the pool of quantity of substrate in pool A at all times,
> however if possible I'd like to also extract the values of interim
> variables at each time t. Could anyone give me a clue of how to include
> the value of CA at each time t, along with QA in the results?
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
>
> Thanks
>
> Jim
>
> R code
> ==================
> parameters <- c(vola = 17.3629, vmax = 4.7, mmk = 0.5435, fluxoa =
> 2.389)
> state <- c(QA=9.437)
>
> MM <- function(t, state, parameters) {
> with(as.list(c(state, parameters)),{
> ## concentration of substrate in pool A, quantity
> ## divided by the volume of the solvent pool
> CA <- QA/vola
> ## output of substrate from pool A
> fluxao <- vmax / (1 + (mmk/CA))
> ## rate of change of quantity of substrate
> ## in pool A
> dA <- fluxoa - fluxao
> ## return the rate of change
> list(dA)
> })
> }
>
> times <- seq(0, 100, by = 5)
> library(deSolve)
> out1 <- ode(y = state, times = times, func = MM, parms = parameters)
> head(out1)
>
See this very recent post on R-help:
http://r.789695.n4.nabble.com/deSolve-output-td3738970.html
And a reply: http://r.789695.n4.nabble.com/deSolve-output-td3740431.html
Modify your function to this
MM <- function(t, state, parameters) {
with(as.list(c(state, parameters)),{
## concentration of substrate in pool A, quantity
## divided by the volume of the solvent pool
CA <- QA/vola
## output of substrate from pool A
fluxao <- vmax / (1 + (mmk/CA))
## rate of change of quantity of substrate
## in pool A
dA <- fluxoa - fluxao
## return the rate of change
list(dA, CA=CA) ### <<<=== Add stuff at the end
})
}
It is in the documentation for ode (in the description of "func")
Berend
--
View this message in context: http://r.789695.n4.nabble.com/deSolve-extracting-variable-values-from-inside-ode-function-tp3746701p3747362.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list