CRAN Task View: Analysis of Pharmacokinetic Data

Maintainer:Bill Denney
Contact:wdenney at
Contributions:Suggestions and improvements for this task view are very welcome and can be made through issues or pull requests on GitHub or via e-mail to the maintainer address. For further details see the Contributing guide.
Citation:Bill Denney (2022). CRAN Task View: Analysis of Pharmacokinetic Data. Version 2022-12-05. URL
Installation:The packages from this task view can be installed automatically using the ctv package. For example, ctv::install.views("Pharmacokinetics", coreOnly = TRUE) installs all the core packages or ctv::update.views("Pharmacokinetics") installs all packages that are not yet installed and up-to-date. See the CRAN Task View Initiative for more details.

Analysis of pharmacokinetic (PK) data is concerned with defining the relationship between the dosing regimen and the body’s exposure to drug as indicated by the concentration time curve to determine a dose. To analyze PK data, there are three categories of packages within CRAN: noncompartmental analysis (NCA), modeling (typically using compartmental analysis), and reporting (typically for NCA).

Pharmacokinetics are often collected during clinical trials of new drugs. For more information on R packages for clinical trials, see ClinicalTrials.

Call for a co-maintainer

CRAN task views hopes that all task views will have multiple maintainers from diverse backgrounds. If you are interested in becoming a co-maintainer of this task view, please contact the current maintainer (listed at the top of the task view).

Noncompartmental Analysis (NCA)

NCA is used as method of description of PK with minimal assumptions of the rates of distribution of the drug through the body. NCA is typically used to describe the PK of a drug in clinical studies with many samples per subject on the same and sequential days.

The NCA packages are:

ncappc: Performs traditional NCA and simulation-based posterior predictive checks for a population PK model using NCA metrics. It targets summarizing data from model-fit or simulated sources.

NonCompart: Provides basic computational functions for NCA.

PK: Allows estimation of pharmacokinetic parameters using non-compartmental theory. Both complete sampling and sparse sampling designs are implemented. The package provides methods for hypothesis testing and confidence intervals related to superiority and equivalence.

PKNCA: Computes standard NCA parameters and summarizes them with the goal of taking in observed clinical data and providing summaries ready for study reports and regulatory submission.

qpNCA: Noncompartmental Pharmacokinetic Analysis by qPharmetra

Workflow tools

The tools in this section connect multiple parts of analysis together, typically they support some or all parts of data import, review, analysis, and reporting.

ruminate: ruminate is a pharmacometrics data transformation and analysis tool. Exploration of pharmacometrics data involves both general tools (transformation and plotting) and specific techniques (non-compartmental analysis). This kind of exploration is generally accomplished by utilizing different packages. The purpose of ‘ruminate’ is to create a ‘shiny’ interface to make these tools more broadly available while creating reproducible results.

Pharmacometric Modeling

Modeling of PK data typically uses compartmental methods which assume that the drug enters the body either through an intravenous (IV) or extravascular (often oral or subcutaneous, SC) dose. Packages listed below are restricted to packages that have specific interest to PK modeling and not the (many) packages that support modeling that could be used for PK data. The PK modeling and simulation packages are:

bayesnec: A Bayesian No-Effect- Concentration (NEC) Algorithm

clinPK: Calculates equations commonly used in clinical pharmacokinetics and clinical pharmacology, such as equations for dose individualization, compartmental pharmacokinetics, drug exposure, anthropomorphic calculations, clinical chemistry, and conversion of common clinical parameters. Where possible and relevant, it provides multiple published and peer-reviewed equations within the respective R function.

clinDR: Bayesian and ML Emax model fitting, graphics and simulation for clinical dose response.

dr4pl: Dose Response Data Analysis using the 4 Parameter Logistic (4pl) Model

linpk: Generate Concentration-Time Profiles from Linear PK Systems

mrgsolve: Facilitates simulation from hierarchical, ordinary differential equation (ODE) based models typically employed in drug development.

pharmr: Interfaces to the pharmpy library for pharmacometric modeling.

PKPDsim: Simulate dose regimens for pharmacokinetic-pharmacodynamic (PK-PD) models described by differential equation (DE) systems. And, simulation using ADVAN-style analytical equations is also supported.

pmxcode: Provides a user interface to create or modify pharmacometric models for various modeling and simulation software platforms.

