Help with Background correction (Normexp+offset)
1
0
Entering edit mode
@kachroo-priyanka-4292
Last seen 9.6 years ago
Dear All, I needed your help with some 2-color microarray data analysis. So the problem is that after sorting by pvalue and fold change cut off of 1.5, I am left with very few differentially expressed genes. I use Normexp method for background correction with an offset value of 50 (default). 1. So if i use offset=50, i get downregulated genes=11, upregulated genes=31 2. If i use offset=25, i get downregulated=14 , upregulated=46 3. If i use offset=10, i get downregulated=20 ,upregulated=93 I read on the Limma-bioconductor forum that making a boxplot of foreground and background (green and red channels) should help decide if background correction is needed or not. I made that boxplot but do not know how to interpret it. I have also attached MA plots before and after background correction for each offset (10 and 25) with this email. Can someone guide me in this regard. Also this is what the moderator writes for a way to decide the offset value " You can judge a good value for the offset by inspection of the MA-plots. If you really want a quantitative way to judge this, look at the component fit$df.prior after you use the eBayes() function in limma. The better you stabilize the variances, the larger will be df.prior and the greater will be the power to detect DE genes. Hence the offset which maximises df.prior is, in sense, optimal " So, when i run my code and type fit$df.prior i get a value of 1.48. How does this number help me decide the offset. Here is the code targets<-readTargets("targets.txt") > RG<-read.maimages(targets,source="genepix",columns=list(R="F635 Median",G="F532 Median",Rb="B635",Gb="B532")) Read 14251568.gpr Read 14251566.gpr Read 14251213.gpr Read 14251567.gpr Read 14251230.gpr Read 14251232.gpr > RG$genes<-readGAL() > RG <- backgroundCorrect(RG, method="normexp", offset=25) Array 1 corrected Array 2 corrected Array 3 corrected Array 4 corrected Array 5 corrected Array 6 corrected Array 1 corrected Array 2 corrected Array 3 corrected Array 4 corrected Array 5 corrected Array 6 corrected > MA.p <- normalizeWithinArrays(RG) > MA.s <- normalizeBetweenArrays(MA.p,method="scale") > design<-c(1,1,1,-1,-1,-1) > fit<-lmFit(MA.s,design) > fit<-eBayes(fit) > fit$df.prior [1] 1.481457 Priyanka Kachroo Graduate Assistant Research Texas A&M University -------------- next part -------------- A non-text attachment was scrubbed... Name: boxplot foreground and background 7-10-11.pdf Type: application/pdf Size: 1996426 bytes Desc: not available URL: <https: stat.ethz.ch="" pipermail="" bioconductor="" attachments="" 20110711="" b8eba9a1="" attachment-0005.pdf=""> -------------- next part -------------- A non-text attachment was scrubbed... Name: MA array 1 before background off=10.pdf Type: application/pdf Size: 961810 bytes Desc: not available URL: <https: stat.ethz.ch="" pipermail="" bioconductor="" attachments="" 20110711="" b8eba9a1="" attachment-0006.pdf=""> -------------- next part -------------- A non-text attachment was scrubbed... Name: MA array1 after correction off=10.pdf Type: application/pdf Size: 1397961 bytes Desc: not available URL: <https: stat.ethz.ch="" pipermail="" bioconductor="" attachments="" 20110711="" b8eba9a1="" attachment-0007.pdf=""> -------------- next part -------------- A non-text attachment was scrubbed... Name: MA array 1 before bkgrnd corr off=25.pdf Type: application/pdf Size: 961810 bytes Desc: not available URL: <https: stat.ethz.ch="" pipermail="" bioconductor="" attachments="" 20110711="" b8eba9a1="" attachment-0008.pdf=""> -------------- next part -------------- A non-text attachment was scrubbed... Name: MA after bkgrnd corr off=25.pdf Type: application/pdf Size: 1395432 bytes Desc: not available URL: <https: stat.ethz.ch="" pipermail="" bioconductor="" attachments="" 20110711="" b8eba9a1="" attachment-0009.pdf="">
Microarray Microarray • 1.9k views
ADD COMMENT
0
Entering edit mode
Matthew Ritchie ▴ 1000
@matthew-ritchie-650
Last seen 19 months ago
Australia
Dear Priyanka, The suggestion to use df.prior to help guide your choice of offset requires that you fit the linear model separately for data processed with different offsets. The offset which gives the largest df.prior is optimal - the code below should help. Best wishes, Matt ********* targets<-readTargets("targets.txt") RG<-read.maimages(targets,source="genepix", columns=list(R="F635 Median",G="F532 Median",Rb="B635",Gb="B532")) RG50 <- backgroundCorrect(RG, method="normexp", offset=50) RG25 <- backgroundCorrect(RG, method="normexp", offset=25) RG10 <- backgroundCorrect(RG, method="normexp", offset=10) design<-c(1,1,1,-1,-1,-1) MA.p50 <- normalizeWithinArrays(RG50) MA.s50 <- normalizeBetweenArrays(MA.p50,method="scale") fit50<-lmFit(MA.s50,design) fit50<-eBayes(fit50) fit50$df.prior MA.p25 <- normalizeWithinArrays(RG25) MA.s25 <- normalizeBetweenArrays(MA.p25,method="scale") fit25<-lmFit(MA.s25,design) fit25<-eBayes(fit25) fit25$df.prior MA.p10 <- normalizeWithinArrays(RG10) MA.s10 <- normalizeBetweenArrays(MA.p10,method="scale") fit10<-lmFit(MA.s10,design) fit10<-eBayes(fit10) fit10$df.prior > Dear All, > > I needed your help with some 2-color microarray data analysis. So the > problem is that after sorting by pvalue and fold change cut off of 1.5, I > am left with very few differentially expressed genes. I use Normexp > method for background correction with an offset value of 50 (default). > > 1. So if i use offset=50, i get downregulated genes=11, upregulated > genes=31 > > 2. If i use offset=25, i get downregulated=14 , upregulated=46 > > 3. If i use offset=10, i get downregulated=20 ,upregulated=93 > > > I read on the Limma-bioconductor forum that making a boxplot of foreground > and background (green and red channels) should help decide if background > correction is needed or not. I made that boxplot but do not know how to > interpret it. I have also attached MA plots before and after background > correction for each offset (10 and 25) with this email. Can someone guide > me in this regard. > > Also this is what the moderator writes for a way to decide the offset > value " You can judge a good value for the offset by inspection of the > MA-plots. If you really want a quantitative way to judge this, look at the > component fit$df.prior after you use the eBayes() function in limma. The > better you stabilize the variances, the larger will be df.prior and the > greater will be the power to detect DE genes. Hence the offset which > maximises df.prior is, in sense, optimal " > > So, when i run my code and type fit$df.prior i get a value of 1.48. How > does this number help me decide the offset. > > Here is the code > targets<-readTargets("targets.txt") >> RG<-read.maimages(targets,source="genepix",columns=list(R="F635 >> Median",G="F532 Median",Rb="B635",Gb="B532")) > Read 14251568.gpr > Read 14251566.gpr > Read 14251213.gpr > Read 14251567.gpr > Read 14251230.gpr > Read 14251232.gpr >> RG$genes<-readGAL() >> RG <- backgroundCorrect(RG, method="normexp", offset=25) > Array 1 corrected > Array 2 corrected > Array 3 corrected > Array 4 corrected > Array 5 corrected > Array 6 corrected > Array 1 corrected > Array 2 corrected > Array 3 corrected > Array 4 corrected > Array 5 corrected > Array 6 corrected >> MA.p <- normalizeWithinArrays(RG) >> MA.s <- normalizeBetweenArrays(MA.p,method="scale") >> design<-c(1,1,1,-1,-1,-1) >> fit<-lmFit(MA.s,design) >> fit<-eBayes(fit) >> fit$df.prior > [1] 1.481457 > > > Priyanka Kachroo > Graduate Assistant Research > Texas A&M University ______________________________________________________________________ The information in this email is confidential and intend...{{dropped:4}}
ADD COMMENT
0
Entering edit mode
Dear list, I'm trying to normalize Agilent gene expression one-color arrays using the "spike-ins" probes. I have followed section 7: "Normalisation with 'spike-in' probes" of the vsn vignette to do so. I am having some doubts and I would like to be sure that what I do is correct, or be corrected if it's not! (I have read some threads about the subject but I don't manage to find exactly what I want, sorry if the question is redundant). Can this method be applied to single channel arrays? What would you advice to do to check if that kind of normalization is needed and then successful on this type of arrays? Is this normalization to be processed after background correction, and is it to be combined with another type of normalization (quantile?)? Is there another method for spike-ins normalization that I don't know about? GeneSpring proposes apparently this option but I don't know how exactly they apply it. Please find below my code and session info, and I would be glad for any feedback or advice you could give me... Thanks a lot! Sarah # read in feature extraction files Rawdata <- read.maimages(Files, source="agilent", green.only=TRUE, columns=list(G="gMedianSignal", Gb="gBGMedianSignal"), annotation=c("ProbeName", "ControlType")) G.bkg <- backgroundCorrect(Rawdata, method="normexp", offset=50) # apply vsn2 spfit = vsn2(as.matrix(G.bkg)[grep("\\(\\+\\)E1A",Rawdata$genes$ProbeName),], lts.quantile=0.75) new.G <- predict(spfit, newdata=as.matrix(G.bkg)) sessionInfo() R version 2.13.0 (2011-04-13) Platform: x86_64-pc-mingw32/x64 (64-bit) locale: [1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 [3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C [5] LC_TIME=English_United States.1252 attached base packages: [1] grid stats graphics grDevices utils datasets methods base other attached packages: [1] limma_3.8.1 vsn_3.20.0 Biobase_2.12.1 VennDiagram_1.0.1 loaded via a namespace (and not attached): [1] affy_1.30.0 affyio_1.20.0 KernSmooth_2.23-4 lattice_0.19-23 [5] preprocessCore_1.14.0 tools_2.13.0
ADD REPLY

Login before adding your answer.

Traffic: 522 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6