diff options
-rw-r--r-- | DESCRIPTION | 2 | ||||
-rw-r--r-- | R/mkinmod.R | 117 | ||||
-rw-r--r-- | man/CAKE_export.Rd | 21 | ||||
-rw-r--r-- | man/add_err.Rd | 12 | ||||
-rw-r--r-- | man/confint.mkinfit.Rd | 17 | ||||
-rw-r--r-- | man/lrtest.mkinfit.Rd | 2 | ||||
-rw-r--r-- | man/mkinds.Rd | 35 | ||||
-rw-r--r-- | man/mkinerrplot.Rd | 19 | ||||
-rw-r--r-- | man/mkinfit.Rd | 33 | ||||
-rw-r--r-- | man/mkinmod.Rd | 9 | ||||
-rw-r--r-- | man/mkinpredict.Rd | 57 | ||||
-rw-r--r-- | man/mkinresplot.Rd | 18 | ||||
-rw-r--r-- | man/mmkin.Rd | 11 | ||||
-rw-r--r-- | man/plot.mkinfit.Rd | 55 | ||||
-rw-r--r-- | man/plot.mmkin.Rd | 17 | ||||
-rw-r--r-- | man/summary.mkinfit.Rd | 6 | ||||
-rw-r--r-- | man/transform_odeparms.Rd | 16 |
17 files changed, 304 insertions, 143 deletions
diff --git a/DESCRIPTION b/DESCRIPTION index 0bc78ed2..bd6a0a09 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -27,4 +27,4 @@ Encoding: UTF-8 VignetteBuilder: knitr BugReports: http://github.com/jranke/mkin/issues URL: https://pkgdown.jrwb.de/mkin -RoxygenNote: 6.1.1 +RoxygenNote: 7.0.2 diff --git a/R/mkinmod.R b/R/mkinmod.R index a1ae0021..cf618525 100644 --- a/R/mkinmod.R +++ b/R/mkinmod.R @@ -364,79 +364,76 @@ mkinmod <- function(..., use_of_ff = "min", speclist = NULL, quiet = FALSE, verb model$coefmat <- m }#}}} - # Try to create a function compiled from C code if more than one observed {{{ - # variable and gcc is available + # Try to create a function compiled from C code if >1 observed variable {{{ if (length(obs_vars) > 1) { - if (Sys.which("gcc") != "") { - # Translate the R code for the derivatives to C code - diffs.C <- paste(diffs, collapse = ";\n") - diffs.C <- paste0(diffs.C, ";") + # Translate the R code for the derivatives to C code + diffs.C <- paste(diffs, collapse = ";\n") + diffs.C <- paste0(diffs.C, ";") - # HS - diffs.C <- gsub(HS_decline, "(time <= tb ? k1 : k2)", diffs.C, fixed = TRUE) + # HS + diffs.C <- gsub(HS_decline, "(time <= tb ? k1 : k2)", diffs.C, fixed = TRUE) - for (i in seq_along(diffs)) { - state_var <- names(diffs)[i] + for (i in seq_along(diffs)) { + state_var <- names(diffs)[i] - # IORE - if (state_var %in% obs_vars) { - if (spec[[state_var]]$type == "IORE") { - diffs.C <- gsub(paste0(state_var, "^N_", state_var), - paste0("pow(y[", i - 1, "], N_", state_var, ")"), - diffs.C, fixed = TRUE) - } + # IORE + if (state_var %in% obs_vars) { + if (spec[[state_var]]$type == "IORE") { + diffs.C <- gsub(paste0(state_var, "^N_", state_var), + paste0("pow(y[", i - 1, "], N_", state_var, ")"), + diffs.C, fixed = TRUE) } + } - # Replace d_... terms by f[i-1] - # First line - pattern <- paste0("^d_", state_var) - replacement <- paste0("\nf[", i - 1, "]") - diffs.C <- gsub(pattern, replacement, diffs.C) - # Other lines - pattern <- paste0("\\nd_", state_var) - replacement <- paste0("\nf[", i - 1, "]") - diffs.C <- gsub(pattern, replacement, diffs.C) + # Replace d_... terms by f[i-1] + # First line + pattern <- paste0("^d_", state_var) + replacement <- paste0("\nf[", i - 1, "]") + diffs.C <- gsub(pattern, replacement, diffs.C) + # Other lines + pattern <- paste0("\\nd_", state_var) + replacement <- paste0("\nf[", i - 1, "]") + diffs.C <- gsub(pattern, replacement, diffs.C) - # Replace names of observed variables by y[i], - # making the implicit assumption that the observed variables only occur after "* " - pattern <- paste0("\\* ", state_var) - replacement <- paste0("* y[", i - 1, "]") - diffs.C <- gsub(pattern, replacement, diffs.C) - } + # Replace names of observed variables by y[i], + # making the implicit assumption that the observed variables only occur after "* " + pattern <- paste0("\\* ", state_var) + replacement <- paste0("* y[", i - 1, "]") + diffs.C <- gsub(pattern, replacement, diffs.C) + } - derivs_sig <- signature(n = "integer", t = "numeric", y = "numeric", - f = "numeric", rpar = "numeric", ipar = "integer") + derivs_sig <- signature(n = "integer", t = "numeric", y = "numeric", + f = "numeric", rpar = "numeric", ipar = "integer") - # Declare the time variable in the body of the function if it is used - derivs_code <- if (spec[[1]]$type %in% c("FOMC", "DFOP", "HS")) { - paste0("double time = *t;\n", diffs.C) - } else { - diffs.C - } + # Declare the time variable in the body of the function if it is used + derivs_code <- if (spec[[1]]$type %in% c("FOMC", "DFOP", "HS")) { + paste0("double time = *t;\n", diffs.C) + } else { + diffs.C + } - # Define the function initializing the parameters - npar <- length(parms) - initpar_code <- paste0( - "static double parms [", npar, "];\n", - paste0("#define ", parms, " parms[", 0:(npar - 1), "]\n", collapse = ""), - "\n", - "void initpar(void (* odeparms)(int *, double *)) {\n", - " int N = ", npar, ";\n", - " odeparms(&N, parms);\n", - "}\n\n") + # Define the function initializing the parameters + npar <- length(parms) + initpar_code <- paste0( + "static double parms [", npar, "];\n", + paste0("#define ", parms, " parms[", 0:(npar - 1), "]\n", collapse = ""), + "\n", + "void initpar(void (* odeparms)(int *, double *)) {\n", + " int N = ", npar, ";\n", + " odeparms(&N, parms);\n", + "}\n\n") - # Try to build a shared library - cf <- try(cfunction(list(func = derivs_sig), derivs_code, - otherdefs = initpar_code, - verbose = verbose, - convention = ".C", language = "C"), - silent = TRUE) + # Try to build a shared library + cf <- try(cfunction(list(func = derivs_sig), derivs_code, + otherdefs = initpar_code, + verbose = verbose, + convention = ".C", language = "C"), + silent = TRUE) - if (!inherits(cf, "try-error")) { - if (!quiet) message("Successfully compiled differential equation model from auto-generated C code.") - model$cf <- cf - } + if (!inherits(cf, "try-error")) { + if (!quiet) message("Successfully compiled differential equation model from auto-generated C code.") + model$cf <- cf } } # }}} diff --git a/man/CAKE_export.Rd b/man/CAKE_export.Rd index 142b4a75..4bcd8581 100644 --- a/man/CAKE_export.Rd +++ b/man/CAKE_export.Rd @@ -4,12 +4,21 @@ \alias{CAKE_export} \title{Export a list of datasets format to a CAKE study file} \usage{ -CAKE_export(ds, map = c(parent = "Parent"), links = NA, - filename = "CAKE_export.csf", path = ".", overwrite = FALSE, - study = "Codlemone aerobic soil degradation", description = "", - time_unit = "days", res_unit = "\% AR", - comment = "Created using mkin::CAKE_export", date = Sys.Date(), - optimiser = "IRLS") +CAKE_export( + ds, + map = c(parent = "Parent"), + links = NA, + filename = "CAKE_export.csf", + path = ".", + overwrite = FALSE, + study = "Codlemone aerobic soil degradation", + description = "", + time_unit = "days", + res_unit = "\% AR", + comment = "Created using mkin::CAKE_export", + date = Sys.Date(), + optimiser = "IRLS" +) } \arguments{ \item{ds}{A named list of datasets in long format as compatible with diff --git a/man/add_err.Rd b/man/add_err.Rd index 36b98be9..3452923e 100644 --- a/man/add_err.Rd +++ b/man/add_err.Rd @@ -4,8 +4,16 @@ \alias{add_err} \title{Add normally distributed errors to simulated kinetic degradation data} \usage{ -add_err(prediction, sdfunc, secondary = c("M1", "M2"), n = 1000, - LOD = 0.1, reps = 2, digits = 1, seed = NA) +add_err( + prediction, + sdfunc, + secondary = c("M1", "M2"), + n = 1000, + LOD = 0.1, + reps = 2, + digits = 1, + seed = NA +) } \arguments{ \item{prediction}{A prediction from a kinetic model as produced by diff --git a/man/confint.mkinfit.Rd b/man/confint.mkinfit.Rd index f2521ccd..81d7a6e8 100644 --- a/man/confint.mkinfit.Rd +++ b/man/confint.mkinfit.Rd @@ -4,10 +4,19 @@ \alias{confint.mkinfit} \title{Confidence intervals for parameters of mkinfit objects} \usage{ -\method{confint}{mkinfit}(object, parm, level = 0.95, alpha = 1 - - level, cutoff, method = c("quadratic", "profile"), - transformed = TRUE, backtransform = TRUE, - cores = round(detectCores()/2), quiet = FALSE, ...) +\method{confint}{mkinfit}( + object, + parm, + level = 0.95, + alpha = 1 - level, + cutoff, + method = c("quadratic", "profile"), + transformed = TRUE, + backtransform = TRUE, + cores = round(detectCores()/2), + quiet = FALSE, + ... +) } \arguments{ \item{object}{An \code{\link{mkinfit}} object} diff --git a/man/lrtest.mkinfit.Rd b/man/lrtest.mkinfit.Rd index 84d7bc99..8025b883 100644 --- a/man/lrtest.mkinfit.Rd +++ b/man/lrtest.mkinfit.Rd @@ -47,7 +47,7 @@ lrtest(sfo_fit, dfop_fit) #lrtest(dfop_fit, error_model = "tc") #lrtest(dfop_fit, fixed_parms = c(k2 = 0)) -# However, this equivalent syntax works for static help pages +# However, this equivalent syntax also works for static help pages lrtest(dfop_fit, update(dfop_fit, error_model = "tc")) lrtest(dfop_fit, update(dfop_fit, fixed_parms = c(k2 = 0))) } diff --git a/man/mkinds.Rd b/man/mkinds.Rd index 0ea562ed..79eb0167 100644 --- a/man/mkinds.Rd +++ b/man/mkinds.Rd @@ -5,9 +5,6 @@ \alias{mkinds} \title{A dataset class for mkin} \format{An \code{\link{R6Class}} generator object.} -\usage{ -mkinds -} \description{ A dataset class for mkin } @@ -36,3 +33,35 @@ mds <- mkinds$new("FOCUS A", FOCUS_2006_A) } \keyword{datasets} +\section{Methods}{ +\subsection{Public methods}{ +\itemize{ +\item \href{#method-new}{\code{mkinds$new()}} +\item \href{#method-clone}{\code{mkinds$clone()}} +} +} +\if{html}{\out{<hr>}} +\if{html}{\out{<a id="method-new"></a>}} +\subsection{Method \code{new()}}{ +\subsection{Usage}{ +\if{html}{\out{<div class="r">}}\preformatted{mkinds$new(title = "", data, time_unit = NA, unit = NA)}\if{html}{\out{</div>}} +} + +} +\if{html}{\out{<hr>}} +\if{html}{\out{<a id="method-clone"></a>}} +\subsection{Method \code{clone()}}{ +The objects of this class are cloneable with this method. +\subsection{Usage}{ +\if{html}{\out{<div class="r">}}\preformatted{mkinds$clone(deep = FALSE)}\if{html}{\out{</div>}} +} + +\subsection{Arguments}{ +\if{html}{\out{<div class="arguments">}} +\describe{ +\item{\code{deep}}{Whether to make a deep clone.} +} +\if{html}{\out{</div>}} +} +} +} diff --git a/man/mkinerrplot.Rd b/man/mkinerrplot.Rd index 3c53e7f8..9564ec19 100644 --- a/man/mkinerrplot.Rd +++ b/man/mkinerrplot.Rd @@ -4,11 +4,20 @@ \alias{mkinerrplot} \title{Function to plot squared residuals and the error model for an mkin object} \usage{ -mkinerrplot(object, obs_vars = names(object$mkinmod$map), xlim = c(0, - 1.1 * max(object$data$predicted)), xlab = "Predicted", - ylab = "Squared residual", maxy = "auto", legend = TRUE, - lpos = "topright", col_obs = "auto", pch_obs = "auto", - frame = TRUE, ...) +mkinerrplot( + object, + obs_vars = names(object$mkinmod$map), + xlim = c(0, 1.1 * max(object$data$predicted)), + xlab = "Predicted", + ylab = "Squared residual", + maxy = "auto", + legend = TRUE, + lpos = "topright", + col_obs = "auto", + pch_obs = "auto", + frame = TRUE, + ... +) } \arguments{ \item{object}{A fit represented in an \code{\link{mkinfit}} object.} diff --git a/man/mkinfit.Rd b/man/mkinfit.Rd index e58e61e2..45036361 100644 --- a/man/mkinfit.Rd +++ b/man/mkinfit.Rd @@ -8,18 +8,33 @@ Rocke, David M. und Lorenzato, Stefan (1995) A two-component model for measurement error in analytical chemistry. Technometrics 37(2), 176-184. } \usage{ -mkinfit(mkinmod, observed, parms.ini = "auto", state.ini = "auto", - err.ini = "auto", fixed_parms = NULL, - fixed_initials = names(mkinmod$diffs)[-1], from_max_mean = FALSE, +mkinfit( + mkinmod, + observed, + parms.ini = "auto", + state.ini = "auto", + err.ini = "auto", + fixed_parms = NULL, + fixed_initials = names(mkinmod$diffs)[-1], + from_max_mean = FALSE, solution_type = c("auto", "analytical", "eigen", "deSolve"), - method.ode = "lsoda", use_compiled = "auto", + method.ode = "lsoda", + use_compiled = "auto", control = list(eval.max = 300, iter.max = 200), - transform_rates = TRUE, transform_fractions = TRUE, quiet = FALSE, - atol = 1e-08, rtol = 1e-10, n.outtimes = 100, + transform_rates = TRUE, + transform_fractions = TRUE, + quiet = FALSE, + atol = 1e-08, + rtol = 1e-10, + n.outtimes = 100, error_model = c("const", "obs", "tc"), - error_model_algorithm = c("auto", "d_3", "direct", "twostep", - "threestep", "fourstep", "IRLS", "OLS"), reweight.tol = 1e-08, - reweight.max.iter = 10, trace_parms = FALSE, ...) + error_model_algorithm = c("auto", "d_3", "direct", "twostep", "threestep", "fourstep", + "IRLS", "OLS"), + reweight.tol = 1e-08, + reweight.max.iter = 10, + trace_parms = FALSE, + ... +) } \arguments{ \item{mkinmod}{A list of class \code{\link{mkinmod}}, containing the kinetic diff --git a/man/mkinmod.Rd b/man/mkinmod.Rd index 91f285e2..d2b851b6 100644 --- a/man/mkinmod.Rd +++ b/man/mkinmod.Rd @@ -4,8 +4,13 @@ \alias{mkinmod} \title{Function to set up a kinetic model with one or more state variables} \usage{ -mkinmod(..., use_of_ff = "min", speclist = NULL, quiet = FALSE, - verbose = FALSE) +mkinmod( + ..., + use_of_ff = "min", + speclist = NULL, + quiet = FALSE, + verbose = FALSE +) } \arguments{ \item{...}{For each observed variable, a list has to be specified as an diff --git a/man/mkinpredict.Rd b/man/mkinpredict.Rd index 53f02dea..17d7ef21 100644 --- a/man/mkinpredict.Rd +++ b/man/mkinpredict.Rd @@ -6,22 +6,47 @@ \alias{mkinpredict.mkinfit} \title{Produce predictions from a kinetic model using specific parameters} \usage{ -mkinpredict(x, odeparms, odeini, outtimes = seq(0, 120, by = 0.1), - solution_type = "deSolve", use_compiled = "auto", - method.ode = "lsoda", atol = 1e-08, rtol = 1e-10, - map_output = TRUE, ...) - -\method{mkinpredict}{mkinmod}(x, odeparms = c(k_parent_sink = 0.1), - odeini = c(parent = 100), outtimes = seq(0, 120, by = 0.1), - solution_type = "deSolve", use_compiled = "auto", - method.ode = "lsoda", atol = 1e-08, rtol = 1e-10, - map_output = TRUE, ...) - -\method{mkinpredict}{mkinfit}(x, odeparms = x$bparms.ode, - odeini = x$bparms.state, outtimes = seq(0, 120, by = 0.1), - solution_type = "deSolve", use_compiled = "auto", - method.ode = "lsoda", atol = 1e-08, rtol = 1e-10, - map_output = TRUE, ...) +mkinpredict( + x, + odeparms, + odeini, + outtimes = seq(0, 120, by = 0.1), + solution_type = "deSolve", + use_compiled = "auto", + method.ode = "lsoda", + atol = 1e-08, + rtol = 1e-10, + map_output = TRUE, + ... +) + +\method{mkinpredict}{mkinmod}( + x, + odeparms = c(k_parent_sink = 0.1), + odeini = c(parent = 100), + outtimes = seq(0, 120, by = 0.1), + solution_type = "deSolve", + use_compiled = "auto", + method.ode = "lsoda", + atol = 1e-08, + rtol = 1e-10, + map_output = TRUE, + ... +) + +\method{mkinpredict}{mkinfit}( + x, + odeparms = x$bparms.ode, + odeini = x$bparms.state, + outtimes = seq(0, 120, by = 0.1), + solution_type = "deSolve", + use_compiled = "auto", + method.ode = "lsoda", + atol = 1e-08, + rtol = 1e-10, + map_output = TRUE, + ... +) } \arguments{ \item{x}{A kinetic model as produced by \code{\link{mkinmod}}, or a kinetic diff --git a/man/mkinresplot.Rd b/man/mkinresplot.Rd index 465b3038..2a8b2d41 100644 --- a/man/mkinresplot.Rd +++ b/man/mkinresplot.Rd @@ -4,11 +4,21 @@ \alias{mkinresplot} \title{Function to plot residuals stored in an mkin object} \usage{ -mkinresplot(object, obs_vars = names(object$mkinmod$map), xlim = c(0, - 1.1 * max(object$data$time)), standardized = FALSE, xlab = "Time", +mkinresplot( + object, + obs_vars = names(object$mkinmod$map), + xlim = c(0, 1.1 * max(object$data$time)), + standardized = FALSE, + xlab = "Time", ylab = ifelse(standardized, "Standardized residual", "Residual"), - maxabs = "auto", legend = TRUE, lpos = "topright", - col_obs = "auto", pch_obs = "auto", frame = TRUE, ...) + maxabs = "auto", + legend = TRUE, + lpos = "topright", + col_obs = "auto", + pch_obs = "auto", + frame = TRUE, + ... +) } \arguments{ \item{object}{A fit represented in an \code{\link{mkinfit}} object.} diff --git a/man/mmkin.Rd b/man/mmkin.Rd index a763fcdf..4bf07370 100644 --- a/man/mmkin.Rd +++ b/man/mmkin.Rd @@ -5,11 +5,16 @@ \title{Fit one or more kinetic models with one or more state variables to one or more datasets} \usage{ -mmkin(models = c("SFO", "FOMC", "DFOP"), datasets, - cores = round(detectCores()/2), cluster = NULL, ...) +mmkin( + models = c("SFO", "FOMC", "DFOP"), + datasets, + cores = round(detectCores()/2), + cluster = NULL, + ... +) } \arguments{ -\item{models}{Either a character vector of shorthand names like +\item{models}{Either a character vector of shorthand names like \code{c("SFO", "FOMC", "DFOP", "HS", "SFORB")}, or an optionally named list of \code{\link{mkinmod}} objects.} diff --git a/man/plot.mkinfit.Rd b/man/plot.mkinfit.Rd index 47cc08a4..c3f3134a 100644 --- a/man/plot.mkinfit.Rd +++ b/man/plot.mkinfit.Rd @@ -7,22 +7,47 @@ \alias{plot_err} \title{Plot the observed data and the fitted model of an mkinfit object} \usage{ -\method{plot}{mkinfit}(x, fit = x, obs_vars = names(fit$mkinmod$map), - xlab = "Time", ylab = "Observed", xlim = range(fit$data$time), - ylim = "default", col_obs = 1:length(obs_vars), pch_obs = col_obs, - lty_obs = rep(1, length(obs_vars)), add = FALSE, legend = !add, - show_residuals = FALSE, show_errplot = FALSE, maxabs = "auto", - sep_obs = FALSE, rel.height.middle = 0.9, row_layout = FALSE, - lpos = "topright", inset = c(0.05, 0.05), show_errmin = FALSE, - errmin_digits = 3, frame = TRUE, ...) - -plot_sep(fit, show_errmin = TRUE, - show_residuals = ifelse(identical(fit$err_mod, "const"), TRUE, - "standardized"), ...) - -plot_res(fit, sep_obs = FALSE, show_errmin = sep_obs, +\method{plot}{mkinfit}( + x, + fit = x, + obs_vars = names(fit$mkinmod$map), + xlab = "Time", + ylab = "Observed", + xlim = range(fit$data$time), + ylim = "default", + col_obs = 1:length(obs_vars), + pch_obs = col_obs, + lty_obs = rep(1, length(obs_vars)), + add = FALSE, + legend = !add, + show_residuals = FALSE, + show_errplot = FALSE, + maxabs = "auto", + sep_obs = FALSE, + rel.height.middle = 0.9, + row_layout = FALSE, + lpos = "topright", + inset = c(0.05, 0.05), + show_errmin = FALSE, + errmin_digits = 3, + frame = TRUE, + ... +) + +plot_sep( + fit, + show_errmin = TRUE, + show_residuals = ifelse(identical(fit$err_mod, "const"), TRUE, "standardized"), + ... +) + +plot_res( + fit, + sep_obs = FALSE, + show_errmin = sep_obs, standardized = ifelse(identical(fit$err_mod, "const"), FALSE, TRUE), - ...) + ... +) plot_err(fit, sep_obs = FALSE, show_errmin = sep_obs, ...) } diff --git a/man/plot.mmkin.Rd b/man/plot.mmkin.Rd index 605e458e..f14e0362 100644 --- a/man/plot.mmkin.Rd +++ b/man/plot.mmkin.Rd @@ -5,10 +5,19 @@ \title{Plot model fits (observed and fitted) and the residuals for a row or column of an mmkin object} \usage{ -\method{plot}{mmkin}(x, main = "auto", legends = 1, - resplot = c("time", "errmod"), show_errmin = TRUE, - errmin_var = "All data", errmin_digits = 3, cex = 0.7, - rel.height.middle = 0.9, ymax = "auto", ...) +\method{plot}{mmkin}( + x, + main = "auto", + legends = 1, + resplot = c("time", "errmod"), + show_errmin = TRUE, + errmin_var = "All data", + errmin_digits = 3, + cex = 0.7, + rel.height.middle = 0.9, + ymax = "auto", + ... +) } \arguments{ \item{x}{An object of class \code{\link{mmkin}}, with either one row or one diff --git a/man/summary.mkinfit.Rd b/man/summary.mkinfit.Rd index fcc1295f..fabe31d0 100644 --- a/man/summary.mkinfit.Rd +++ b/man/summary.mkinfit.Rd @@ -5,11 +5,9 @@ \alias{print.summary.mkinfit} \title{Summary method for class "mkinfit"} \usage{ -\method{summary}{mkinfit}(object, data = TRUE, distimes = TRUE, - alpha = 0.05, ...) +\method{summary}{mkinfit}(object, data = TRUE, distimes = TRUE, alpha = 0.05, ...) -\method{print}{summary.mkinfit}(x, digits = max(3, getOption("digits") - - 3), ...) +\method{print}{summary.mkinfit}(x, digits = max(3, getOption("digits") - 3), ...) } \arguments{ \item{object}{an object of class \code{\link{mkinfit}}.} diff --git a/man/transform_odeparms.Rd b/man/transform_odeparms.Rd index 5c8c90ba..5257fe12 100644 --- a/man/transform_odeparms.Rd +++ b/man/transform_odeparms.Rd @@ -5,11 +5,19 @@ \alias{backtransform_odeparms} \title{Functions to transform and backtransform kinetic parameters for fitting} \usage{ -transform_odeparms(parms, mkinmod, transform_rates = TRUE, - transform_fractions = TRUE) +transform_odeparms( + parms, + mkinmod, + transform_rates = TRUE, + transform_fractions = TRUE +) -backtransform_odeparms(transparms, mkinmod, transform_rates = TRUE, - transform_fractions = TRUE) +backtransform_odeparms( + transparms, + mkinmod, + transform_rates = TRUE, + transform_fractions = TRUE +) } \arguments{ \item{parms}{Parameters of kinetic models as used in the differential |