Skip to content
Prev 1788 / 21312 Next

[Bioc-devel] Bug in rma: zero variance of probeset summaries across arrays

Thank you, Holger, Jim, Ben,

(1) this is indeed a peculiar feature of the medianpolish part of RMA. I 
apologize to Ben for using the harsh word "bug" inappropriately in this 
context. I was misled by observations that using different normalisation 
or background correction methods seemed to "fix" the problem, and had 
forgotten about those previous threads. Sorry.

I wonder whether anyone has done research on how to improve on 
medianpolish for small datasets and why people haven't adapted it.

(2) One further potential problem remains, and I hope that bringing this 
up might help to make sure that rma (which is obviously a core component 
of Bioconductor) is robust even under the most adverse circumstances 
(e.g. myself :). With the script below, I get a core dump. This is on a 
freshly checked out and built R (from today) and all packages then 
installed from scratch (sessionInfo as in previous mail below). It does 
not seem to happen on R-2.8.1. and Bioc release 2.3., and even on R-dev, 
whether it happens seems to depend on the history of the R session. One 
hypothesis is that this could be related to the "destructive=TRUE" 
parameter of rma?

Can anyone reproduce this?

  Best wishes
	Wolfgang


library("affy")
library("genefilter")
options(error=recover)

files = c("PP_T1_1.CEL", "PP_T1_2.CEL", "PP_T2_1.CEL", "PP_T2_2c.CEL")

#celdir = tempdir()
#for(f in files)
#  download.file(file.path("http://www.ebi.ac.uk/~huber/pub", f),
#                file.path(celdir, f))
celdir="."

a = ReadAffy(filenames=file.path(celdir, files))

## Define a CDF with one probeset per probe
testcdf = new.env(hash=TRUE)
for(i in seq_len(nrow(exprs(a))))
     assign(paste(i), matrix(i, ncol=1, nrow=1), envir=testcdf)
a at cdfName = "testcdf"

x = rma(a)


----------------------

Background correcting
Normalizing
Calculating Expression
Error in `colnames<-`(`*tmp*`, value = c("PP_T1_1.CEL", "PP_T1_2.CEL",  :
   attempt to set colnames on object with less than two dimensions

Enter a frame number, or 0 to exit

1: source("rma2.R")
2: eval.with.vis(ei, envir)
3: eval.with.vis(expr, envir, enclos)
4: rma(a)
5: `colnames<-`(`*tmp*`, value = c("PP_T1_1.CEL", "PP_T1_2.CEL", 
"PP_T2_1.CEL"

Selection:  4
Called from: eval(expr, envir, enclos)
Browse[1]>  ls()
  [1] "*tmp*"       "background"  "bgversion"   "cols"        "destructive"
  [6] "exprs"       "ngenes"      "normalize"   "object"      "pNList"
[11] "rows"        "subset"      "verbose"
Browse[1]> str(exprs)

........ long dump of text ....


496: stop("attempt to set colnames on object with less than two dimensions")
497: `colnames<-`(`*tmp*`, value = c("PP_T1_1.CEL", "PP_T1_2.CEL", 
"PP_T2_1.CEL", "PP_T2_2c.CEL"))
498: rma(a)
499: eval.with.vis(expr, envir, enclos)
500: eval.with.vis(ei, envir)
501: source("rma2.R")

Possible actions:
1: abort (with core dump, if enabled)
2: normal R exit
3: exit R without saving workspace
4: exit R saving workspace
Selection:
James W. MacDonald wrote: