preprocessFunnorm {minfi} | R Documentation

## Functional normalization for Illumina 450k arrays

### Description

Functional normalization (FunNorm) is a between-array normalization method for the Illumina Infinium HumanMethylation450 platform. It removes unwanted variation by regressing out variability explained by the control probes present on the array.

### Usage

    preprocessFunnorm(rgSet, nPCs=2, sex = NULL, bgCorr = TRUE,
                      dyeCorr = TRUE, keepCN = TRUE, ratioConvert = TRUE,
                      verbose = TRUE)

### Arguments

`rgSet` | An object of class `RGChannelSet`.
`nPCs` | Number of principal components from the control probes PCA
`sex` | An optional numeric vector containing the sex of the samples.
`bgCorr` | Should the NOOB background correction be done, prior to functional normalization (see `preprocessNoob`)
`dyeCorr` | Should dye normalization be done as part of the NOOB background correction (see `preprocessNoob`)?
`keepCN` | Should copy number estimates be kept around? Setting to `FALSE` will decrease the size of the output object significantly.
`ratioConvert` | Should we run `ratioConvert`, ie. should the output be a `GenomicRatioSet` or should it be kept as a `GenomicMethylSet`; the latter is for experts.
`verbose` | Should the function be verbose?

### Details

This function implements functional normalization preprocessing for Illumina methylation microarrays. Functional normalization extends the idea of quantile normalization by adjusting for known covariates measuring unwanted variation. For the 450k array, the first k principal components of the internal control probes matrix play the role of the covariates adjusting for technical variation. The number k of principal components can be set by the argument `nPCs`. By default `nPCs` is set to 2, and have been shown to perform consistently well across different datasets. This parameter should only be modified by expert users. The normalization procedure is applied to the Meth and Unmeth intensities separately, and to type I and type II signals separately. For the probes on the X and Y chromosomes we normalize males and females separately using the gender information provided in the `sex` argument. For the Y chromosome, standard quantile normalization is used due to the small number of probes, which results in instability for functional normalization. If sex is unspecified (`NULL`), a guess is made using by the `getSex` function using copy number information. Note that this algorithm does not rely on any assumption and therefore can be be applicable for cases where global changes are expected such as in cancer-normal comparisons or tissue differences.

### Value

an object of class `GenomicRatioSet`, unless `ratioConvert=FALSE` in which case an object of class `GenomicMethylSet`.

### Author(s)

Jean-Philippe Fortin jfortin@jhsph.edu, Kasper D. Hansen khansen@jhsph.edu.

### References

JP Fortin, A Labbe, M Lemire, BW Zanke, TJ Hudson, EJ Fertig, CMT Greenwood and KD Hansen. Functional normalization of 450k methylation array data improves replication in large cancer studies. (2014) Genome Biology (2014) 15:503. doi:10.1186/s13059-014-0503-2.

### See Also

`RGChannelSet` as well as `IlluminaMethylationManifest` for the basic classes involved in these functions. `preprocessRaw` and `preprocessQuantile` are other preprocessing functions. Background correction may be done using `preprocessNoob`.

### Examples

    if (require(minfiData)) {
      ## RGsetEx.sub is a small subset of RGsetEx;
      ## only used for computational speed.
      Mset.sub.funnorm <- preprocessFunnorm(RGsetEx.sub)
    }

[Package minfi version 1.30.0 Index]