Learn R Programming

beadarray (version 2.22.2)

normaliseIllumina: 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

Value

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

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.

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

Run this code

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")

}

Run the code above in your browser using DataLab