RMA implemented in oligo package vs affy package
1
0
Entering edit mode
heyi xiao ▴ 360
@heyi-xiao-3308
Last seen 8.1 years ago
United States
Dear all, I process a Nimblegen expression array using oligo + makePlatformDesign packages. And I managed to read the xys files into an AffyBatch object and built a CDF environment, and process the data using affy package. For both ways, I used RMA with default setting. However, I noticed that rma in oligo package gave quite different results from the rma in affy package. Could any body told me what is the difference between rma in oligo package vs the classical version implemented in affy package? Is there any way to get the R or C source codes for both rma functions? Any ideas/suggestion would be appreciated. I tried but this is all I can got so far and can’t see too much difference except the use of bg.dens function in oligo package.  oligo package rma: function (object, ...) {     .local <- function (object, background = TRUE, normalize = TRUE,         subset = NULL)     {         pms <- pm(object, subset)         pnVec <- probeNames(object, subset)         ngenes <- length(unique(pnVec))         idx <- order(pnVec)         pms <- pms[idx, , drop = FALSE]         pnVec <- pnVec[idx]         bg.dens <- function(x) {             density(x, kernel = "epanechnikov", n = 2^14)         }         exprs <- .Call("rma_c_complete_copy", pms, pms, pnVec,             ngenes, body(bg.dens), new.env(), normalize, background,             as.integer(2), PACKAGE = "oligo")         colnames(exprs) <- sampleNames(object)         out <- new("ExpressionSet", phenoData = phenoData(object),             annotation = annotation(object), experimentData = experimentData(object),             exprs = exprs)         return(out)     }     .local(object, ...) } <environment: namespace:oligo="">  affy package rma: function (object, subset = NULL, verbose = TRUE, destructive = TRUE,     normalize = TRUE, background = TRUE, bgversion = 2, ...) {     rows <- length(probeNames(object, subset))     cols <- length(object)     if (is.null(subset)) {         ngenes <- length(geneNames(object))     }     else {         ngenes <- length(subset)     }     pNList <- probeNames(object, subset)     pNList <- split(0:(length(pNList) - 1), pNList)     if (destructive) {         exprs <- .Call("rma_c_complete", pm(object, subset),             pNList, ngenes, normalize, background, bgversion,             verbose, PACKAGE = "affy")     }     else {         exprs <- .Call("rma_c_complete_copy", pm(object, subset),             pNList, ngenes, normalize, background, bgversion,             verbose, PACKAGE = "affy")     }     colnames(exprs) <- sampleNames(object)    new("ExpressionSet", phenoData = phenoData(object), annotation = annotation(object),         experimentData = experimentData(object), exprs = exprs) } [[alternative HTML version deleted]]
ExperimentData cdf affy PROcess oligo ExperimentData cdf affy PROcess oligo • 2.2k views
ADD COMMENT
0
Entering edit mode
heyi xiao ▴ 360
@heyi-xiao-3308
Last seen 8.1 years ago
United States
Dear all, I process a Nimblegen expression array using oligo + makePlatformDesign packages. And I managed to read the xys files into an AffyBatch object and built a CDF environment, and process the data using affy package. For both ways, I used RMA with default setting. However, I noticed that rma in oligo package gave quite different results from the rma in affy package. Could any body told me what is the difference between rma in oligo package vs the classical version implemented in affy package? Is there any way to get the R or C source codes for both rma functions? Any ideas/suggestion would be appreciated. I tried but this is all I can got so far and can’t see too much difference except the use of bg.dens function in oligo package.  oligo package rma: function (object, ...) {     .local <- function (object, background = TRUE, normalize = TRUE,         subset = NULL)     {         pms <- pm(object, subset)         pnVec <- probeNames(object, subset)         ngenes <- length(unique(pnVec))         idx <- order(pnVec)         pms <- pms[idx, , drop = FALSE]         pnVec <- pnVec[idx]         bg.dens <- function(x) {             density(x, kernel = "epanechnikov", n = 2^14)         }         exprs <- .Call("rma_c_complete_copy", pms, pms, pnVec,             ngenes, body(bg.dens), new.env(), normalize, background,             as.integer(2), PACKAGE = "oligo")         colnames(exprs) <- sampleNames(object)         out <- new("ExpressionSet", phenoData = phenoData(object),             annotation = annotation(object), experimentData = experimentData(object),             exprs = exprs)         return(out)     }     .local(object, ...) } <environment: namespace:oligo="">  affy package rma: function (object, subset = NULL, verbose = TRUE, destructive = TRUE,     normalize = TRUE, background = TRUE, bgversion = 2, ...) {     rows <- length(probeNames(object, subset))     cols <- length(object)     if (is.null(subset)) {         ngenes <- length(geneNames(object))     }     else {         ngenes <- length(subset)     }     pNList <- probeNames(object, subset)     pNList <- split(0:(length(pNList) - 1), pNList)     if (destructive) {         exprs <- .Call("rma_c_complete", pm(object, subset),             pNList, ngenes, normalize, background, bgversion,             verbose, PACKAGE = "affy")     }     else {         exprs <- .Call("rma_c_complete_copy", pm(object, subset),             pNList, ngenes, normalize, background, bgversion,             verbose, PACKAGE = "affy")     }     colnames(exprs) <- sampleNames(object)    new("ExpressionSet", phenoData = phenoData(object), annotation = annotation(object),         experimentData = experimentData(object), exprs = exprs) } [[alternative HTML version deleted]]
ADD COMMENT
0
Entering edit mode
Hi heyi. Peter White did some recent testing of 'affy', 'oligo', 'affyPLM' (and aroma.affymetrix's use of them): http://www.mail-archive.com/aroma-affymetrix at googlegroups.com/msg00307.html These were all using the default BG adjustment of RMA. The result is ... affy and oligo are practically identical. Have you double-checked your conversion of Nimblegen data to an AffyBatch object and the CDF env creation ... I would expect that to be a non-trivial thing. Cheers, Mark > > > Dear all, > > I process a Nimblegen expression array using oligo + makePlatformDesign > packages. And I managed to read the xys files into an AffyBatch object and > built a CDF environment, and process the data using affy package. For both > ways, I used RMA with default setting. However, I noticed that rma in > oligo > package gave quite different results from the rma in affy package. Could > any > body told me what is the difference between rma in oligo package vs the > classical version implemented in affy package? Is there any way to get the > R or > C source codes for both rma functions? Any ideas/suggestion would be > appreciated. > > I tried but this is all I can got so far and can???t see too > much difference except the use of bg.dens function in oligo package. > > ?? > > oligo package rma: > > function (object, ...) > > { > > ?????? .local <- > function (object, background = TRUE, normalize = TRUE, > > ?????????????? subset = NULL) > > > ?????? { > > ?????????????? pms <- > pm(object, subset) > > ?????????????? pnVec <- > probeNames(object, subset) > > ?????????????? ngenes <- > length(unique(pnVec)) > > ?????????????? idx <- > order(pnVec) > > ?????????????? pms <- > pms[idx, , drop = FALSE] > > ?????????????? pnVec <- > pnVec[idx] > > ?????????????? bg.dens <- > function(x) { > > ?????????????????????? density(x, > kernel = "epanechnikov", n = 2^14) > > ?????????????? } > > ?????????????? exprs <- > .Call("rma_c_complete_copy", pms, pms, pnVec, > > ?????????????????????? ngenes, > body(bg.dens), new.env(), normalize, background, > > ?????????????????????? as.integer(2), PACKAGE = "oligo") > > ?????????????? colnames(exprs) <- > sampleNames(object) > > ?????????????? out <- > new("ExpressionSet", phenoData = phenoData(object), > > ?????????????????????? annotation > = annotation(object), experimentData = experimentData(object), > > ?????????????????????? exprs = > exprs) > > ?????????????? return(out) > > ?????? } > > ?????? .local(object, > ...) > > } > > <environment: namespace:oligo=""> > > ?? > > affy package rma: > > function (object, subset = NULL, verbose = TRUE, destructive > = TRUE, > > ?????? normalize = TRUE, > background = TRUE, bgversion = 2, ...) > > { > > ?????? rows <- > length(probeNames(object, subset)) > > ?????? cols <- > length(object) > > ?????? if > (is.null(subset)) { > > ?????????????? ngenes <- > length(geneNames(object)) > > ?????? } > > ?????? else { > > ?????????????? ngenes <- > length(subset) > > ?????? } > > ?????? pNList <- > probeNames(object, subset) > > ?????? pNList <- > split(0:(length(pNList) - 1), pNList) > > ?????? if (destructive) { > > ?????????????? exprs <- > .Call("rma_c_complete", pm(object, subset), > > ?????????????????????? pNList, > ngenes, normalize, background, bgversion, > > ?????????????????????? verbose, > PACKAGE = "affy") > > ?????? } > > ?????? else { > > ?????????????? exprs <- > .Call("rma_c_complete_copy", pm(object, subset), > > ?????????????????????? pNList, > ngenes, normalize, background, bgversion, > > ?????????????????????? verbose, > PACKAGE = "affy") > > ?????? } > > ?????? colnames(exprs) > <- sampleNames(object) > > ?????? > new("ExpressionSet", phenoData = phenoData(object), annotation > = annotation(object), > > ?????????????? experimentData > = experimentData(object), exprs = exprs) > > } > > > > > > [[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
ADD REPLY

Login before adding your answer.

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