{affy}R Documentation

Fit Li and Wong Model to a Probe Set


Fits the model described in Li and Wong (2001) to a probe set with I chips and J probes.

Usage, remove.outliers=TRUE, normal.array.quantile=0.5,
            normal.resid.quantile=0.9, large.threshold=3, large.variation=0.8,
            outlier.fraction=0.14, delta=1e-06, maxit=50,
            outer.maxit=50,verbose=FALSE, ...)

li.wong(data.matrix,remove.outliers=TRUE, normal.array.quantile=0.5,
            normal.resid.quantile=0.9, large.threshold=3, large.variation=0.8,
            outlier.fraction=0.14, delta=1e-06, maxit=50,


data.matrix an I x J matrix containing the probe set data. Typically the i,j entry will contain the PM-MM value for probe pair j in chip i. Another possible use, is to use PM instead of PM-MM.
remove.outliers logical value indicating if the algorithm will remove outliers according to the procedure described in Li and Wong (2001).
large.threshold used to define outliers.
normal.array.quantile quantile to be used when determining what a normal SD is. probes or chips having estimates with SDs bigger than the quantile normal.array.quantile of all SDs x large.threshold
normal.resid.quantile any residual bigger than the normal.resid.quantile quantile of all residuals x large.threshold is considered an outlier
large.variation any probe or chip describing more than this much total variation is considered an outlier
outlier.fraction this is the maximum fraction of single outliers that can be in the same probe or chip.
delta numerical value used to define the stopping criterion.
maxit maximum number of iterations when fitting the model.
outer.maxit maximum number of iterations of defined outliers.
verbose logical value. If TRUE information is given of the status of the algorithm.


This is Bioconductor's implementation of the Li and Wong algorithm. The Li and Wong PNAS 2001 paper was followed. However, you will not get the same results as you would get with dChip. dChip is not open source so it is not easy to reproduce.

Notice that this iterative algorithm will not always converge. If you run the algorithm on thousands of probes expect some non-convergence warnings. These are more likely when few arrays are used. We recommend using this method only if you have 10 or more arrays.

Please refer to references for more details.


li.wong returns a vector of expression measures (or column effects) followed by their respective standard error estimates. It was designed to work with express which is no longer part of the package. returns much more. Namely, a list containing the fitted parameters and relevant information.

theta fitted thetas.
phi fitted phis.
sigma.eps estimated standard deviation of the error term.
sigma.theta estimated standard error of theta.
sigma.phi estimated standard error of phis.
theta.outliers logical vector describing which chips (thetas) are considered outliers (TRUE).
phi.outliers logical vector describing which probe sets (phis) are considered outliers (TRUE)
convergence1 logical value. If FALSE the algorithm did not converge when fitting the phis and thetas.
convergence2 logical value. If FALSE the algorithm did not converge in deciding what are outliers.
iter number of iterations needed to achieve convergence.
delta difference between thetas when iteration stopped.


Rafael A. Irizarry, Cheng Li, Fred A. Wright, Ben Bolstad


Li, C. and Wong, W.H. (2001) Genome Biology 2, 1–11.

Li, C. and Wong, W.H. (2001) Proc. Natl. Acad. Sci USA 98, 31–36.

See Also

li.wong, expresso


    x <- sweep(matrix(2^rnorm(600),30,20),1,seq(1,2,len=30),FUN="+")
    fit1 <-

[Package affy version 1.8.1 Index]