doNlme {mixlow}R Documentation

Conduct nonlinear mixed-effects analysis of sigmoidal concentration- response data

Description

Organizes input and calls the nlme function to obtain parameter estimates for sigmoidal concentration-response curves. Starting values for the fixed effects are obtained from the output of the doNls function.

Usage

doNlme(mixlowData, nlsData, drugs=getDrugs(mixlowData), analysis="single", 
    varFunction= 1, method="ML", verbose=FALSE)

Arguments

mixlowData A list obtained from the output of prepareData. It contains adjusted concentration-response data.
nlsData A list obtained from the output of doNls. It contains parameter estimates for the concentration-effect curves, which are used as fixed-effects starting values by the nlme function.
drugs A vector of drug names
analysis An optional character string either “single” or “multiple” where “single” indicates that each drug is to be analyzed separately and “multiple” indicates that all drugs should be analyzed together. The default is “single”.
varFunction An optional numerical vector or list of lists from the set (1,2,3,4) that specifies the variance function(s) to be used for each analysis. If analysis is “multiple”, varFunction can be a vector. If analysis is “single” it can also be a vector, in which case all drugs will use the same varFunction vector. Or, if analysis is “single”, a list can be supplied of length equal to the number of drugs. Each entry in the list should be a list with named component varFunction. This allows a different set of varFunctions to be used with each drug. The default is 1.
method An optional character string. If “REML” the model is fit by maximizing the restricted log-likelihood. If “ML” the log-likelihood is maximized. Default is “ML”.
verbose An optional logical value. If TRUE information from intermediate steps in the doNlme analysis is printed. The default is FALSE.

Details

This function uses output from doNls as starting values for fixed effects. It organizes input and sets up calls to the nlme function in order to estimate parameters of sigmoidal concentration- response curves.

The variance functions for analysis of single drugs are:

1
sigma
2
sigma*E[response]
3
sigma*E[response]^beta
4
sigma*(beta1 + E[response])

The variance functions for analysis of multiple drugs are:

1
sigma
2
sigma*alpha, where alpha is drug-dependent
3
sigma*E[response]
4
sigma*E[response]^beta, where beta is drug-dependent

E[response] is used above to designate the expected response in a given well of a tray. For heteroscedastic errors, varFunction=2 (for single) and varFunction=3 (for multiple) analysis may be appropriate in many cases. The simpler error functions could be tried if the nlme function does not converge.

See Boik et al., 2008 for details of the model. The parameters estimated by the model are:

g
gamma, designates the steepness of the concentration-effect curve at the IC50
p
psi, designates the IC50
u
E[exp(u) + b_t], the expected value of all control wells across trays, where b is a tray-dependent random variable
lambda
Optional. The non-zero asymptote of a “modified” sigmoidal concentration-response curve. The value of lambda represents the fraction of E[exp(u) + b_t] that is associated with the non-zero asymptote.

Parameters u, g, and p are in log scale.

Use of analysis=“multiple” for mixtures that contain more than two drugs can sometimes be problematic in that the estimation procedure may not converge or may take a long time to converge. If a mixture contains more than a few drugs, one alternative is to estimate concentration-response curve parameters for each drug/mixture separately (i.e., use analysis=“single”). The disadvantage with this approach is that for analysis of any given drug, control-well data from the trays of other drugs are not used. Control-well responses are then estimated based on only a few (replicate) trays.

Value

Returns a list of class nlmeData for each analysis with the following components:

nlmeResults A list of results from the doNlme analysis:
nam
Name of the best model, chosen according to BIC score
method
Method used to estimate the model
drug
A string containing drug names
setNum
The sequential number of the analysis
cell
String indicating the cell line
lik
Log likelihood
bic
BIC score
sig
sigma
modelstruct
A list containing log(stdev(b_t)/sigma) and other variance structures
rc
Goodness-of-fit statistic
r2
r^2 goodness-of-fit statistic
se
Standard errors
coeff
Fixed effects
df
Degrees of freedom
covv
Parameter covariance values
nlmeGraph A list of data used for graphing nlme results:
pred0
Predicted values
dat1
Data values
ord
A string containing drug names
residu
Residuals from the best model
best
A string denoting the name of the best model

Author(s)

John Boik jcboik@stanford.edu

References

The model is described in Boik J.C., Newman R.A., Boik R.J. (2008) Quantifying synergism/antagonism using nonlinear mixed-effects modeling: a simulation study. Statistics in Medicine 27(7), 1040-61

See Also

doNls, plotNlmeData

Examples

# mixlowData data object is obtained using the prepareData function
data(mixlowData)
# nlsData data object is obtained using the doNls function
data(nlsData)
drugs = getDrugs(mixlowData)
nlmeData = doNlme(mixlowData, nlsData, drugs=drugs, varFunction= c(1,2))

[Package mixlow version 0.01.1 Index]