Question: Regarding quantile normalization.
0
8.6 years ago by
Veerendra GP100
Veerendra GP100 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. regards -- Veerendra. [[alternative HTML version deleted]]
normalization limma • 553 views
modified 8.6 years ago by Darlene Goldstein230 • written 8.6 years ago by Veerendra GP100
0
8.6 years ago by
Sean Davis21k
United States
Sean Davis21k 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
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. ADD REPLYlink written 8.6 years ago by Veerendra GP100 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="">
0
8.6 years ago by
Darlene Goldstein230 wrote:
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