[BioC] continued dye effects, after normalization
Jenny Drnevich
drnevich at uiuc.edu
Wed Jan 10 17:42:23 CET 2007
Hi all,
I've been analyzing a spotted array experiment that used a common reference
with a 2X2 factorial design. There were no technical dye swaps, but half of
the 6 replicates in each group had the ref in Cy3 and half had the ref in
Cy5. Now that Jim has modified plotPCA to accept matrices, I was checking
for any unsuspected groupings that might indicate block effects. To my
surprise, the arrays were still grouping based on the reference channel,
even after inverting the M-values so that the reference channel was always
in the denominator! Attached is a figure with 2 PCA plots, and hopefully it
is small enough to make it through; the code that created them is
below. Has anyone else noticed this, and what have you done about it? I
went back and checked some other experiments that used a common reference,
and they also mostly showed a continued dye grouping. A between-array scale
normalization, either on the regular M-values or on inverted M-values,
failed to remove the dye effect as well. I didn't try other normalizations,
but instead included 'ref dye' as a blocking variable. The consensus
correlation from duplicateCorrelation was 0.154, which when included in the
lmFit model increase the number of genes found significantly different.
I have been working with a physics professor and his student who have
developed a different data mining algorithm, which shows these dye effects
even more strongly than PCA. They are suggesting another normalization is
needed to remove the ref dye effect, and they want to normalize the ref dye
groups separately. Doing a separate normalization doesn't seem like a good
idea to me, and I wanted to get other opinions on the dye effect, my
approach, and other normalization options.
Thanks!
Jenny
code:
RG <- read.maimages(targetsb$FileName,path="D:/MA Jenny",
source="genepix.median",names=targetsb$Label,wt.fun=f)
RG.half <- backgroundCorrect(RG,method="half")
MA.half <- normalizeWithinArrays(RG.half)
temp <- MA.half
temp$M[,targetsb$Cy3=="ref"] <- -1 * temp$M[,targetsb$Cy3=="ref"]
layout(matrix(1:2,2,1))
plotPCA(MA.half$M,groups=rep(c(1,2,1,2,1,2,1,2),each=3),groupnames=c("ref
G","ref R"))
# PC1 divides the arrays by which channel the ref was in
plotPCA(temp$M,groups=rep(c(1,2,1,2,1,2,1,2),each=3),groupnames=c("ref
G","ref R"))
# after inverting the M-values for half the arrays, PC1 divides
the arrays by one of the treatments, but
# the dye effect still shows up in PC2
MA.half.scale <- normalizeBetweenArrays(MA.half,method="scale")
design <- modelMatrix(targetsb,ref="ref")
block <- rep(c(1,2,1,2,1,2,1,2),each=3)
corfit <- duplicateCorrelation(MA.half.scale[RG$genes$Status=="cDNA",],
design, ndups=1, block=block)
corfit$consensus
#[1] 0.1537080
Jenny Drnevich, Ph.D.
Functional Genomics Bioinformatics Specialist
W.M. Keck Center for Comparative and Functional Genomics
Roy J. Carver Biotechnology Center
University of Illinois, Urbana-Champaign
330 ERML
1201 W. Gregory Dr.
Urbana, IL 61801
USA
ph: 217-244-7355
fax: 217-265-5066
e-mail: drnevich at uiuc.edu
More information about the Bioconductor
mailing list