Normalizes the red and green channels of each array
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)
A matrix of dimension (samples x 4), containing the estimated median
and mad of each channel. See
List of pre-processing settings. See
normOpts$method, the channels on each array are
“quantile”, “medianAF”, or “linPeak”
setNormOptions). For quantile
normalization, the limma package (Smyth and Speed, 2003) is used
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
A list similar to
trChannel is returned with normalized data. A
character string “method” is added to the list describing the
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.
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
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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.