Skip to contents

Estimates the volume of distribution (Vd) from observed peak concentrations (Cmax) in single-dose, multiple-dose, or mixed datasets.

Usage

approx.vc(
  dat = NULL,
  half_life = NULL,
  single_point_base.lst = NULL,
  route = c("bolus", "oral", "infusion"),
  dose_type = NULL,
  pooled_ctrl = pooled_control(),
  ssctrl = ss_control()
)

Arguments

dat

A data frame containing pharmacokinetic data, including observed concentrations (DV), time after dose (tad), dose, and route information.

half_life

The elimination half-life (t1/2) of the compound, used to identify early-phase Cmax values.

single_point_base.lst

Optional list object returned by run_single_point_base(). If not supplied, the function will generate it internally.

route

Route of administration. One of "bolus", "oral", or "infusion" (default = "bolus").

dose_type

Optional string specifying the dosing type, passed to run_single_point_base().

pooled_ctrl

Control object created by pooled_control(), defining data pooling options.

ssctrl

Control object created by ss_control(), defining steady-state control options.

Value

A list containing individual and population Vd estimates and related dose-level data.

Details

Estimates individual apparent volumes of distribution from observed peak concentrations. Individual estimates are then summarized to obtain a population-level value.

For single-dose data, Vd is calculated according to the route of administration:

  • Bolus: \(V_d = \mathrm{Dose} / C_{\mathrm{max}}\)

  • Infusion: \(V_d = (\mathrm{Rate} \times t_{\mathrm{inf}}) / C_{\mathrm{max}}\)

  • Oral: \(V_d = (\mathrm{Dose} \times F) / C_{\mathrm{max}}\), where \(F = 1 - e^{-k_a t}\)

For multiple-dose data, observed Cmax values are adjusted to single-dose equivalents using the accumulation ratio: $$R_{\mathrm{ac}} = \frac{1}{1 - e^{-k_e \tau}}, \quad k_e = \ln(2)/t_{1/2}$$ Adjusted values are used to estimate Vd using the same route-specific equations.

Author

Zhonghui Huang

Examples

# Process dataset
out <- processData(Bolus_1CPT)
#> 
#> 
#> Infometrics                               Value          
#> ----------------------------------------  ---------------
#> Dose Route                                bolus          
#> Dose Type                                 combined_doses 
#> Number of Subjects                        120            
#> Number of Observations                    6951           
#> Subjects with First-Dose Interval Data    120            
#> Observations in the First-Dose Interval   2276           
#> Subjects with Multiple-Dose Data          120            
#> Observations after Multiple Doses         4675           
#> ----------------------------------------  ------
# Get half-life and dose route
hf <- get_hf(dat = out$dat)$half_life_median
#> Estimating half-life....................
#> Half-life estimation complete: Estimated t1/2 = 11 h
rt <- out$Datainfo$Value[out$Datainfo$Infometrics == "Dose Route"]
# Estimate Vd
approx.vc(dat = out$dat, half_life = hf, route = rt)$approx.vc.value
#> [1] 48.33771