This function produces a time series for all the observed variables in a
  kinetic model as specified by mkinmod, using a specific set of
  kinetic parameters and initial values for the state variables.
mkinpredict(mkinmod, odeparms, odeini, outtimes, solution_type = "deSolve", use_compiled = "auto", method.ode = "lsoda", atol = 1e-08, rtol = 1e-10, map_output = TRUE, ...)
mkinmod.
  mkinpredict to
    ode in case the solution type is "deSolve". The default
    "lsoda" is performant, but sometimes fails to converge.
  FALSE, no compiled version of the mkinmod
    model is used, even if is present.
  ode. Default is 1e-8,
    lower than in lsoda.
  ode. Default is 1e-10,
    much lower than in lsoda.
  A matrix in the same format as the output of ode.
SFO <- mkinmod(degradinol = list(type = "SFO")) # Compare solution types mkinpredict(SFO, c(k_degradinol_sink = 0.3), c(degradinol = 100), 0:20, solution_type = "analytical")#> time degradinol #> 1 0 100.0000000 #> 2 1 74.0818221 #> 3 2 54.8811636 #> 4 3 40.6569660 #> 5 4 30.1194212 #> 6 5 22.3130160 #> 7 6 16.5298888 #> 8 7 12.2456428 #> 9 8 9.0717953 #> 10 9 6.7205513 #> 11 10 4.9787068 #> 12 11 3.6883167 #> 13 12 2.7323722 #> 14 13 2.0241911 #> 15 14 1.4995577 #> 16 15 1.1108997 #> 17 16 0.8229747 #> 18 17 0.6096747 #> 19 18 0.4516581 #> 20 19 0.3345965 #> 21 20 0.2478752mkinpredict(SFO, c(k_degradinol_sink = 0.3), c(degradinol = 100), 0:20, solution_type = "deSolve")#> time degradinol #> 1 0 100.0000000 #> 2 1 74.0818221 #> 3 2 54.8811636 #> 4 3 40.6569660 #> 5 4 30.1194212 #> 6 5 22.3130160 #> 7 6 16.5298888 #> 8 7 12.2456428 #> 9 8 9.0717953 #> 10 9 6.7205513 #> 11 10 4.9787068 #> 12 11 3.6883167 #> 13 12 2.7323722 #> 14 13 2.0241911 #> 15 14 1.4995577 #> 16 15 1.1108996 #> 17 16 0.8229747 #> 18 17 0.6096747 #> 19 18 0.4516581 #> 20 19 0.3345965 #> 21 20 0.2478752mkinpredict(SFO, c(k_degradinol_sink = 0.3), c(degradinol = 100), 0:20, solution_type = "deSolve", use_compiled = FALSE)#> time degradinol #> 1 0 100.0000000 #> 2 1 74.0818221 #> 3 2 54.8811636 #> 4 3 40.6569660 #> 5 4 30.1194212 #> 6 5 22.3130160 #> 7 6 16.5298888 #> 8 7 12.2456428 #> 9 8 9.0717953 #> 10 9 6.7205513 #> 11 10 4.9787068 #> 12 11 3.6883167 #> 13 12 2.7323722 #> 14 13 2.0241911 #> 15 14 1.4995577 #> 16 15 1.1108996 #> 17 16 0.8229747 #> 18 17 0.6096747 #> 19 18 0.4516581 #> 20 19 0.3345965 #> 21 20 0.2478752mkinpredict(SFO, c(k_degradinol_sink = 0.3), c(degradinol = 100), 0:20, solution_type = "eigen")#> time degradinol #> 1 0 100.0000000 #> 2 1 74.0818221 #> 3 2 54.8811636 #> 4 3 40.6569660 #> 5 4 30.1194212 #> 6 5 22.3130160 #> 7 6 16.5298888 #> 8 7 12.2456428 #> 9 8 9.0717953 #> 10 9 6.7205513 #> 11 10 4.9787068 #> 12 11 3.6883167 #> 13 12 2.7323722 #> 14 13 2.0241911 #> 15 14 1.4995577 #> 16 15 1.1108997 #> 17 16 0.8229747 #> 18 17 0.6096747 #> 19 18 0.4516581 #> 20 19 0.3345965 #> 21 20 0.2478752# Compare integration methods to analytical solution mkinpredict(SFO, c(k_degradinol_sink = 0.3), c(degradinol = 100), 0:20, solution_type = "analytical")[21,]#> time degradinol #> 21 20 0.2478752mkinpredict(SFO, c(k_degradinol_sink = 0.3), c(degradinol = 100), 0:20, method = "lsoda")[21,]#> time degradinol #> 21 20 0.2478752mkinpredict(SFO, c(k_degradinol_sink = 0.3), c(degradinol = 100), 0:20, method = "ode45")[21,]#> time degradinol #> 21 20 0.2478752mkinpredict(SFO, c(k_degradinol_sink = 0.3), c(degradinol = 100), 0:20, method = "rk4")[21,]#> time degradinol #> 21 20 0.2480043# rk4 is not as precise here # The number of output times used to make a lot of difference until the # default for atol was adjusted mkinpredict(SFO, c(k_degradinol_sink = 0.3), c(degradinol = 100), seq(0, 20, by = 0.1))[201,]#> time degradinol #> 201 20 0.2478752mkinpredict(SFO, c(k_degradinol_sink = 0.3), c(degradinol = 100), seq(0, 20, by = 0.01))[2001,]#> time degradinol #> 2001 20 0.2478752# Check compiled model versions - they are faster than the eigenvalue based solutions! SFO_SFO = mkinmod(parent = list(type = "SFO", to = "m1"), m1 = list(type = "SFO"))#>system.time( print(mkinpredict(SFO_SFO, c(k_parent_m1 = 0.05, k_parent_sink = 0.1, k_m1_sink = 0.01), c(parent = 100, m1 = 0), seq(0, 20, by = 0.1), solution_type = "eigen")[201,]))#> time parent m1 #> 201 20 4.978707 27.46227#> user system elapsed #> 0.012 0.020 0.005system.time( print(mkinpredict(SFO_SFO, c(k_parent_m1 = 0.05, k_parent_sink = 0.1, k_m1_sink = 0.01), c(parent = 100, m1 = 0), seq(0, 20, by = 0.1), solution_type = "deSolve")[201,]))#> time parent m1 #> 201 20 4.978707 27.46227#> user system elapsed #> 0.000 0.020 0.003system.time( print(mkinpredict(SFO_SFO, c(k_parent_m1 = 0.05, k_parent_sink = 0.1, k_m1_sink = 0.01), c(parent = 100, m1 = 0), seq(0, 20, by = 0.1), solution_type = "deSolve", use_compiled = FALSE)[201,]))#> time parent m1 #> 201 20 4.978707 27.46227#> user system elapsed #> 0.032 0.000 0.035