Nothing
#' Calculate AUC for intravenous dosing
#'
#' @details The AUC for intravenous (IV) dosing extrapolates the AUC back from
#' the first measurement to time 0 using c0 and the AUC calculated by another
#' method (for example the auclast).
#'
#' The calculation method takes the following steps:
#'
#' \itemize{
#' \item{\code{time = 0} must be present in the data with a measured concentration.}
#' \item{The AUC between \code{time = 0} and the next time point is calculated (\code{auc_first}).}
#' \item{The AUC between \code{time = 0} with \code{c0} and the next time point is calculated (\code{auc_second}).}
#' \item{The final AUC is the initial AUC plus the difference between the two AUCs (\code{auc_final <- auc + auc_second - auc_first}).}
#' }
#' @inheritParams pk.calc.auxc
#' @param c0 The concentration at time 0, typically calculated using
#' \code{pk.calc.c0()}
#' @param auc The AUC calculated using \code{conc} and \code{time} without
#' \code{c0} (it may be calculated using any method)
#' @return \code{pk.calc.auciv}: The AUC calculated using \code{c0}
#' @export
pk.calc.auciv <- function(conc, time, c0, auc, ..., check=TRUE) {
if (check) {
check.conc.time(conc, time)
}
if (!(0 %in% time)) {
return(structure(NA_real_, exclude="No time 0 in data"))
}
data <- data.frame(conc, time)
auc_first <- pk.calc.auc.last(conc = data$conc[1:2], time = data$time[1:2], ..., check=FALSE)
auc_second <- pk.calc.auc.last(conc = c(c0, data$conc[2]), time = data$time[1:2], ..., check=FALSE)
auc_final <- auc + auc_second - auc_first
auc_final
}
add.interval.col(
name = "aucivlast",
FUN = "pk.calc.auciv",
unit_type = "auc",
pretty_name = "AUClast (IV dosing)",
depends = c("auclast", "c0"),
desc = "The AUClast calculated with back-extrapolation for intravenous dosing using extrapolated C0",
sparse = FALSE,
formalsmap = list(auc="auclast")
)
add.interval.col(
name = "aucivall",
FUN = "pk.calc.auciv",
unit_type = "auc",
pretty_name = "AUCall (IV dosing)",
depends = c("aucall", "c0"),
desc = "The AUCall calculated with back-extrapolation for intravenous dosing using extrapolated C0",
sparse = FALSE,
formalsmap = list(auc="aucall")
)
add.interval.col(
name = "aucivint.last",
FUN = "pk.calc.auciv",
unit_type = "auc",
pretty_name = "AUCint,last (IV dosing)",
depends = c("aucint.last", "c0"),
desc = "The AUCint,last calculated with back-extrapolation for intravenous dosing using extrapolated C0",
sparse = FALSE,
formalsmap = list(auc="aucint.last")
)
add.interval.col(
name = "aucivint.all",
FUN = "pk.calc.auciv",
unit_type = "auc",
pretty_name = "AUCint,all (IV dosing)",
depends = c("aucint.all", "c0"),
desc = "The AUCint,all calculated with back-extrapolation for intravenous dosing using extrapolated C0",
sparse = FALSE,
formalsmap = list(auc="aucint.all")
)
add.interval.col(
name = "aucivinf.obs",
FUN = "pk.calc.auciv",
unit_type = "auc",
pretty_name = "AUCinf,obs (IV dosing)",
depends = c("aucinf.obs", "c0"),
desc = "The AUCinf,obs calculated with back-extrapolation for intravenous dosing using extrapolated C0",
sparse = FALSE,
formalsmap = list(auc="aucinf.obs")
)
add.interval.col(
name = "aucivinf.pred",
FUN = "pk.calc.auciv",
unit_type = "auc",
pretty_name = "AUCinf,pred (IV dosing)",
depends = c("aucinf.pred", "c0"),
desc = "The calculated with back-extrapolation for intravenous dosing using extrapolated C0",
sparse = FALSE,
formalsmap = list(auc="aucinf.pred")
)
PKNCA.set.summary(
name=c("aucivlast", "aucivall", "aucivint.last", "aucivint.all", "aucivinf.obs", "aucivinf.pred"),
description="geometric mean and geometric coefficient of variation",
point=business.geomean,
spread=business.geocv
)
#' @describeIn pk.calc.auciv Calculate the percent back-extrapolated AUC for IV administration
#' @details The calculation for back-extrapolation is \code{100*(1 - auc/auciv)}.
#' @param auciv The AUC calculated using \code{c0}
#' @return \code{pk.calc.auciv_pctbackextrap}: The AUC percent back-extrapolated
#' @export
pk.calc.auciv_pbext <- function(auc, auciv) {
100*(1 - auc/auciv)
}
add.interval.col(
name = "aucivpbextlast",
FUN = "pk.calc.auciv_pbext",
unit_type = "%",
pretty_name = "AUCbext (based on AUClast)",
depends = c("auclast", "aucivlast"),
desc = "The back-extrapolation percent for intravenous dosing based on AUClast",
sparse = FALSE,
formalsmap = list(auc="auclast", auciv="aucivlast")
)
add.interval.col(
name = "aucivpbextall",
FUN = "pk.calc.auciv_pbext",
unit_type = "%",
pretty_name = "AUCbext (based on AUCall)",
depends = c("aucall", "aucivall"),
desc = "The back-extrapolation percent for intravenous dosing based on AUCall",
sparse = FALSE,
formalsmap = list(auc="aucall", auciv="aucivall")
)
add.interval.col(
name = "aucivpbextint.last",
FUN = "pk.calc.auciv_pbext",
unit_type = "%",
pretty_name = "AUCbext (based on AUCint,last)",
depends = c("aucint.last", "aucivint.last"),
desc = "The back-extrapolation percent for intravenous dosing based on AUCint,last",
sparse = FALSE,
formalsmap = list(auc="aucint.last", auciv="aucivint.last")
)
add.interval.col(
name = "aucivpbextint.all",
FUN = "pk.calc.auciv_pbext",
unit_type = "%",
pretty_name = "AUCbext (based on AUCint,all)",
depends = c("aucint.all", "aucivint.all"),
desc = "The back-extrapolation percent for intravenous dosing based on AUCint,all",
sparse = FALSE,
formalsmap = list(auc="aucint.all", auciv="aucivint.all")
)
add.interval.col(
name = "aucivpbextinf.obs",
FUN = "pk.calc.auciv_pbext",
unit_type = "%",
pretty_name = "AUCbext (based on AUCinf,obs)",
depends = c("aucinf.obs", "aucivinf.obs"),
desc = "The back-extrapolation percent for intravenous dosing based on AUCinf,obs",
sparse = FALSE,
formalsmap = list(auc="aucinf.obs", auciv="aucivinf.obs")
)
add.interval.col(
name = "aucivpbextinf.pred",
FUN = "pk.calc.auciv_pbext",
unit_type = "%",
pretty_name = "AUCbext (based on AUCinf,pred)",
depends = c("aucinf.pred", "aucivinf.pred"),
desc = "The back-extrapolation percent for intravenous dosing based on AUCinf,pred",
sparse = FALSE,
formalsmap = list(auc="aucinf.pred", auciv="aucivinf.pred")
)
PKNCA.set.summary(
name = c("aucivpbextlast", "aucivpbextall", "aucivpbextint.last", "aucivpbextint.all", "aucivpbextinf.obs", "aucivpbextinf.pred"),
description="arithmetic mean and standard deviation",
point=business.mean,
spread=business.sd
)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.