aboutsummaryrefslogtreecommitdiff
path: root/R/endpoints.R
diff options
context:
space:
mode:
Diffstat (limited to 'R/endpoints.R')
-rw-r--r--R/endpoints.R20
1 files changed, 11 insertions, 9 deletions
diff --git a/R/endpoints.R b/R/endpoints.R
index 14beadea..f7ee483a 100644
--- a/R/endpoints.R
+++ b/R/endpoints.R
@@ -1,12 +1,12 @@
#' Function to calculate endpoints for further use from kinetic models fitted
#' with mkinfit
-#'
+#'
#' This function calculates DT50 and DT90 values as well as formation fractions
#' from kinetic models fitted with mkinfit. If the SFORB model was specified
#' for one of the parents or metabolites, the Eigenvalues are returned. These
#' are equivalent to the rate constantes of the DFOP model, but with the
#' advantage that the SFORB model can also be used for metabolites.
-#'
+#'
#' @param fit An object of class \code{\link{mkinfit}}.
#' @importFrom stats optimize
#' @return A list with the components mentioned above.
@@ -14,10 +14,10 @@
#' @author Johannes Ranke
#' @keywords manip
#' @examples
-#'
+#'
#' fit <- mkinfit("FOMC", FOCUS_2006_C, quiet = TRUE)
-#' endpoints(fit)
-#'
+#' endpoints(fit)
+#'
#' @export
endpoints <- function(fit) {
# Calculate dissipation times DT50 and DT90 and formation
@@ -29,8 +29,9 @@ endpoints <- function(fit) {
parms.all <- c(fit$bparms.optim, fit$bparms.fixed)
ep$ff <- vector()
ep$SFORB <- vector()
- ep$distimes <- data.frame(DT50 = rep(NA, length(obs_vars)),
- DT90 = rep(NA, length(obs_vars)),
+ ep$distimes <- data.frame(
+ DT50 = rep(NA, length(obs_vars)),
+ DT90 = rep(NA, length(obs_vars)),
row.names = obs_vars)
for (obs_var in obs_vars) {
type = names(fit$mkinmod$map[[obs_var]])[1]
@@ -41,8 +42,8 @@ endpoints <- function(fit) {
f_values = parms.all[f_names]
f_to_sink = 1 - sum(f_values)
names(f_to_sink) = ifelse(type == "SFORB",
- paste(obs_var, "free", "sink", sep = "_"),
- paste(obs_var, "sink", sep = "_"))
+ paste(obs_var, "free", "sink", sep = "_"),
+ paste(obs_var, "sink", sep = "_"))
for (f_name in f_names) {
ep$ff[[sub("f_", "", sub("_to_", "_", f_name))]] = f_values[[f_name]]
}
@@ -195,5 +196,6 @@ endpoints <- function(fit) {
}
ep$distimes[obs_var, c("DT50", "DT90")] = c(DT50, DT90)
}
+ if (length(ep$SFORB) == 0) ep$SFORB <- NULL
return(ep)
}

Contact - Imprint