[BioC] spike control normalization

Gordon Smyth smyth at wehi.edu.au
Wed Jun 29 07:32:30 CEST 2005

limma allows you to normalize on any set of control spots using any of the 
normalization methods "loess", "printtiploess", "robustspline". See page 15 
of the User's Guide. (Although I don't actually recommend this with 
spike-in controls, because of the risk of systematic bias in spike-in 
volumes relative to sample volumes.)

The technique is simply to set up a vector or matrix 'w' which is 1 for 
controls that you want to use for normalization and 0 otherwise. For example,

MA <- normalizeWithinArrays(RG, method="loess", weights=w)

will put a loess curve through the control spots and will subtract this 
curve from all the other spots.

You have asked to subtract the mean log-ratio for the spike-in from the 
other spots. This is not specifically provided for in limma (I don't 
recommend it), but it is easy. Suppose 'isSpikeIn' is a vector of 
TRUE/FALSE indicating which probes are spike-in controls. Then

MA <- normalizeWithinArrays(RG, method="none")
m <- colMeans(MA$M[isSpikeIn,],na.rm=TRUE)
MA$M <- MA$M - ( matrix(1,nrow(MA),1) %*% m )


>[BioC] spike control normalization
>Tue Jun 28 19:30:49 CEST 2005
>Hello all,
>I have experiment where a large fraction of genes are expected to be
>differentially expressed. That why I would like to normalize the data using
>spike control spots (I really would like to do within arrays normalization 
>subtract over the whole array ( or witnin i-th block) mean  of log-ratio of
>spike control from log-ratio for each gene). I use Limma.
>My question is: does limma have options for such normalization?
>If it does not that package I should use?
>Sincerely, Natalia.

More information about the Bioconductor mailing list