rxode2: Methods for simulation from drug development hierarchical ordinary differential equations (ODE). This is the basis of the nlmixr2 package and supersedes the RxODE package.

nlmixr2: Nonlinear Mixed Effects Models in Population PK/PD (superseding the nlmixr package)

nmw: Is a package to understand the algorithms of NONMEM.

PKconverter: The Parameter Converter of the Pharmacokinetic Models

pkdata: Creates Pharmacokinetic/Pharmacodynamic (PK/PD) Data

pmxTools: Pharmacometric tools for common data analytical tasks; closed-form solutions for calculating concentrations at given times after dosing based on compartmental PK models (1-compartment, 2-compartment and 3-compartment, covering infusions, zero- and first-order absorption, and lag times, after single doses and at steady state, per Bertrand & Mentre (2008)); parametric simulation from NONMEM-generated parameter estimates and other output; and parsing, tabulating and plotting results generated by Perl-speaks-NONMEM (PsN).

scaRabee: Is an optimization toolkit for pharmacokinetic-pharmacodynamic models. A port of the Scarabee toolkit originally written as a Matlab-based application. scaRabee provides a framework for simulation and optimization of pharmacokinetic-pharmacodynamic models at the individual and population level. It is built on top of the neldermead package, which provides the direct search algorithm proposed by Nelder and Mead for model optimization.

ubiquity: PKPD, PBPK, and Systems Pharmacology Modeling Tools. It is a omplete work flow for the analysis of pharmacokinetic pharmacodynamic (PKPD), physiologically-based pharmacokinetic (PBPK) and systems pharmacology models including: creation of ordinary differential equation-based models, pooled parameter estimation, individual/population based simulations, rule-based simulations for clinical trial design and modeling assays, deployment with a customizable ‘Shiny’ app, and non-compartmental analysis. System-specific analysis templates can be generated and each element includes integrated reporting with ‘PowerPoint’ and ‘Word’.

UnifiedDoseFinding: Dose-Finding Methods for Non-Binary Outcomes

wnl: Minimization Tool for Pharmacokinetic-Pharmacodynamic Data Analysis

NONMEM modeling support

The NONMEM package is often used for pharmacometric modeling. Several packages are specifically available to support NONMEM-related modeling. Packages that work with NONMEM but also work with other modeling software are described in the general modeling section above.

