Compute standard Non-Compartmental Analysis (NCA) parameters for typical pharmacokinetic analyses and summarize them.
The PKNCA R package is designed to perform all noncompartmental analysis (NCA) calculations for pharmacokinetic (PK) data. The package is broadly separated into two parts (calculation and summary) with some additional housekeeping functions.
The primary and secondary goals of the PKNCA package are to 1) only give correct answers to the specific questions being asked and 2) automate as much as possible to simplify the task of the analyst. When automation would leave ambiguity or make a choice that the analyst may have an alternate preference for, it is either not used or is possible to override.
Note that backward compatibility will not be guaranteed until version 1.0. Argument and function changes will continue until then. These will be especially noticable around the inclusion of IV NCA parameters and additional specifications of the dosing including dose amount and route.
Citation information for the PKNCA package is available with a call to
citation(package="PKNCA"). The preferred citation until publication
of version 1.0 is below:
Denney W, Duvvuri S and Buckeridge C (2015). “Simple, Automatic Noncompartmental Analysis: The PKNCA R Package.” Journal of Pharmacokinetics and Pharmacodynamics, 42(1), pp. 11-107,S65. ISSN 1573-8744, doi: 10.1007/s10928-015-9432-2, <URL: https://github.com/billdenney/pknca>.
The current stable version of PKNCA is available on CRAN. You can install it and its dependencies using the following command:
To install the development version from GitHub, install the devtools package and then type the following commands:
install.packages("devtools") install.packages("Rcpp") library(devtools) install_github("billdenney/pknca")
# Load the package library(PKNCA) # Set the business rule options with the PKNCA.options() function # Load your concentration-time data myrawconcdata <- read.csv("myconc.csv", stringsAsFactors=FALSE) # Load your dose data myrawdosedata <- read.csv("mydose.csv", stringsAsFactors=FALSE) # Put your concentration data into a PKNCAconc object myconc <- PKNCAconc(data=myrawconcdata, formula=conc~time|treatment+subject/analyte) # Put your dose data into a PKNCAdose object mydose <- PKNCAdose(data=myrawdosedata, formula=dose~time|treatment+subject) # Combine the two (and automatically determine the intervals of # interest mydata <- PKNCAdata(myconc, mydose) # Compute the NCA parameters myresults <- pk.nca(mydata) # Summarize the results summary(myresults)
More help is available in the function help files, and be sure to look at the PKNCA.options function for many choices to make PKNCA conform to your company's business rules for calculations and summarization.
Please use the github issues page (https://github.com/billdenney/pknca/issues) to make feature requests and bug reports.
Note that backward compatibility of function arguments will not be (near-)guaranteed until version 1.0. Argument and function changes will continue until then. These will be especially noticable around the inclusion of IV NCA parameters and additional specifications of the dosing including dose amount and route.
BACKWARD INCOMPATIBILITY: The function supplied to the exclude argument 'FUN' now requires two arguments and operates on the level of a single group rather than the full object. The function can also return the reason as a character string instead of a logical mask of when to exclude data.
BACKWARD INCOMPATIBILITY: Added back-end functionality to only require one function to handle many NCA parameters that are related (e.g. combine pk.calc.aucpext, pk.calc.aucpext.obs, pk.calc.aucpext.pred, etc.). If your current code calls a specific function (like pk.calc.aucpext.pred), you must change to using the generic function (like pk.calc.aucpext)
BACKWARD INCOMPATIBILITY: Functions that previously may have returned Infinity due to dividing by zero (e.g. when AUC=0 calculating clearance) now return NA.
Added Validation vignette.
Corrected issue where time to steady-state with a single estimate may have given more than one estimated time to steady-state.
Corrected issue with exclude handling where now a blank string is also accepted as included (not excluded).
PKNCAconc now accepts a "volume" argument and pk.nca can now calculate urine/feces-related parameters (fe, ae, clr)
exclude_nca* functions added (Fixes issue #20)
Add manual half-life point selection (Fixes issue #18)
Improved summary settings (Fixes issue #54)
Add parameters for Ceoi and intravenous MRT
Updated vignettes to improve clarity
Added dose-normalized PK parameters (Fixes issue #41)
Added checks to confirm that concentration and time are numeric (Fixes feature request #40)
Improved test coverage
This release is not backward compatible. The switch to observed and predicted-related NCA parameters (like aucinf.obs and aucinf.pred) changed the format of the intervals specification.
First release targeting CRAN