normalizeBetweenArrays {limma}R Documentation

Normalize Between Arrays

Description

Normalizes expression intensities so that the intensities or log-ratios have similar distributions across a series of arrays.

Usage

normalizeBetweenArrays(object, method, ties=FALSE)

Arguments

object an matrix or MAList object containing expression ratios for a series of arrays
method character string specifying the normalization method to be used. Choices are "none", "scale", "quantile" or "Aquantile". A partial string sufficient to uniquely identify the choice is permitted.
ties logical, if TRUE then ties are treated in a careful way when method="quantile" or method="Aquantile"

Details

normalizeWithinArrays normalizes expression values to make intensities consistent within each array. normalizeBetweenArrays normalizes expression values to achieve consistency between arrays.

The scale normalization method was proposed by Yang et al (2001, 2002) and is further explained by Smyth and Speed (2003). The idea is simply to scale the log-ratios to have the same median-abolute-deviation (MAD) across arrays. This idea has also been implemented by the maNormScale function in the marrayNorm package. The implementation here is slightly different in that the MAD scale estimator is replaced with the median-absolute-value and the A-values are normalized as well as the M-values.

Quantile normalization was proposed by Bolstad et al (2003) for Affymetrix-style single-channel arrays and by Yang and Thorne (2003) for two-color cDNA arrays. method="quantile" ensures that the intensities have the same empirical distribution across arrays and across channels. method="Aquantile" ensures that the A-values (average intensities) have the same empirical distribution across arrays leaving the M-values (log-ratios) unchanged. These two methods are called "q" and "Aq" respectively in Yang and Thorne (2003).

If object is a matrix then the scale or quantile normlization will be applied to the columns. Applying method="Aquantile" when object is a matrix will produce an error.

Value

If object is a matrix then normalizeBetweenArrays produces a matrix of the same size. Otherwise, normalizeBetweenArrays produces an MAList object.

Author(s)

Gordon Smyth

References

Bolstad, B. M., Irizarry R. A., Astrand, M., and Speed, T. P. (2003), A comparison of normalization methods for high density oligonucleotide array data based on bias and variance. Bioinformatics 19, 185-193.

Smyth, G. K., and Speed, T. P. (2003). Normalization of cDNA microarray data. In: METHODS: Selecting Candidate Genes from DNA Array Screens: Application to Neuroscience, D. Carter (ed.). To appear.

Yang, Y. H., Dudoit, S., Luu, P., and Speed, T. P. (2001). Normalization for cDNA microarray data. In Microarrays: Optical Technologies and Informatics, M. L. Bittner, Y. Chen, A. N. Dorsel, and E. R. Dougherty (eds), Proceedings of SPIE, Volume 4266, pp. 141-152.

Yang, Y. H., Dudoit, S., Luu, P., Lin, D. M., Peng, V., Ngai, J., and Speed, T. P. (2002). Normalization for cDNA microarray data: a robust composite method addressing single and multiple slide systematic variation. Nucleic Acids Research 30(4):e15.

Yang, Y. H., and Thorne, N. P. (2003). Normalization for two-color cDNA microarray data. In: D. R. Goldstein (ed.), Science and Statistics: A Festschrift for Terry Speed, IMS Lecture Notes - Monograph Series, Volume 40, pp. 403-418.

See Also

An overview of LIMMA functions for normalization is given in 4.Normalization.

See also maNormScale in the marrayNorm package and normalize in the affy package.

Examples

library(sma)
data(MouseArray)
MA <- normalizeWithinArrays(mouse.data, mouse.setup)
plot.scale.box(MA$M)

#  Between array scale normalization as in Yang et al (2001):
MA <- normalizeBetweenArrays(MA,method="scale")
print(MA)
show(MA)
plot.scale.box(MA$M)

#  One can get the same results using the matrix method:
M <- normalizeBetweenArrays(MA$M,method="scale")
plot.scale.box(M)

#  MpAq normalization as in Yang and Thorne (2003):
MpAq <- normalizeWithinArrays(mouse.data, mouse.setup)
MpAq <- normalizeBetweenArrays(MpAq, method="Aq")
plotDensities(MpAq)

[Package Contents]