nonmem2R: Loading NONMEM and PSN (Perl-speaks-NONMEM, output files to extract parameter estimates, provide visual predictive check (VPC) and goodness of fit (GOF) plots, and simulate with parameter uncertainty.

nonmem2rx: ‘NONMEM’ has been a tool for running nonlinear mixed effects models since the ‘80s and is still used today (Bauer 2019 doi:10.1002/psp4.12404). This tool ’allows you to convert ’NONMEM’ models to ‘rxode2’ (Wang, Hallow and James ‘(2016) doi:10.1002/psp4.12052) and with simple models ’nlmixr2’ syntax ‘(Fidler et al (2019) doi:10.1002/psp4.12445). The ’nlmixr2’ syntax requires ‘the residual specification to be included and it is not always translated. If ’available, the ’rxode2’ model will read in the ‘NONMEM’ data and compare the ‘simulation for the population model (’PRED’) individual model (‘IPRED’) and ‘residual model (’IWRES’) to immediately show how well the translation is ‘performing. This saves the model development time for people who are creating ’an ’rxode2’ model manually. Additionally, this package reads in all the ‘information to allow simulation with uncertainty (that is the number of ’observations, the number of subjects, and the covariance matrix) with a’‘rxode2’ model. This is complementary to the ‘babelmixr2’ package that ‘translates ’nlmixr2’ models to ‘NONMEM’ and can convert the objects converted ‘from ’nonmem2rx’ to a full ‘nlmixr2’ fit.

nonmemica: Systematically creates and modifies NONMEM(R) control streams. Harvests NONMEM output, builds run logs, creates derivative data, generates diagnostics.


xgxr: Supports a structured approach for exploring PKPD data. It also contains helper functions for enabling the modeler to follow best R practices (by appending the program name, figure name location, and draft status to each plot). In addition, it enables the modeler to follow best graphical practices (by providing a theme that reduces chart ink, and by providing time-scale, log-scale, and reverse-log-transform-scale functions for more readable axes). Finally, it provides some data checking and summarizing functions for rapidly exploring pharmacokinetics and pharmacodynamics (PKPD) datasets.

xpose4: A model building aid for nonlinear mixed-effects (population) model analysis using NONMEM, facilitating data set checkout, exploration and visualization, model diagnostics, candidate covariate identification and model comparison.

Visual predictive checks (VPC)

nlmeVPC: Various visual and numerical diagnosis methods for the nonlinear mixed effect model, including visual predictive checks, numerical predictive checks, and coverage plots.

tidyvpc: Perform a Visual Predictive Check (VPC), while accounting for stratification, censoring, and prediction correction. Using piping from ‘magrittr’, the intuitive syntax gives users a flexible and powerful method to generate VPCs using both traditional binning and a new binless approach Jamsen et al. (2018) doi:10.1002/psp4.12319 with Additive Quantile Regression (AQR) and Locally Estimated Scatterplot Smoothing (LOESS) prediction correction.

vpc: Visual predictive checks are a commonly used diagnostic plot in pharmacometrics, showing how certain statistics (percentiles) for observed data compare to those same statistics for data simulated from a model. The package can generate VPCs for continuous, categorical, censored, and (repeated) time-to-event data.

Pharmacokinetics Reporting

Communication of results is as important (or more important) than actually completing an analysis. While many users are currently using rmarkdown and knitr for general reporting, the features of packages which are important for reporting PK data are:

ncar: Provides NCA for a report writer generating rtf and pdf output.

pkr: Generates NCA data sets compliant to CDISC and other pharmacokinetic functions for reviewer.

pmxpartab: Create parameter tables for pharmacometric (PMx) analyses. Generate nicely formatted HTML tables to display estimation results for pharmacometric models.

xpose: Diagnostics for non-linear mixed-effects (population) models from ‘NONMEM’. ‘xpose’ facilitates data import, creation of numerical run summary and provide ‘ggplot2’-based graphics for data exploration and model diagnostics.

xpose.nlmixr2: Graphical Diagnostics for Pharmacometric Models: Extension to ‘nlmixr2’ (superseding the xpose.nlmixr package)

nlmixr2rpt: Provides automatic reporting of nlmixr2 models as word documents and powerpoint documents.

Datasets or Single Models

Packages that focus on a single pharmacokinetic model or dataset include:

caffsim: Simulate plasma caffeine concentrations using population pharmacokinetic model described in Lee, Kim, Perera, McLachlan and Bae (2015)

Study Design

Packages related to PK study design include:

BE: Analyze bioequivalence study data with industrial strength. Sample size could be determined for various crossover designs, such as 2x2 design, 2x4 design, 4x4 design, Balaam design, Two-sequence dual design, and William design.

microsamplingDesign (archived): Find optimal microsampling designs for non-compartmental pharacokinetic analysis using a general simulation methodology. This methodology consist of (1) specifying a pharmacokinetic model including variability among animals; (2) generating possible sampling times; (3) evaluating performance of each time point choice on simulated data; (4) generating possible schemes given a time point choice and additional constraints and finally (5) evaluating scheme performance on simulated data. The default settings differ from the article of Barnett and others, in the default pharmacokinetic model used and the parameterization of variability among animals.

PopED: PopED computes optimal experimental designs for both population and individual studies based on nonlinear mixed-effect models.

posologyr: Individual Dose Optimization using Population Pharmacokinetics Determine individual pharmacokinetic (and pharmacokinetic-pharmacodynamic) profiles and use them to personalise drug regimens. You provide the data and a population pharmacokinetic model, ‘posologyr’ provides the individual a posteriori estimate and allows you to determine the optimal dosing.

CRAN packages

Regular:bayesnec, BE, caffsim, clinDR, clinPK, dr4pl, linpk, mrgsolve, ncappc, ncar, nlmeVPC, nlmixr2, nlmixr2rpt, nmw, NonCompart, nonmem2R, nonmem2rx, nonmemica, pharmr, PK, PKconverter, pkdata, PKNCA, PKPDsim, pkr, pmxcode, pmxpartab, pmxTools, PopED, posologyr, qpNCA, ruminate, rxode2, scaRabee, tidyvpc, ubiquity, UnifiedDoseFinding, vpc, wnl, xgxr, xpose, xpose.nlmixr2, xpose4.

Related links

Other resources