normaliseIllumina {beadarray} | R Documentation

## Normalise Illumina expression data

### Description

Normalises expression intensities from an `ExpressionSetIllumina` object so that the intensities are comparable between arrays.

### Usage

    normaliseIllumina(BSData, method="quantile", transform="none", T=NULL, status=fData(BSData)$Status,negctrl="negative",regular="regular",...)

### Arguments

`BSData` | an `ExpressionSetIllumina` object
`method` | character string specifying normalisation method (options are `"quantile"`, `"qspline"`, `"vsn"`, `"rankInvariant"`, `"median"` and `"none"`.
`transform` | character string specifying transformation to apply to the data prior to normalisation (options are `"none"`, `"log2"`, `neqc`, `rsn` and `"vst"`
`T` | A target distribution vector used when `method="rankInvariant"` normalisation. If `NULL`, the mean is used.
`status` | character vector giving probe types (used in neqc normalisation only)
`negctrl` | character vector giving negative control probes (used in neqc normalisation only)
`regular` | character vector giving regular probes (used in neqc normalisation only)
`...` | further arguments to be passed to `lumiT` or `neqc`

### Details

Normalisation is intended to remove from the expression measures any systematic trends which arise from the microarray technology rather than from differences between the probes or between the target RNA samples hybridized to the arrays.

In this function, the `transform` specified by the user is applied prior to the chosen normalisation procedure.

When `transform="vst"` the variance-stabilising transformation from the 'lumi' package is applied to the data. Refer to the `lumiT` documentation for further particulars. Note that the Detection P values are only passed on when they are available (i.e. not NA). The rsn option calls code directly from `lumi`.

For further particulars on the different normalisation methods options refer to the individual help pages (`?normalize.quantiles` for `"quantile"`, `?normalize.qspline` for "qspline", `?rankInvariantNormalise` for `"rankInvariant"`, `?medianNormalise` for `"median"` and `?vsn2` for `"vsn"`.

For median normalisation, the intensity for each gene is adjusted by subtracting the median of all genes on the array and then adding the median across all arrays. The effect is that each array then has the same median value.

Note: If your `BSData` object contains data already on the log-scale, be careful that you choose an appropriate `transform` to avoid transforming it twice. The same applies for the `"vst"` transformation and `"vsn"` normalisation methods which require the expression data stored in `BSData` to be on the original (un-logged) scale. When `method="vsn"`, transform must be set to `"none"`, since this method transforms and normalises the data as part of the model.

The neqc normalisation is described in Shi et al (2010) and documented in the limma package. Note that the output from this method has control probes removed.

### Value

An 'ExpressionSetIllumina' object which conatains the transformed and normalised expression values for each array.

### Author(s)

Matt Ritchie and Mark Dunning

### References

Shi. W, Oshlack. A, Smyth, GK, (2010) Optimizing the noise versus bias trade-off for Illumina whole genome expression BeadChips. Nucleic Acids Research

Lin, S.M., Du, P., Kibbe, W.A., (2008) 'Model-based Variance-stabilizing Transformation for Illumina Microarray Data', Nucleic Acids Res. 36, e11

### Examples

    if(require(beadarrayExampleData)){

    data(exampleSummaryData)
    exampleSummaryData.norm = normaliseIllumina(channel(exampleSummaryData, "G"), method="quantile", transform="none")

    exampleSummaryData.rsn = normaliseIllumina(channel(exampleSummaryData, "G.ul"),method="rsn", transform="none")

    }

[Package beadarray version 2.32.0 Index]