# fit.li.wong: Fit Li and Wong Model to a Probe Set In affy: Methods for Affymetrix Oligonucleotide Arrays

## Description

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

## Usage

 ```1 2 3 4 5 6 7 8 9``` ```fit.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, 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, outer.maxit=50,verbose=FALSE) ```

## Arguments

 `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. `...` additional arguments.

## Details

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.

## Value

`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.

`fit.li.wong` 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.

## Author(s)

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

## References

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.

`li.wong`, `expresso`
 ```1 2 3 4``` ``` x <- sweep(matrix(2^rnorm(600),30,20),1,seq(1,2,len=30),FUN="+") fit1 <- fit.li.wong(x) plot(x[1,]) lines(fit1\$theta) ```