nplr: Function to Fit n-Parameter Logistic Regressions.

Description Usage Arguments Details Value slots Note Author(s) References See Also Examples

Description

This function computes a weighted n-parameters logistic regression, given x (typically compound concentrations) and y values (responses: optic densities, fluorescence, cell counts,...). See Details.

Usage

1
2
nplr(x, y, useLog = TRUE, LPweight = 0.25, npars = "all",
        method = c("res", "sdw", "gw"), silent = FALSE)

Arguments

x

: a vector of numeric values, e.g. a vector of drug concentrations.

y

: a vector of numeric values, e.g. a vector of responses, typicaly provided as proportions of control.

useLog

: Logical. Should x-values be Log10-transformed. Default to TRUE, set to FALSE if x is already in Log10.

LPweight

: a coefficient to adjust the weights. LPweight = 0 will compute a non-weighted np-logistic regression.

npars

: a numeric value (or "all") to specify the number of parameters to use in the model. If "all" the logistic model will be tested with 2 to 5 parameters, and the best option will be returned. See Details

method

: a character string to specify what weight method to use. Options are "res"(Default), "sdw", "gw". See Details

silent

: Logical. Specify whether warnings ad/or messages has to be silenced. Default to FALSE.

Details

The 5-parameter logistic regression is of the form:

y = B + (T - B)/[1 + 10^(b*(xmid - x))]^s

where B and T are the bottom and top asymptotes, respectively, b and xmid are the Hill slope and the x-coordinate at the inflexion point, respectively, and s is an asymetric coefficient. This equation is sometimes refered to as the Richards' equation [1,2].

When specifying npars = 4, the s parameter is forced to be 1, and the corresponding model is a 4-parameter logistic regression, symetrical around its inflexion point. When specifying npars = 3 or npars = 2, add 2 more constraints and force B and T to be 0 and 1, respectively.

Weight methods:

The model parameters are optimized, simultaneously, using nlm, given a sum of squared errors function, sse(Y), to minimize:

sse(Y) = Σ [W.(Yobs - Yfit)^2 ]

where Yobs, Yfit and W are the vectors of observed values, fitted values and weights, respectively.

In order to reduce the effect of possible outliers, the weights can be computed in different ways, specified in nplr:

The standard weights and general weights methods are describes in [3].

Value

An object of class nplr.

slots

Note

The data used in the examples are samples from the NCI-60 Growth Inhibition Data: https://wiki.nci.nih.gov/display/NCIDTPdata/NCI-60+Growth+Inhibition+Data, except for multicell.tsv which are simulated data.

Author(s)

Frederic Commo, Brian M. Bot

References

1- Richards, F. J. (1959). A flexible growth function for empirical use. J Exp Bot 10, 290-300.

2- Giraldo J, Vivas NM, Vila E, Badia A. Assessing the (a)symmetry of concentration-effect curves: empirical versus mechanistic models. Pharmacol Ther. 2002 Jul;95(1):21-45.

3- Motulsky HJ, Brown RE. Detecting outliers when fitting data with nonlinear regression - a new method based on robust nonlinear regression and the false discovery rate. BMC Bioinformatics. 2006 Mar 9;7:123.

See Also

convertToProp, getEstimates, plot.nplr, nplrAccessors

Examples

1
2
3
4
5
6
# Using the PC-3 data
  require(nplr)
  path <- system.file("extdata", "pc3.txt", package = "nplr")
  pc3 <- read.delim(path)
  model <- nplr(x = pc3$CONC, y = pc3$GIPROP)
  plot(model)

fredcommo/nplr documentation built on May 16, 2019, 2:41 p.m.