The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Title: Optimal PK/PD Index Finder
Version: 0.2.0
Description: Fits Emax models to pharmacokinetic/pharmacodynamic (PK/PD) data, estimate key parameters, and visualise model fits for multiple PK/PD indices. Methods are described in Macdougall J (2006) <doi:10.1007/0-387-33706-7_9>, Spiess AN, Neumeyer N (2010) <doi:10.1186/1471-2210-10-6>, and Burnham KP, Anderson DR (2004) <doi:10.1177/0049124104268644>.
License: GPL (≥ 3)
Encoding: UTF-8
RoxygenNote: 7.3.2
Depends: R (≥ 3.5)
LazyData: true
NeedsCompilation: no
Packaged: 2025-10-06 00:31:58 UTC; najla
Author: Najla Alabdulkarim [aut, cre], Joseph F Standing [aut]
Maintainer: Najla Alabdulkarim <naaalabdulkarim@hotmail.com>
Repository: CRAN
Date/Publication: 2025-10-09 07:40:07 UTC

PKPDindex: Optimal PK/PD Index Finder

Description

This function fits various Emax models to a given dataset, allowing for flexibility in model selection, initial parameter estimates, and plotting options.

Usage

PKPDindex(
  dataset,
  x_columns = NULL,
  y_column = "response",
  E0_fix,
  Emax_fix,
  EC50_init = NULL,
  maxiter = 500,
  tol = 1e-05,
  minFactor = 1e-07,
  select_mod = NULL,
  plot_results = FALSE,
  srow = FALSE,
  xlim = NULL,
  ylim = NULL,
  point_color = NULL,
  line_color = NULL,
  x_label = NULL,
  y_label = NULL,
  plot_title = NULL,
  log_scale_x = NULL,
  title_cex = 1.2,
  label_cex = 1,
  axis_cex = 1,
  detail_cex = 1
)

Arguments

dataset

A data frame containing the independent (x) and dependent (y) variables.

x_columns

A character vector specifying the x-axis variables (PK/PD indices). If NULL (default), the function attempts to detect appropriate columns from the dataset, specifically "auc_mic", "cmax_mic", and "t_mic". If these are not found, the user must specify the names manually.

  • "auc_mic": area under the concentration-time curve divided by the MIC.

  • "cmax_mic": peak drug concentration divided by the MIC.

  • "t_mic": time above MIC (duration the drug concentration exceeds MIC). Users should calculate these indices based on their PK data before using this function.

y_column

A character string specifying the response variable. Default name is "response".The response should be the log10-transformed change in CFU/ml (Delta log10 CFU/ml). Users can either provide a column with pre-calculated log10 CFU/ml changes, or provide raw CFU/ml counts at the initial (CFU_init) and 24-hour timepoint (CFU_24) , and the function will automatically calculate the log10 change in CFU/ml (Delta log10 CFU/ml).

E0_fix

Fixed E0 (baseline effect) value.

Emax_fix

Fixed Emax (maximum effect) value.

EC50_init

Optional numeric vector specifying initial EC50 values for each x_column. Defaults to NULL, and values are estimated automatically.

maxiter

Maximum number of iterations - Specifies the maximum number of iterations allowed for the nonlinear least squares (NLS) fitting process. Higher values may help convergence for complex models. Default maxiter = 500.

tol

Tolerance level - Defines the tolerance for convergence in the NLS algorithm. Lower values indicate stricter convergence criteria. Default tol = 1e-5.

minFactor

Minimum step factor - Determines the smallest step size used in parameter updates during the NLS fitting process, controlling the precision of optimisation. Default minFactor = 1e-7.

select_mod

Optional named list specifying preferred models for each x_column.

plot_results

Logical; if TRUE, the function generates model fit plots.

srow

Single row plotting - Logical (TRUE or FALSE). If TRUE, plots all best model fits in a single row for visual comparison.

xlim

A numeric vector of length 2 specifying x-axis limits.

ylim

A numeric vector of length 2 specifying y-axis limits.

point_color

Optional character string specifying the point colour in plots.

line_color

Optional character string specifying the line colour in plots.

x_label

Optional named list specifying custom x-axis labels.

y_label

Optional character string specifying a custom y-axis label.

plot_title

Optional character string specifying a custom plot title.

log_scale_x

Optional named list specifying whether to apply log10 scaling to x-axis for each x_column.

title_cex

Size of the plot title text. Default title_cex = 1.2.

label_cex

Size of the axis title. Default label_cex = 1.0.

axis_cex

Size of the axis labels. Default axis_cex = 1.0.

detail_cex

Size of the model detail text on the plot. Default detail_cex = 1.0.

Details

The function fits different variations of the Emax model to describe the relationship between PK/PD indices and response. The available models (m1 to m8) are defined as follows:

Users can select specific models using the select_mod argument.

Value

A list containing:

Examples

# Basic usage with default settings
 output <- PKPDindex(
  dataset = PKPDindex_data,
  E0_fix = 1.5,
  Emax_fix = 4.8
)
# Custom x and y columns and initial data
 output <- PKPDindex(
  dataset = PKPDindex_data,
  E0_fix = 1.5,
  Emax_fix = 4.8,
  x_columns = c("auc_mic","cmax_mic","t_mic"),
  y_column = "response",
  EC50_init = c(1,1,1)
)

# Generate and custom plots
 output <- PKPDindex(
  dataset = PKPDindex_data,
  E0_fix = 1.5,
  Emax_fix = 4.8,
  plot_results = TRUE,
  srow=TRUE,
  xlim = c(0, 50),
  ylim = c(-2, 10),
  point_color = "green",
  line_color = "purple",
  select_mod = list(auc_mic = "m5", t_mic = "m1"),
  x_label = list(auc_mic = "AUC/MIC", cmax_mic = "Cmax/MIC", t_mic = "Time>MIC"),
  y_label = "Log10 Change in CFU",
  plot_title = "Model Fitting Results",
  log_scale_x = list(auc_mic = TRUE, cmax_mic = TRUE,t_mic=FALSE),
  title_cex = 2,
  label_cex = 1.5,
  axis_cex = 1.4,
  detail_cex = 1.3
)

#' # To view the best models:
output$Best_Models

# To view all model results:
output$All_Model_Results

# To access a specific plot:
output$Plots[["cmax_mic"]]

PKPDindex_data

Description

Example dataset for Emax model fitting.

Usage

PKPDindex_data

Format

A data frame with 20 rows and 4 columns:

auc_mic

Area under the concentration-time curve (numeric)

cmax_mic

Maximum concentration of the drug (numeric)

t_mic

Time above minimum inhibitory concentration (numeric)

response

Observed drug response (numeric; Delta log10 CFU/ml)

Details

This dataset contains information about drug concentrations (AUC/MIC, Cmax/MIC, and Time above MIC) and their corresponding response values, used for modelling the drug's effect based on the Emax model.

Source

Generated for package example purposes.

Examples

data(PKPDindex_data)

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.