fit_td2pLL: Fit a td2pLL model

View source: R/fit_td2pLL.R

fit_td2pLLR Documentation

Fit a td2pLL model

Description

fit_td2pLL is used to fit time-dose two-parameter log-logistic functions to time-dose-response data by the least-squares approach. This application of this model is tailored to dose-response cytotoxicity data, where also the exposure time is varied in the experiments. The model formula is

f(t,d)=100-100\frac{d^h}{EC_{50}(t)^h + d^h}

with

EC_{50}(t) = Δ \cdot t^{-γ} + C_0

where

  • d is the dose or concentration, t is the (exposure) time,

  • h is the hill- or slope parameter as known in the classical 4pLL model (there often parametrized as -b), a.k.a. sigmoid Emax model DoseFinding::drmodels(),

  • gamma represents the influence of (exposure) time on the dose-response relationship. Note that the model has identifiability issues if gamma=0. This is the case when there is no infuence of (exposure) time t on the dose-response relationship. Hence, for such a situation, the model is not appropriate. The default boundaries for gamma are -0.01 or 0.01, respectively. If this happens, there might be no time-dependency, the td2pLL model might not be appropriate and the parameters delta, h and c0 are not interpretable. A warning will appear.

  • delta is the maximum effect of (exposure) time on the ED50 parameter and

  • c0 is the threshold or minimal value of the ED50 value at all (exposure) times.

Usage

fit_td2pLL(
  data,
  start = NULL,
  control = NULL,
  lower = NULL,
  upper = NULL,
  trace = FALSE
)

Arguments

data

(numeric data.frame())
Data frame with columns named time, dose and resp storing numeric data on time, dose and response measures, respectively.

start

(list(4))
Optional list with named numeric startig values for h, delta, gamma and c0. When no starting values are provided, the default is used which is 2 for h, 0 for c0 and a linear interpolation procedure that leads to starting values for delta and gamma. For details, see get_starting_values().

control

(list())
Optional control argument for numerical optimization that will be passed to the nls function for non-linear fitting.

lower

(list(4) or numeric(4))
Optional named list or named numeric vector for lower boundaries for the parameters h, delta, gamma and c0 (in this order). As default, 1, -3*max(dose), -10 and 0 are used.

upper

(list(4) or numeric(4))
Optional named list or named numeric vector for upper boundaries for the parameters h, delta, gamma and c0 (in this order). As default, 10, 3\*max(dose), 10 and 3\*max(dose) are used.

trace

(logical(1))
Optinal argument passed to nls function to trace (print) the optimization status at each iteration.

Details

The non-linear fitting minimizes the sum of squared errors. We use the nlsLM function from the minpack.lm::nlsLM package. Note that the fitting assumes the response data to be measured in percent, i.e. ranges between 100 and 0 where it is assumed to be 100 at dose=0 and decreases with increasing doses.

Value

An object of class c("td2pLL_mod", "nls").

Examples

data(cytotox)
data_subset <- cytotox[cytotox$compound == "ASP", c("expo", "dose", "resp")]
colnames(data_subset)[1] <- "time"
fit <- fit_td2pLL(data = data_subset)
plot(fit, add_data = data_subset)
# Note that you can also plot a td2pLL model where simply the parameters are
# specified using [plot_td2pLL].

jcduda/td2pLL documentation built on May 14, 2022, 6:48 p.m.