logLogisticRegression {PharmacoGx} | R Documentation

## Fits curves of the form E = E_inf + (1 - E_inf)/(1 + (c/EC50)^HS) to dose-response data points (c, E) given by the user and returns a vector containing estimates for HS, E_inf, and EC50.

### Description

By default, logLogisticRegression uses an L-BFGS algorithm to generate the fit. However, if this fails to converge to solution, logLogisticRegression samples lattice points throughout the parameter space. It then uses the lattice point with minimal least-squares residual as an initial guess for the optimal parameters, passes this guess to drm, and re-attempts the optimization. If this still fails, logLogisticRegression uses the PatternSearch algorithm to fit a log-logistic curve to the data.

### Usage

    logLogisticRegression(conc, viability, density = c(2, 10, 2),
      step = 0.5/density, precision = 0.05, lower_bounds = c(0, 0, -6),
      upper_bounds = c(4, 1, 6), scale = 0.07, family = c("normal", "Cauchy"),
      median_n = 1, conc_as_log = FALSE, viability_as_pct = TRUE,
      trunc = TRUE, verbose = FALSE)

### Arguments

`conc` | [vector] is a vector of drug concentrations.
`viability` | [vector] is a vector whose entries are the viability values observed in the presence of the drug concentrations whose logarithms are in the corresponding entries of the log_conc, where viability 0 indicates that all cells died, and viability 1 indicates that the drug had no effect on the cells.
`density` | [vector] is a vector of length 3 whose components are the numbers of lattice points per unit length along the HS-, E_inf-, and base-10 logarithm of the EC50-dimensions of the parameter space, respectively.
`step` | [vector] is a vector of length 3 whose entries are the initial step sizes in the HS, E_inf, and base-10 logarithm of the EC50 dimensions, respectively, for the PatternSearch algorithm.
`precision` | is a positive real number such that when the ratio of current step size to initial step size falls below it, the PatternSearch algorithm terminates. A smaller value will cause LogisticPatternSearch to take longer to complete optimization, but will produce a more accurate estimate for the fitted parameters.
`lower_bounds` | [vector] is a vector of length 3 whose entries are the lower bounds on the HS, E_inf, and base-10 logarithm of the EC50 parameters, respectively.
`upper_bounds` | [vector] is a vector of length 3 whose entries are the upper bounds on the HS, E_inf, and base-10 logarithm of the EC50 parameters, respectively.
`scale` | is a positive real number specifying the shape parameter of the Cauchy distribution.
`family` | [character], if "cauchy", uses MLE under an assumption of Cauchy-distributed errors instead of sum-of-squared-residuals as the objective function for assessing goodness-of-fit of dose-response curves to the data. Otherwise, if "normal", uses MLE with a gaussian assumption of errors
`median_n` | If the viability points being fit were medians of measurements, they are expected to follow a median of `family` distribution, which is in general quite different from the case of one measurement. Median_n is the number of measurements the median was taken of. If the measurements are means of values, then both the Normal and the Cauchy distributions are stable, so means of Cauchy or Normal distributed variables are still Cauchy and normal respectively.
`conc_as_log` | [logical], if true, assumes that log10-concentration data has been given rather than concentration data, and that log10(EC50) should be returned instead of EC50.
`viability_as_pct` | [logical], if false, assumes that viability is given as a decimal rather than a percentage, and that E_inf should be returned as a decimal rather than a percentage.
`trunc` | [logical], if true, causes viability data to be truncated to lie between 0 and 1 before curve-fitting is performed.
`verbose` | [logical], if true, causes warnings thrown by the function to be printed.

### Value

A vector containing estimates for HS, E_inf, and EC50

### Examples

    dose <- c("0.0025","0.008","0.025","0.08","0.25","0.8","2.53","8")
    viability <- c("108.67","111","102.16","100.27","90","87","74","57")
    computeAUC(dose, viability)

[Package PharmacoGx version 1.8.3 Index]