preprocessing Affymetrix with threestep and expresso
2
0
Entering edit mode
@javier-perez-florido-3121
Last seen 6.8 years ago
Dear list, Any tips for the following question? Affymetrix performs the normalization step after summarization and I would like to know whether , using another normalization step than the one described for MAS (scaling), I have to write the normalization step after the summarization or not. I mean, If I want to use "quantile" as normalization, I don't know if I have to proceed like this: res<- expresso(data, bgcorrect.method = "mas", pmcorrect.method = "mas", normalize = FALSE, summary.method = "mas") res2<-normalize(res,method="quantiles") exprs(res2)<-log2(exprs(res2)) or like this: res<- expresso(data, bgcorrect.method = "mas", pmcorrect.method = "mas", normalize.method = "quantiles", summary.method = "mas") exprs(res)<-log2(exprs(res)) Thanks again, Javier Javier P?rez Florido escribi?: > Laurent Gautier escribi?: >> Javier P?rez Florido wrote: >>> Dear list, >>> I have 3 questions about threestep (affyPLM) and expresso (AFFY) >>> functions: >>> >>> 1. Which type of pm correction does threestep function perform? >>> PMonly? >>> 2. I would like to preprocess my microarray experiment using the >>> following steps within the preprocessing method: GCRMA as >>> background correction, INVARIANTSET as normalization, PMONLY >>> as pm >>> correction and TUKEY-BIWEIGHT (MAS) as summarization >>> procedure. Is >>> there any function which I can use to perform it? As far as I >>> know, expresso hasn't got GCRMA as background correction and >>> threestep function hasn't got INVARIANTSET as normalization >>> procedure. Any tips? >> >> In GCRMA it seems that it is named a background adjustment rather than a >> background correction, and therefore do not fit in the existing >> framework. >> >> The following might(*) bring GCRMA to affy (*: not tested): >> bg.correct.gcrma <- bg.adjust.gcrma >> upDate.bgcorrect.methods(c(bgcorrect.methods(), "gcrma")) > Thanks Prof. Gautier, it worked like you said. Now, I am able to use > gcrma as background "method" in expresso. >> >> For threestep, the set of normalization methods it accepts is an >> hard-coded list. Editing the code to make it accept an other method >> at the R level is rather simple, but one should check what is happening >> with those method names at the C level. >> Going the other way around and write a summary method for affy that >> performs the fit of a linear model of your choosing is also an >> alternative. >> >> >>> 3. If I want to perform MAS preprocessing using expresso, I think I >>> should do it like this: >>> >>> eset<- expresso(data, bgcorrect.method = "mas", >>> pmcorrect.method >>> = "mas", normalize = FALSE, summary.method = "mas") >>> eset<-affy.scalevalue.exprSet(eset) >>> exprs(eset)<-log2(exprs(eset)) >> >> The source is open: >> >>> mas5 >> function (object, normalize = TRUE, sc = 500, analysis = "absolute", >> ...) >> { >> res <- expresso(object, bgcorrect.method = "mas", pmcorrect.method >> = "mas", >> normalize = FALSE, summary.method = "mas", ...) >> if (normalize) >> res <- affy.scalevalue.exprSet(res, sc = sc, analysis = >> analysis) >> return(res) >> } >> <environment: namespace:affy=""> >> >> >>> This is done this way because Affymetrix performs the normalization >>> step after summarization. What about if I want to perform NO >>> background correction, INVARIANTSET as normalization, MAS as pm >>> correction and MAS as summarization? Is it like this? >>> eset<- expresso(data, bgcorrect.method = "mas", pmcorrect.method >>> = "mas", normalize.method="invariantset" summary.method = "mas") >>> exprs(eset)<-log2(exprs(eset)) >> >> Most likely not. It looks like you copied/pasted the call to perform >> MAS5.0 without a change. >> The help pages contain how to get the method names. >> Example: help("bgcorrect.methods") > OK, you were right about mas5 method (Affy package) and I wrote the > expresso command in the wrong way. > What I wanted to mean is that Affymetrix performs the normalization > step after summarization (I don`t know why). What I would like to know > is if I want to use another normalization step than the one described > for MAS (scaling), do I have to write the normalization step after the > summarization? I mean, If I want to use "quantile" as normalization, I > don't know if I have to proceed like this: > > res<- expresso(data, bgcorrect.method = "mas", pmcorrect.method = > "mas", normalize = FALSE, summary.method = "mas") > res2<-normalize(res,method="quantiles") > exprs(res2)<-log2(exprs(res2)) > > or like this: > > res<- expresso(data, bgcorrect.method = "mas", pmcorrect.method = > "mas", normalize.method = "quantiles", summary.method = "mas") > exprs(res)<-log2(exprs(res)) > > Thanks again, > Javier > > > >> >> >> L. >> >>> Thanks in advance, >>> Javier >>> >>> >>> [[alternative HTML version deleted]] >>> >>> _______________________________________________ >>> Bioconductor mailing list >>> Bioconductor at stat.math.ethz.ch >>> https://stat.ethz.ch/mailman/listinfo/bioconductor >>> Search the archives: >>> http://news.gmane.org/gmane.science.biology.informatics.conductor >> >> > >
Microarray Normalization Preprocessing affy gcrma Microarray Normalization Preprocessing • 1.3k views
ADD COMMENT
0
Entering edit mode
Laurent Gautier ★ 2.3k
@laurent-gautier-29
Last seen 10.3 years ago
Both are modifications of MAS5.0, therefore there is not one that is "right" while the other is "wrong". If you do not have a theoretical rationale to choose one you could try comparing their respective performances (the dilution dataset was once popular) and make your choice accordingly. L. Javier P?rez Florido wrote: > Dear list, > Any tips for the following question? > Affymetrix performs the normalization step after summarization and I > would like to know whether , using another normalization step than the > one described for MAS (scaling), I have to write the normalization step > after the summarization or not. I mean, If I want to use "quantile" as > normalization, I don't know if I have to proceed like this: > > res<- expresso(data, bgcorrect.method = "mas", pmcorrect.method = "mas", > normalize = FALSE, summary.method = "mas") > res2<-normalize(res,method="quantiles") > exprs(res2)<-log2(exprs(res2)) > > or like this: > > res<- expresso(data, bgcorrect.method = "mas", pmcorrect.method = "mas", > normalize.method = "quantiles", summary.method = "mas") > exprs(res)<-log2(exprs(res)) > > Thanks again, > Javier > > > > Javier P?rez Florido escribi?: >> Laurent Gautier escribi?: >>> Javier P?rez Florido wrote: >>>> Dear list, >>>> I have 3 questions about threestep (affyPLM) and expresso (AFFY) >>>> functions: >>>> >>>> 1. Which type of pm correction does threestep function perform? >>>> PMonly? >>>> 2. I would like to preprocess my microarray experiment using the >>>> following steps within the preprocessing method: GCRMA as >>>> background correction, INVARIANTSET as normalization, PMONLY >>>> as pm >>>> correction and TUKEY-BIWEIGHT (MAS) as summarization >>>> procedure. Is >>>> there any function which I can use to perform it? As far as I >>>> know, expresso hasn't got GCRMA as background correction and >>>> threestep function hasn't got INVARIANTSET as normalization >>>> procedure. Any tips? >>> >>> In GCRMA it seems that it is named a background adjustment rather than a >>> background correction, and therefore do not fit in the existing >>> framework. >>> >>> The following might(*) bring GCRMA to affy (*: not tested): >>> bg.correct.gcrma <- bg.adjust.gcrma >>> upDate.bgcorrect.methods(c(bgcorrect.methods(), "gcrma")) >> Thanks Prof. Gautier, it worked like you said. Now, I am able to use >> gcrma as background "method" in expresso. >>> >>> For threestep, the set of normalization methods it accepts is an >>> hard-coded list. Editing the code to make it accept an other method >>> at the R level is rather simple, but one should check what is happening >>> with those method names at the C level. >>> Going the other way around and write a summary method for affy that >>> performs the fit of a linear model of your choosing is also an >>> alternative. >>> >>> >>>> 3. If I want to perform MAS preprocessing using expresso, I think I >>>> should do it like this: >>>> >>>> eset<- expresso(data, bgcorrect.method = "mas", >>>> pmcorrect.method >>>> = "mas", normalize = FALSE, summary.method = "mas") >>>> eset<-affy.scalevalue.exprSet(eset) >>>> exprs(eset)<-log2(exprs(eset)) >>> >>> The source is open: >>> >>>> mas5 >>> function (object, normalize = TRUE, sc = 500, analysis = "absolute", >>> ...) >>> { >>> res <- expresso(object, bgcorrect.method = "mas", pmcorrect.method >>> = "mas", >>> normalize = FALSE, summary.method = "mas", ...) >>> if (normalize) >>> res <- affy.scalevalue.exprSet(res, sc = sc, analysis = >>> analysis) >>> return(res) >>> } >>> <environment: namespace:affy=""> >>> >>> >>>> This is done this way because Affymetrix performs the normalization >>>> step after summarization. What about if I want to perform NO >>>> background correction, INVARIANTSET as normalization, MAS as pm >>>> correction and MAS as summarization? Is it like this? >>>> eset<- expresso(data, bgcorrect.method = "mas", pmcorrect.method >>>> = "mas", normalize.method="invariantset" summary.method = "mas") >>>> exprs(eset)<-log2(exprs(eset)) >>> >>> Most likely not. It looks like you copied/pasted the call to perform >>> MAS5.0 without a change. >>> The help pages contain how to get the method names. >>> Example: help("bgcorrect.methods") >> OK, you were right about mas5 method (Affy package) and I wrote the >> expresso command in the wrong way. >> What I wanted to mean is that Affymetrix performs the normalization >> step after summarization (I don`t know why). What I would like to know >> is if I want to use another normalization step than the one described >> for MAS (scaling), do I have to write the normalization step after the >> summarization? I mean, If I want to use "quantile" as normalization, I >> don't know if I have to proceed like this: >> >> res<- expresso(data, bgcorrect.method = "mas", pmcorrect.method = >> "mas", normalize = FALSE, summary.method = "mas") >> res2<-normalize(res,method="quantiles") >> exprs(res2)<-log2(exprs(res2)) >> >> or like this: >> >> res<- expresso(data, bgcorrect.method = "mas", pmcorrect.method = >> "mas", normalize.method = "quantiles", summary.method = "mas") >> exprs(res)<-log2(exprs(res)) >> >> Thanks again, >> Javier >> >> >> >>> >>> >>> L. >>> >>>> Thanks in advance, >>>> Javier >>>> >>>> >>>> [[alternative HTML version deleted]] >>>> >>>> _______________________________________________ >>>> Bioconductor mailing list >>>> Bioconductor at stat.math.ethz.ch >>>> https://stat.ethz.ch/mailman/listinfo/bioconductor >>>> Search the archives: >>>> http://news.gmane.org/gmane.science.biology.informatics.conductor >>> >>> >> >> > > _______________________________________________ > Bioconductor mailing list > Bioconductor at stat.math.ethz.ch > https://stat.ethz.ch/mailman/listinfo/bioconductor > Search the archives: > http://news.gmane.org/gmane.science.biology.informatics.conductor
ADD COMMENT
0
Entering edit mode
cstrato ★ 3.9k
@cstrato-908
Last seen 6.2 years ago
Austria
Dear Javier, In the MAS5 algorithm Affymetrix usually does probeset-level normalization after the summarization step, i.e. it scales the trimmed mean expression level to a certain target intensity (e.g. sc=500). You are free to replace the scaling step with another probeset-level normalization step. Alternatively, you can do probe-level normalization after background correction, e.g. quantile normalization or trimmed mean normalization, which allows you to skip the probeset-level normalization. Thus if you do quantile normalization there is no need for the scaling step after summarization. However, you are free to combine these methods. To test which combinations work best there is a BioC package "affycomp". Note for xps users: XPS has also a three-step function, "express()", which allows you to mix different algorithms. As it happens, I have just uploaded a new vignette "xpsPreprocess.pdf" to BioC development, which shows you how to combine the different algorithms, and how to add a probeset-level normalization after the summarization step. Certain aspects of this vignette may also be useful for users of "expresso()". You can download this vignette from: http://bioconductor.org/packages/2.5/bioc/vignettes/xps/inst/doc/xpsPr eprocess.pdf Best regards Christian _._._._._._._._._._._._._._._._._._ C.h.r.i.s.t.i.a.n S.t.r.a.t.o.w.a V.i.e.n.n.a A.u.s.t.r.i.a e.m.a.i.l: cstrato at aon.at _._._._._._._._._._._._._._._._._._ Javier P?rez Florido wrote: > Dear list, > Any tips for the following question? > Affymetrix performs the normalization step after summarization and I > would like to know whether , using another normalization step than the > one described for MAS (scaling), I have to write the normalization > step after the summarization or not. I mean, If I want to use > "quantile" as normalization, I don't know if I have to proceed like this: > > res<- expresso(data, bgcorrect.method = "mas", pmcorrect.method = > "mas", normalize = FALSE, summary.method = "mas") > res2<-normalize(res,method="quantiles") > exprs(res2)<-log2(exprs(res2)) > > or like this: > > res<- expresso(data, bgcorrect.method = "mas", pmcorrect.method = > "mas", normalize.method = "quantiles", summary.method = "mas") > exprs(res)<-log2(exprs(res)) > > Thanks again, > Javier > > > > Javier P?rez Florido escribi?: >> Laurent Gautier escribi?: >>> Javier P?rez Florido wrote: >>>> Dear list, >>>> I have 3 questions about threestep (affyPLM) and expresso (AFFY) >>>> functions: >>>> >>>> 1. Which type of pm correction does threestep function perform? >>>> PMonly? >>>> 2. I would like to preprocess my microarray experiment using the >>>> following steps within the preprocessing method: GCRMA as >>>> background correction, INVARIANTSET as normalization, PMONLY >>>> as pm >>>> correction and TUKEY-BIWEIGHT (MAS) as summarization >>>> procedure. Is >>>> there any function which I can use to perform it? As far as I >>>> know, expresso hasn't got GCRMA as background correction and >>>> threestep function hasn't got INVARIANTSET as normalization >>>> procedure. Any tips? >>> >>> In GCRMA it seems that it is named a background adjustment rather >>> than a >>> background correction, and therefore do not fit in the existing >>> framework. >>> >>> The following might(*) bring GCRMA to affy (*: not tested): >>> bg.correct.gcrma <- bg.adjust.gcrma >>> upDate.bgcorrect.methods(c(bgcorrect.methods(), "gcrma")) >> Thanks Prof. Gautier, it worked like you said. Now, I am able to use >> gcrma as background "method" in expresso. >>> >>> For threestep, the set of normalization methods it accepts is an >>> hard-coded list. Editing the code to make it accept an other method >>> at the R level is rather simple, but one should check what is happening >>> with those method names at the C level. >>> Going the other way around and write a summary method for affy that >>> performs the fit of a linear model of your choosing is also an >>> alternative. >>> >>> >>>> 3. If I want to perform MAS preprocessing using expresso, I think I >>>> should do it like this: >>>> >>>> eset<- expresso(data, bgcorrect.method = "mas", >>>> pmcorrect.method >>>> = "mas", normalize = FALSE, summary.method = "mas") >>>> eset<-affy.scalevalue.exprSet(eset) >>>> exprs(eset)<-log2(exprs(eset)) >>> >>> The source is open: >>> >>>> mas5 >>> function (object, normalize = TRUE, sc = 500, analysis = "absolute", >>> ...) >>> { >>> res <- expresso(object, bgcorrect.method = "mas", pmcorrect.method >>> = "mas", >>> normalize = FALSE, summary.method = "mas", ...) >>> if (normalize) >>> res <- affy.scalevalue.exprSet(res, sc = sc, analysis = >>> analysis) >>> return(res) >>> } >>> <environment: namespace:affy=""> >>> >>> >>>> This is done this way because Affymetrix performs the >>>> normalization >>>> step after summarization. What about if I want to perform NO >>>> background correction, INVARIANTSET as normalization, MAS as pm >>>> correction and MAS as summarization? Is it like this? >>>> eset<- expresso(data, bgcorrect.method = "mas", >>>> pmcorrect.method >>>> = "mas", normalize.method="invariantset" summary.method = "mas") >>>> exprs(eset)<-log2(exprs(eset)) >>> >>> Most likely not. It looks like you copied/pasted the call to perform >>> MAS5.0 without a change. >>> The help pages contain how to get the method names. >>> Example: help("bgcorrect.methods") >> OK, you were right about mas5 method (Affy package) and I wrote the >> expresso command in the wrong way. >> What I wanted to mean is that Affymetrix performs the normalization >> step after summarization (I don`t know why). What I would like to >> know is if I want to use another normalization step than the one >> described for MAS (scaling), do I have to write the normalization >> step after the summarization? I mean, If I want to use "quantile" as >> normalization, I don't know if I have to proceed like this: >> >> res<- expresso(data, bgcorrect.method = "mas", pmcorrect.method = >> "mas", normalize = FALSE, summary.method = "mas") >> res2<-normalize(res,method="quantiles") >> exprs(res2)<-log2(exprs(res2)) >> >> or like this: >> >> res<- expresso(data, bgcorrect.method = "mas", pmcorrect.method = >> "mas", normalize.method = "quantiles", summary.method = "mas") >> exprs(res)<-log2(exprs(res)) >> >> Thanks again, >> Javier >> >> >> >>> >>> >>> L. >>> >>>> Thanks in advance, >>>> Javier >>>> >>>> >>>> [[alternative HTML version deleted]] >>>> >>>> _______________________________________________ >>>> Bioconductor mailing list >>>> Bioconductor at stat.math.ethz.ch >>>> https://stat.ethz.ch/mailman/listinfo/bioconductor >>>> Search the archives: >>>> http://news.gmane.org/gmane.science.biology.informatics.conductor >>> >>> >> >> > > _______________________________________________ > Bioconductor mailing list > Bioconductor at stat.math.ethz.ch > https://stat.ethz.ch/mailman/listinfo/bioconductor > Search the archives: > http://news.gmane.org/gmane.science.biology.informatics.conductor >
ADD COMMENT

Login before adding your answer.

Traffic: 441 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