Learn R Programming

beadarrayMSV (version 1.0.3)

normalizeShearedChannels: Channel normalization

Description

Normalizes the red and green channels of each array

Usage

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

Value

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

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.

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

Run this code
#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')

Run the code above in your browser using DataLab