Load libraries

library(dplyr)
library(qpNCA)
library(knitr)

Define mutate_cond and locf functions

mutate_cond <- function (.data, condition, ..., envir = parent.frame()){
  condition <- eval(substitute(condition), .data, envir)
  if(!any(condition))return(.data) # do nothing if nothing to do
  .data[condition, ] <- .data[condition, ] %>% mutate(...)
  .data
}
locf <- function(x){
  good <- !is.na(x)
  positions <- seq(length(x))
  good.positions <- good * positions
  last.good.position <- cummax(good.positions)
  last.good.position[last.good.position == 0] <- NA
  x[last.good.position]
}

Check out Theoph data and prepare data for NCA

We use the internal Theoph dataset as input file, modify the data and add necessary columns
Furthermore, we introduce some missing values, LOQ values and time deviations

head(Theoph) %>% kable()

input.data <- Theoph

#we need nominal time variable for some tasks.
ntad <- data.frame(rn=c(1:11),ntad=c(0,0.25,0.5,1,2,4,5,7,9,12,24))

input.data %<>% 
           group_by(Subject) %>%
           mutate(subject=as.numeric(Subject),
                  rn=row_number(),
                  dose=Dose*Wt,
                  bloq=ifelse(conc==0,1,0),
                  loq=0.1,
                  excl_th=0
                  ) %>%
           left_join(ntad) %>%
           ungroup %>%
           arrange(subject,ntad) %>%
           select(subject,ntad,tad=Time,conc,dose,bloq,loq,excl_th)

input.data %<>%
           mutate_cond(condition=subject==2&ntad%in%c(24),conc=NA) %>%
           mutate_cond(condition=subject==4&ntad%in%c(9),conc=NA) %>%
           mutate_cond(condition=subject==3&ntad==9,excl_th=1) %>%
           mutate_cond(condition=subject==6&ntad==24,conc=0,bloq=1) %>%
           filter(!(subject==5&ntad==12))

Run full NCA analysis

# Create a covariates file, containing at least the dose given

cov = input.data %>%
      distinct(subject,dose)

nca = qpNCA(
      input.data,
      by = "subject",
      nomtimevar = "ntad",
      timevar = "tad",
      depvar = "conc",
      bloqvar = "bloq",
      loqvar = "loq",
      loqrule = 1,
      includeCmax = "Y",
      exclvar = "excl_th",
      plotdir = NA,
      timelab = "Time (h)",
      deplab = "Conc (ng/mL)",
      tau = 24,
      tstart = 4,
      tend = 9,
      teval = 12,
      covariates = cov,
      dose = "dose",
      factor = 1,
      reg = "sd",
      ss = "n",
      route = "EV",
      method = 1
      )

Print results

# Covariates:

nca$covariates %>% kable()

# Corrections applied:

nca$corrections %>% kable()

# half-life estimation:

nca$half_life %>% kable()

# PK parameters:

nca$pkpar %>% kable()

# Regression plots:

nca$plots


Try the qpNCA package in your browser

Any scripts or data that you put into this service are public.

qpNCA documentation built on Aug. 16, 2021, 5:08 p.m.