hellow everyone!
I will be delighted if any one can help me with this! I am working on
a
microarray dual channel data, and i need to do a inter array
normalization.
I have tried with quantile normalization (available in limma package)
method
but the result i am getting is not satisfactory as the boxes are not
appearing to be of the same sizes which according to the fact should
be the
same. can you please give me a reason for this. and is there any
better
normalization method available for dual channel experiment.
regards
--
Veerendra.
[[alternative HTML version deleted]]
On Sat, Jan 1, 2011 at 9:23 AM, Veerendra GP <gpveerendra09 at="" gmail.com=""> wrote:
> hellow everyone!
>
> I will be delighted if any one can help me with this! I am working
on a
> microarray dual channel data, and i need to do a inter array
normalization.
> I have tried with quantile normalization (available in limma
package) method
> but the result i am getting is not satisfactory as the boxes are not
> appearing to be of the same sizes which according to the fact should
be the
> same. can you please give me a reason for this. and is there any
better
> normalization method available for dual channel experiment.
Hi, Veerendra.
If you are doing "separate channel normalization" using quantile
normalization of red and green channels between arrays, then I do not
think there is any requirement that the boxplots of ratios be
identical. Is that what you mean by "boxes"? Perhaps I am
misunderstanding what you have done, though. If you want comments on
the code, then feel free to post as close to a reproducible example as
you can and the output of sessionInfo().
Sean
hi sean,
I am sorry the code i mentioned in the last mail was not a running
code.
here i have displayed the complete running code.
I have done the quantile normalization before multiple testing.
library (limma);
targets <- readTargets("target.txt")
#print (targets);
RG<-read.maimages(targets$FileName,source="agilent",columns=list(R="rP
rocessedSignal",G="gProcessedSignal"),path="data_files");
#to remove control spots
status <- rep("gene", nrow(RG$genes));
status[grep("UHNcntrl*", RG$genes[,"ProbeName"])] <- "cntrl";
status[grep("UHNblank*", RG$genes[,"ProbeName"])] <- "cntrl";
RGnc <- RG[status!="cntrl",];
# to visualize MA plots before normalization.
d <- dim(targets)
for(i in 1: d[1])
{
pdf(paste("RG",i,".pdf",sep="_"))
plotMA(RGnc, array = i)
dev.off()
}
# to visualize density plot before normalization.
pdf("RG_Density_Plot_before_quantile.pdf")
plotDensities(RGnc)
dev.off()
MA.q <- normalizeBetweenArrays(RGnc, method="quantile")
#To visualize data after quantile noralization
pdf("MA.q_Density_Plot_after_quantile.pdf");
plotDensities(MA.q);
dev.off();
pdf("Box_Plot_after_quantile.pdf");
boxplot(MA.q$M~col(MA.q$M));
dev.off();
designM <-
c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
# To fit linear regression model
fit <- lmFit(MA.q, design=designM)
#To fit baysiean model, whihc basically calulates p value, odds ratio
etc.
eb <- eBayes(fit)
#To fit FDR and get all the result
tb<-topTable(eb, adjust.method="fdr",genelist = RGnc$genes, n=13056)
#To write to file
write.table(tb,file='normalResults_with_quantile.txt',sep="\t")
filter <- tb[(tb$logFC)>= 1 & (tb$P.Val)< 0.05 | (tb$logFC) <= -1 &
(tb$P.Val)< 0.05,]
filter2 <- tb[(tb$logFC)>= 1 | (tb$logFC) <= -1,]
write.table(filter2, file="geneList_with_no_Pval.txt",row.names=
FALSE,sep="\t")
write.table(filter, file="geneList_with_quantile.txt",row.names=
FALSE,sep="\t")
I agree that the boxplots should be identical after the quantile
normalization but the boxplot which I have sent you in the last mail
is
obtained after the quantile normalization as per the above mentioned
code.
here I am also attaching the density plots for the same set of data.
On Sat, Jan 1, 2011 at 9:36 PM, Sean Davis <sdavis2 at="" mail.nih.gov="">
wrote:
- Show quoted text -
On Sat, Jan 1, 2011 at 9:23 AM, Veerendra GP <gpveerendra09 at="" gmail.com="">
wrote:
> hellow everyone!
>
> I will be delighted if any one can help me with this! I am working
on a
> microarray dual channel data, and i need to do a inter array
normalization.
> I have tried with quantile normalization (available in limma
package)
method
> but the result i am getting is not satisfactory as the boxes are not
> appearing to be of the same sizes which according to the fact should
be
the
> same. can you please give me a reason for this. and is there any
better
> normalization method available for dual channel experiment.
Hi, Veerendra.
If you are doing "separate channel normalization" using quantile
normalization of red and green channels between arrays, then I do not
think there is any requirement that the boxplots of ratios be
identical. Is that what you mean by "boxes"? Perhaps I am
misunderstanding what you have done, though. If you want comments on
the code, then feel free to post as close to a reproducible example as
you can and the output of sessionInfo().
Sean
On Sat, Jan 1, 2011 at 8:06 AM, Sean Davis <sdavis2 at="" mail.nih.gov="">
wrote:
> On Sat, Jan 1, 2011 at 9:23 AM, Veerendra GP <gpveerendra09 at="" gmail.com="">
> wrote:
> > hellow everyone!
> >
> > I will be delighted if any one can help me with this! I am working
on a
> > microarray dual channel data, and i need to do a inter array
> normalization.
> > I have tried with quantile normalization (available in limma
package)
> method
> > but the result i am getting is not satisfactory as the boxes are
not
> > appearing to be of the same sizes which according to the fact
should be
> the
> > same. can you please give me a reason for this. and is there any
better
> > normalization method available for dual channel experiment.
>
> Hi, Veerendra.
>
> If you are doing "separate channel normalization" using quantile
> normalization of red and green channels between arrays, then I do
not
> think there is any requirement that the boxplots of ratios be
> identical. Is that what you mean by "boxes"? Perhaps I am
> misunderstanding what you have done, though. If you want comments
on
> the code, then feel free to post as close to a reproducible example
as
> you can and the output of sessionInfo().
>
> Sean
>
--
Veerendra.
hi sean,
I am sorry the code i mentioned in the last mail was not a running
code.
here i have displayed the complete running code.
library (limma);
targets <- readTargets("target.txt")
#print (targets);
RG<-read.maimages(targets$FileName,source="agilent",columns=list(R="rP
rocessedSignal",G="gProcessedSignal"),path="data_files");
#to remove control spots
status <- rep("gene", nrow(RG$genes));
status[grep("UHNcntrl*", RG$genes[,"ProbeName"])] <- "cntrl";
status[grep("UHNblank*", RG$genes[,"ProbeName"])] <- "cntrl";
RGnc <- RG[status!="cntrl",];
# to visualize MA plots before normalization.
d <- dim(targets)
for(i in 1: d[1])
{
pdf(paste("RG",i,".pdf",sep="_"))
plotMA(RGnc, array = i)
dev.off()
}
# to visualize density plot before normalization.
pdf("RG_Density_Plot_before_quantile.pdf")
plotDensities(RGnc)
dev.off()
MA.q <- normalizeBetweenArrays(RGnc, method="quantile")
#To visualize data after quantile noralization
pdf("MA.q_Density_Plot_after_quantile.pdf");
plotDensities(MA.q);
dev.off();
pdf("Box_Plot_after_quantile.pdf");
boxplot(MA.q$M~col(MA.q$M));
dev.off();
designM <-
c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
# To fit linear regression model
fit <- lmFit(MA.q, design=designM)
#To fit baysiean model, whihc basically calulates p value, odds ratio
etc.
eb <- eBayes(fit)
#To fit FDR and get all the result
tb<-topTable(eb, adjust.method="fdr",genelist = RGnc$genes, n=13056)
#To write to file
write.table(tb,file='normalResults_with_quantile.txt',sep="\t")
filter <- tb[(tb$logFC)>= 1 & (tb$P.Val)< 0.05 | (tb$logFC) <= -1 &
(tb$P.Val)< 0.05,]
filter2 <- tb[(tb$logFC)>= 1 | (tb$logFC) <= -1,]
write.table(filter2, file="geneList_with_no_Pval.txt",row.names=
FALSE,sep="\t")
write.table(filter, file="geneList_with_quantile.txt",row.names=
FALSE,sep="\t")
I agree that the boxplots should be identical after the quantile
normalization but the boxplot which I have sent you in the last mail
is
obtained after the quantile normalization as per the above mentioned
code.
here I am also attaching the density plots for the same set of data.
On Sat, Jan 1, 2011 at 9:36 PM, Sean Davis <sdavis2 at="" mail.nih.gov="">
wrote:
> On Sat, Jan 1, 2011 at 9:23 AM, Veerendra GP <gpveerendra09 at="" gmail.com="">
> wrote:
> > hellow everyone!
> >
> > I will be delighted if any one can help me with this! I am working
on a
> > microarray dual channel data, and i need to do a inter array
> normalization.
> > I have tried with quantile normalization (available in limma
package)
> method
> > but the result i am getting is not satisfactory as the boxes are
not
> > appearing to be of the same sizes which according to the fact
should be
> the
> > same. can you please give me a reason for this. and is there any
better
> > normalization method available for dual channel experiment.
>
> Hi, Veerendra.
>
> If you are doing "separate channel normalization" using quantile
> normalization of red and green channels between arrays, then I do
not
> think there is any requirement that the boxplots of ratios be
> identical. Is that what you mean by "boxes"? Perhaps I am
> misunderstanding what you have done, though. If you want comments
on
> the code, then feel free to post as close to a reproducible example
as
> you can and the output of sessionInfo().
>
> Sean
>
--
Veerendra.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: RG_Density_Plot_before_quantile.pdf
Type: application/pdf
Size: 547277 bytes
Desc: not available
URL: <https: stat.ethz.ch="" pipermail="" bioconductor="" attachments="" 20110103="" f3fd3c72="" attachment-0002.pdf="">
-------------- next part --------------
A non-text attachment was scrubbed...
Name: MA.q_Density_Plot_after_quantile.pdf
Type: application/pdf
Size: 548874 bytes
Desc: not available
URL: <https: stat.ethz.ch="" pipermail="" bioconductor="" attachments="" 20110103="" f3fd3c72="" attachment-0003.pdf="">
Veerendra GP <gpveerendra09 at="" ...=""> writes:
>
> hi sean,
> I am sorry the code i mentioned in the last mail was not a running
code.
> here i have displayed the complete running code.
> I have done the quantile normalization before multiple testing.
>
> library (limma);
> targets <- readTargets("target.txt")
> #print (targets);
>
RG<-read.maimages(targets$FileName,source="agilent",
columns=list(R="rProcessedSignal",G="gProcessedSignal"),path="data_fil
es");
> #to remove control spots
> status <- rep("gene", nrow(RG$genes));
> status[grep("UHNcntrl*", RG$genes[,"ProbeName"])] <- "cntrl";
> status[grep("UHNblank*", RG$genes[,"ProbeName"])] <- "cntrl";
> RGnc <- RG[status!="cntrl",];
>
> MA.q <- normalizeBetweenArrays(RGnc, method="quantile")
> #To visualize data after quantile noralization
> pdf("MA.q_Density_Plot_after_quantile.pdf");
> plotDensities(MA.q);
> dev.off();
<snip>
> I agree that the boxplots should be identical after the quantile
> normalization but the boxplot which I have sent you in the last mail
is
> obtained after the quantile normalization as per the above mentioned
code.
> here I am also attaching the density plots for the same set of data.
hi - It is not clear to me what 'boxes' you have plotted whose sizes
you expect
to be equal. According to your code, it appears that you are
normalizing the
red and green intensities to have the same distribution. So if you
make
boxplots of the normalized red and green intensities (separately) then
the
'boxplots should all be identical'.
But if you want the boxplots of the _log ratios_ to be identical then
you have
not done the normalization appropriately. Separate quantile
normalization of
the red and green channel intensities does not guarantee that the
within slide
log ratios will have the same distribution across slides, in fact it
would be
rather surprising to me if they did.
You also have not really made your aim very clear, as far as I can
tell you have
only said that you 'need to do an interarray normalization'. There can
be
different motivations or reasoning behind this, and that is what
should guide
your choice of normalization. You might get an acceptable
normalization by a
within slide normalization of the log ratios followed by between slide
scale
normalization (or not, again depending on your experiment, which you
have not
described at all). You can look at some of the other options for
normalizeBetweenArrays to see if one of those is appropriate for your
aim.
Best regards,
Darlene
--
Darlene Goldstein
?cole Polytechnique F?d?rale de Lausanne (EPFL)
Institut de math?matiques
B?timent MA, Station 8 Tel: +41 21 693 0528
CH-1015 Lausanne Fax: +41 21 693 4303
SWITZERLAND