multiscan {multiscan} | R Documentation |
Estimates gene expressions from multiple laser scans of microarrays using non-linear functional regression model with additive plus multiplicative errors.
multiscan(data, initial = NULL, na.rm = TRUE, verbose = FALSE, control = list())
data |
A numeric matrix or data frame containing the intensity data
of a single microarray scanned at multiple (two or more) scanner settings. For
dual channel arrays, multiscan should be run on each channel of data separately.
The number of rows (n ) is equal to the number of spots/probes on the array,
and the number of columns (m ) equals the number of scans. Columns will be
arranged in order of scanner's sensitivity before fitting the model. Replicated
probes on the array are treated as individual spots. |
initial |
A vector of length m+2 to be used as initial values for
the scanning effects $(β_2,cdots, β_m)$ and scale
$(σ_1, σ_2, nu)$ parameters. If it is NULL (default), the
initial values are determined from the data . |
na.rm |
Logical. Should missing values be removed? Defaults to TRUE . |
verbose |
Logical. If TRUE , some intermediate results are printed
as the iteration proceeds. |
control |
A list of control parameters. See ‘Details’. |
The function implements the method of Khondoker et. al. (2006)
for combining multiple laser scans of microarrays. This function is
computationally slow and memory-intensive. That is due to the nested
iteration loops of the numerical optimization of the likelihood
function involving a large number ($n+m+2$) of parameters. The
optimization uses an alternating algorithm with the Nelder-Mead
simplex method (Nelder and Mead, 1965) in the inner loops. The function multiscan
directly uses the C function nmmin
, the internal code used in the
general-purpose optimization tool optim
, for
implementing the Nelder-Mead simplex method. For large data sets with many tens of thousands of probes, it
is recommended to consider first fitting the model using a random
subset (e.g. 10,000 rows) of the data matrix, and then using the
estimated scanning effects and scale parameters obtained as initial
values for fitting the model to the full data set.
The control
is a list of arguments. The users can change/supply any of the
following components:
trace
0
or 1
) of tracing information of
Nelder-Mead algorithm. If 1
, tracing information on the progress of the
optimization is produced. Because Nelder-Mead may be callled thousands of times
during the estimation process, setting trace = 1
will print too much
information very rapidly, which may not be useful. Defaults to 0
.gmaxit
150
.maxit
5000
.reltol
reltol * (abs(val) + reltol)
at a step. Defaults to 1e-5
.globaltol
globaltol
. Defaults to 1e-10
.alpha
, beta
, gamma
alpha
is the reflection
factor (default 1.0), beta
the contraction factor (0.5) and
gamma
the expansion factor (2.0).
Returns an object of class multiscan
with components
call |
The call of the multiscan function. |
beta |
A vector of length m containing the maximum likelihood estimates of
the scanning effects, the first component fixed at 1 . |
scale |
A vector of length 3 containing the maximum likelihood estimates of
the scale parameters $σ_1, σ_2, mbox{and} nu$. |
mu |
A vector of length n containing the estimated gene expressions. |
data |
A matrix of the input data with columns rearranged in order of scanner's sensitivity. |
fitted |
A matrix of the fitted model on the data . |
sdres |
A matrix of the standardised residuals. |
outerit |
Number of global iterations completed. |
gconv, conv, convmu |
Integer convergence codes.
|
|
Number of global iterations completed. |
|
Value of the loglikelihood function at convergence (gconv=0 ). NA
if not converged (gconv=1 ). |
Khondoker, M. R., Glasbey, C. A. and Worton, B. J. (2006). Statistical estimation of gene expression using multiple laser scans of microarrays. Bioinformatics 22, 215–219.
Nelder, J. A. and Mead, R. (1965). A simplex method for function minimization. The Computer Journal 7 308–313.
A web interface, created by David Nutter of Biomathematics & Statistics Scotland (BioSS), based on the original
Fortran code written by Khondoker et al. (2006) is available at
http://www.bioss.ac.uk/ktshowcase/create.cgi. Although it uses the same algorithm,
results from the web interface may not be exactly identical to that of
multiscan
as it uses a different (non-free IMSL routine) implementation of Nelder-Mead simplex.
## load the multiscan library library(multiscan) ## load the murine data set included in multiscan package data(murine) murine[1:10,] ## see first few rows of data ## fit the model on murine data with default options fit<-multiscan(murine) fit ## plot the fitted model plot(fit) ## get the estimated gene expressions gene.exprs<-fit$mu ## see more details as iteration progresses fit1<-multiscan(murine, verbose = TRUE) fit1