CRAN Task View: Analysis of Pharmacokinetic Data

Maintainer:Suzette Blanchard
Contact:sblanchard at

The primary goal of pharmacokinetic (PK) data analysis is to determine the relationship between the dosing regimen and the body's exposure to the drug as measured by the nonlinear concentration time curve or related summaries (e.g. the area under the curve). Base R contains nls which can be used to calculate nonlinear least-squares estimates of the parameters from a PK model. It returns an object of the class "nls" having methods coef(), formula(), resid(), print(), summary(), AIC(), fitted() and vcov(). Four packages are available in CRAN that directly aid in PK data analysis, including; the packages PK, PKfit, nlmeODE which incorporates nlme and deSolve. While PK provides basic pharmacokinetics functions which implement non-compartmental analysis methods, the latter three packages focus on modeling methods. In addition, this task view includes a discussion of a few related packages including the package lattice for trellis graphics, and the package MASS and the package drc that aid in the analysis of dose response curves.

PK is a basic pharmacokinetics package providing functions to aid in non-compartmental analysis (Gibaldi and Perrier,1982) of PK data. This package includes a function, AUC(), to calculate area under the curve, and the area under the first moment curve and two new functions auc.ssd() and eqv.sdd() for estimating and comparing AUCs in the case of serial sampling. It also includes functions for half-life estimation for a biexponential model, biexp(), and a two phase linear regression, lee() as well as an associated plot function, plot.halflife().

The package PKfit is a nonlinear regression program designed for the analysis of pharmacokinetic data. This package includes fitting and simulation functions for a large list of PK models including both compartment models and other nonlinear models with iv, bolus, extravascular, and oral single dose absorption, with and without a lag.

When analyzing PK data once the primary goal of estimating exposure is achieved, the interest shifts to determining if exposure differs among subpopulations based on subject specific covariates (age, size, concomitant medications, kidney function) requiring a change in dose. Within the field of pharmacokinetics, analyses combining data from multiple individuals to estimate the population parameters are termed population PK. The non-linear mixed models framework provides a natural tool for analyzing population PK data, using either frequentist or Bayesian estimation methods.

The package nlme fits a nonlinear mixed-effects model using the frequentist approach (Lindstrom and Bates, 1990) which allows for nested random effects. An object of class "nlme" representing the nonlinear mixed-effects model fit is returned. The results can be output using the methods print(), plot(), and summary(). The nlmeObject gives further details regarding the components of the "nlme" object and how to extract them. The package nlmeODE incorporates the deSolve and nlme along with the library of PK/PD models, PKPDmodels. A discussion of the analysis methods for population PK using nlme is provided in Pinheiro and Bates (2000).

Bayesian estimation methods for panel data are also available. These methods have been described in the CRAN task view for Bayesian Inference. Bayesian analysis methods for population PK data are described in Lunn et al.(2002).

Graphic display is important in the analysis of pharmacokinetic data. The panel structure of the data is often well displayed using the lattice library of trellis plots. The identify() function reads the position of the pointer on the graph and can be used to identify outlying data points in diagnostic plots.

The package drc deals with the related issue of fitting a dose response curve. In this package the authors provide self starting functions for a number of model families including, the logisitic, Weibull and Cedergreen-Ritz-Streibig. Functions for estimation multdrc(), and model comparison including, compParm(), ED(), which respectively compare parameters, and effective dosage as well as, plot functions for the raw data, plotraw(), and the fitted values, plot(), are provided. This package is discussed in Ritz and Streibig (2005). Further, base R contains glm() which can be used to analyze logit and probit models and the MASS package contains some additional related functions. The methodology is briefly discussed in Venables and Ripley (2002).

This is a early draft of this task view. Please let me know if I have omitted any important information by sending email to the task view maintainer .


CRAN packages:

Related links: