backgroundCorrect {limma} | R Documentation

## Correct Intensities for Background

### Description

Background correct microarray expression intensities.

### Usage

    backgroundCorrect(RG, method="subtract", offset=0, printer=RG$printer, verbose=TRUE)

### Arguments

`RG` | an `RGList` object or a numeric matrix.
`method` | character string specifying correction method. Possible values are `"none"`, `"subtract"`, `"half"`, `"minimum"`, `"movingmin"`, `"edwards"`, `"normexp"` or `"rma"`. If `RG` is a matrix, possible values are restricted to `"none"`, `"normexp"` or `"rma"`.
`offset` | numeric value to add to intensities
`printer` | a list containing printer layout information, see `PrintLayout-class`. Ignored if `RG` is a matrix.
`verbose` | logical. If `TRUE`, progress messages are sent to standard output

### Details

This function implements the background correction methods reviewed in Ritchie et al (2007).

If `method="none"` then no correction is done, i.e., the background intensities are treated as zero. If `method="subtract"` then the background intensities are subtracted from the foreground intensities. This is the traditional background correction method, but is not necessarily recommended. If `method="movingmin"` then the background estimates are replaced with the minimums of the backgrounds of the spot and its eight neighbors, i.e., the background is replaced by a moving minimum of 3x3 grids of spots.

The remaining methods are all designed to produce positive corrected intensities. If `method="half"` then any intensity which is less than 0.5 after background subtraction is reset to be equal to 0.5. If `method="minimum"` then any intensity which is zero or negative after background subtraction is set equal to half the minimum of the positive corrected intensities for that array. If `method="edwards"` a log-linear interpolation method is used to adjust lower intensities as in Edwards (2003). If `method="normexp"` a convolution of normal and exponential distributions is fitted to the foreground intensities using the background intensities as a covariate, and the expected signal given the observed foreground becomes the corrected intensity. This results in a smooth monotonic transformation of the background subtracted intensities such that all the corrected intensities are positive. See Ritchie et al (2007) and `normexp.fit` for more details. If `method="rma"`, then the background correction method of the RMA-algorithm for Affymetrix microarray data is used. This is similar to `"normexp"` but with different parameter estimates.

The `offset` can be used to add a constant to the intensities before log-transforming, so that the log-ratios are shrunk towards zero at the lower intensities. This may eliminate or reverse the usual 'fanning' of log-ratios at low intensities associated with local background subtraction.

Background correction (background subtraction) is also performed by the `normalizeWithinArrays` method for `RGList` objects, so it is not necessary to call `backgroundCorrect` directly unless one wants to use a method other than simple subtraction. Calling `backgroundCorrect` before `normalizeWithinArrays` will over-ride the default background correction.

### Value

An `RGList` object in which components `R` and `G` are background corrected and components `Rb` and `Gb` are removed.

### Note

Ritchie et al (2007) recommend `method="normexp"` whenever `RG` contains local background estimates. If `RG` contains morphological background estimates instead, then `method="subtract"` performs well.

### Author(s)

Gordon Smyth

### References

Edwards, D. E. (2003). Non-linear normalization and background correction in one-channel cDNA microarray studies Bioinformatics 19, 825-833.

Ritchie, M. E., Silver, J., Oshlack, A., Silver, J., Holmes, M., Diyagama, D., Holloway, A., and Smyth, G. K. (2007). A comparison of background correction methods for two-colour microarrays. Bioinformatics http://bioinformatics.oxfordjournals.org/cgi/content/abstract/btm412

### See Also

An overview of background correction functions is given in `04.Background`.

### Examples

    RG <- new("RGList", list(R=c(1,2,3,4),G=c(1,2,3,4),Rb=c(2,2,2,2),Gb=c(2,2,2,2)))
    backgroundCorrect(RG)
    backgroundCorrect(RG, method="half")
    backgroundCorrect(RG, method="minimum")
    backgroundCorrect(RG, offset=5)

[Package limma version 2.14.7 Index]