Description Usage Arguments Details Value Author(s) References See Also Examples

Background correct microarray expression intensities.

1 2 3 4 | ```
backgroundCorrect(RG, method="auto", offset=0, printer=RG$printer,
normexp.method="saddle", verbose=TRUE)
backgroundCorrect.matrix(E, Eb=NULL, method="auto", offset=0, printer=NULL,
normexp.method="saddle", verbose=TRUE)
``` |

`RG` |
a numeric matrix, |

`E` |
numeric matrix containing foreground intensities. |

`Eb` |
numeric matrix containing background intensities. |

`method` |
character string specifying correction method. Possible values are |

`offset` |
numeric value to add to intensities |

`printer` |
a list containing printer layout information, see |

`normexp.method` |
character string specifying parameter estimation strategy used by normexp, ignored for other methods. Possible values are |

`verbose` |
logical. If |

This function implements the background correction methods reviewed or developed in Ritchie et al (2007) and Silver at al (2009).
Ritchie et al (2007) recommend `method="normexp"`

whenever `RG`

contains local background estimates.
Silver et al (2009) shows that either `normexp.method="mle"`

or `normexp.method="saddle"`

are excellent options for normexp.
If `RG`

contains morphological background estimates instead (available from SPOT or GenePix image analysis software), then `method="subtract"`

performs well.

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.

The normexp method is available in a number of variants depending on how the model parameters are estimated, and these are selected by `normexp.method`

.
Here `"saddle"`

gives the saddle-point approximation to maximum likelihood from Ritchie et al (2007) and improved by Silver et al (2009), `"mle"`

gives exact maximum likelihood from Silver at al (2009), `"rma"`

gives the background correction algorithm from the RMA-algorithm for Affymetrix microarray data as implemented in the affy package, and `"rma75"`

gives the RMA-75 method from McGee and Chen (2006).
In practice `"mle"`

performs well and is nearly as fast as `"saddle"`

, but `"saddle"`

is the default for backward compatibility.
See `normexp.fit`

for more details.

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.

A matrix, `EListRaw`

or `RGList`

object in which foreground intensities have been background corrected and any components containing background intensities have been removed.

Gordon Smyth

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

McGee, M., and Chen, Z. (2006).
Parameter estimation for the exponential-normal convolution model for background correction of Affymetrix GeneChip data.
*Stat Appl Genet Mol Biol*, Volume 5, Article 24.

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* 23, 2700-2707.
http://bioinformatics.oxfordjournals.org/content/23/20/2700

Silver, J., Ritchie, M. E., and Smyth, G. K. (2009).
Microarray background correction: maximum likelihood estimation for the normal-exponential convolution model.
*Biostatistics* 10, 352-363.
http://biostatistics.oxfordjournals.org/content/10/2/352

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

.

1 2 3 4 5 | ```
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)
``` |

```
An object of class "RGList"
$R
[,1]
[1,] -1
[2,] 0
[3,] 1
[4,] 2
$G
[,1]
[1,] -1
[2,] 0
[3,] 1
[4,] 2
An object of class "RGList"
$R
[,1]
[1,] 0.5
[2,] 0.5
[3,] 1.0
[4,] 2.0
$G
[,1]
[1,] 0.5
[2,] 0.5
[3,] 1.0
[4,] 2.0
An object of class "RGList"
$R
[,1]
[1,] 0.5
[2,] 0.5
[3,] 1.0
[4,] 2.0
$G
[,1]
[1,] 0.5
[2,] 0.5
[3,] 1.0
[4,] 2.0
An object of class "RGList"
$R
[,1]
[1,] 4
[2,] 5
[3,] 6
[4,] 7
$G
[,1]
[1,] 4
[2,] 5
[3,] 6
[4,] 7
```

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.