

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]]

