Skip to contents

Intervals are selected by the following metrics:

  1. If there are no dose times, no intervals are generated and a "pknca_warning_no_dose_times_for_group" warning is given.

  2. If only one dose is administered and any sample follows it, the interval runs from the dose to infinity with the parameters pknca_interval_table() gives for a single dose.

  3. If more than one dose is administered, an interval is generated between any two consecutive doses that have samples at both dose times and at least one sample between them. It is a dosing interval when the samples run up to the next dose, and a single-dose profile bounded by the next dose when they stop partway and leave a washout.

  4. For the final dose, the dosing interval (\(\tau\)) is found with find.tau(). An interval one \(\tau\) long is generated when a sample was taken at its end, with the parameters for a dose at steady state. It starts at the first dose of the last complete cycle, which is the last dose itself unless the regimen gives more than one dose per \(\tau\), so that the interval never contains a dose that was not recorded.

  5. If samples continue beyond \(\tau\) after the last dose, the half-life is calculated from the last dose onward. If the last dose has samples after it but gets neither of these, its profile is calculated to infinity as a single dose.

Usage

choose.auc.intervals(
  time.conc,
  time.dosing,
  options = list(),
  single.dose.aucs = NULL,
  route = "extravascular",
  sparse = FALSE
)

Arguments

time.conc

Time of concentration measurement

time.dosing

Time of dosing

options

List of changes to the default PKNCA options (see PKNCA.options())

single.dose.aucs

The AUC specification for single dosing.

route

How the drug was given, as one of pknca_routes().

sparse

Is this a sparse sampling design? A sparse design imputes nothing; see pknca_interval_table().

Value

A data frame with columns for start, end, and the parameters to calculate. See check.interval.specification() for column definitions. The data frame may have zero rows if no intervals could be found.

Details

Times are matched within a tolerance rather than exactly, so a sample drawn a little before its nominal time still bounds the interval it belongs to. The window is the auto.interval.tolerance option as a fraction of the interval's length, and it only reaches backward: a sample drawn after a boundary belongs to what follows that boundary, so a concentration drawn after a dose cannot stand in for the predose sample.

Setting the auto.interval.method option to "legacy" calculates the parameter lists PKNCA used before pknca_interval_table() was available: the single.dose.aucs option for single-dose data, and AUClast, Cmax, and Tmax for each interval of multiple-dose data. The intervals themselves are found the same way either way.

Examples

# A single dose gives one profile to infinity
choose.auc.intervals(c(0, 1, 2, 4, 8, 24), 0)[, c("start", "end")]
#>   start end
#> 1     0 Inf

# Daily dosing with a dense profile on the first and last day
choose.auc.intervals(
  c(0, 1, 2, 4, 8, 12, 24, 48, 72, 96, 120, 144, 145, 146, 148, 152, 156, 168, 192),
  seq(0, 144, by = 24)
)[, c("start", "end")]
#>   start end
#> 1     0  24
#> 2   144 168
#> 3   144 Inf