normalizeShearedChannels: Channel normalization

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

View source: R/beadarrayMSV.R

Description

Normalizes the red and green channels of each array

Usage

1
2
normalizeShearedChannels(trChannel, noiseDist,
    normOpts = setNormOptions())

Arguments

trChannel

A list with at least two matrices, “X” and “Y”, containing red and green intensities, respectively. The dimensions of the matrices are (markers x samples)

noiseDist

A matrix of dimension (samples x 4), containing the estimated median and mad of each channel. See getNoiseDistributions

normOpts

List of pre-processing settings. See setNormOptions

Details

Depending on normOpts$method, the channels on each array are “quantile”, “medianAF”, or “linPeak” normalized (see setNormOptions). For quantile normalization, the limma package (Smyth and Speed, 2003) is used (see normalizeQuantiles). For “medianAF”, the red channel is scaled such that median(R/(R+G)) is close to one half. This is similar to the normalization suggested in Macgregor et al. (2008). If “linPeak” is chosen, both channels are linearly scaled by the quantile defined in normOpts$scale.

Value

A list similar to trChannel is returned with normalized data. A character string “method” is added to the list describing the normalization performed

Note

Though quantile normalization is often reported to work well, it represents a quite drastic form of manipulation of the data. It assumes that any difference in distribution between the channels is related to technical measurement error rather than biological variation. By forcing the data into identical distributions, there is a risk that some samples are forced into wrong clusters in the subsequent genotype calling. We therefore advice to use quantile normalization with caution, and only if it is seen to have a good effect on subsequent clustering.

Author(s)

Lars Gidskehaug

References

S. Macgregor et al. (2008) Highly cost-efficient genome-wide association studies using DNA pools and dense SNP arrays. Nucleic Acids Res. 36(6):e35

G. K. Smyth and T. P. Speed (2003) Normalization of cDNA microarray data. Methods 31:265-27

See Also

preprocessBeadSet, normalizeQuantiles

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
## Not run: 
#Read files into BeadSetIllumina-object
rPath <- system.file("extdata", package="beadarrayMSV")
BSDataRaw <- readBeadSummaryOutput(path=rPath,recursive=TRUE)

#Find indexes to sub-bead pools
beadInfo <- read.table(paste(rPath,'beadData.txt',sep='/'),sep='\t',
    header=TRUE,as.is=TRUE)
rownames(beadInfo) <- make.names(beadInfo$Name)
normInd <- getNormInd(beadInfo,featureNames(BSDataRaw))

#Pre-process 1 array
normOpts <- setNormOptions(minSize=10)
BSData <- shearRawSignal(BSDataRaw, normOpts = normOpts)
noiseDist <- getNoiseDistributions(BSData, normInd = normInd,
    normOpts = normOpts)
trChannel <- transformChannels(assayData(BSData)$R,
    assayData(BSData)$G, normOpts = normOpts)
mafData <- normalizeShearedChannels(trChannel, noiseDist,
    normOpts = normOpts)
quantData <- normalizeShearedChannels(trChannel, noiseDist,
    normOpts = setNormOptions(method='quantNorm'))

#Plot distributions
dev.new()
par(mfrow=c(3,2))
hist(trChannel$X,breaks=30,col='red',main='Red channel')
hist(trChannel$Y,breaks=30,col='green',main='Green channel')
hist(mafData$X,breaks=30,col='red',main='medianAF')
hist(mafData$Y,breaks=30,col='green',main='medianAF')
hist(quantData$X,breaks=30,col='red',main='quantNorm')
hist(quantData$Y,breaks=30,col='green',main='quantNorm')

## End(Not run)

beadarrayMSV documentation built on May 1, 2019, 6:33 p.m.