Hi Thomas --
This helped a lot; the code at position 6 of the traceback is from
Biobase, and involves subsetting assayData. I ran example(ReadAffy) to
get the file names of some cel files, and then
> res = justGCRMA(filenames=fns)
> res[featureNames(res)[1],]
Error: no 'dimnames' attribute for array
With these clues and a peak at the justGCRMA code, I
found that the problem can be reproduced with
> se.exprs <- matrix(0, 5, 2)
> exprs <- matrix(0, 5, 2)
> dimnames(exprs) <- list(LETTERS[1:5], letters[1:2])
> es <- new("ExpressionSet", exprs=exprs, se.exprs=se.exprs)
> es["A",]
Error: no 'dimnames' attribute for array
The key is that se.exprs does not have any dimnames, so trying to
subset it causes an error.
The released and development version of Biobase have been patched to
try to 'harmonize' the assayData element names when possible (i.e.,
when some of the dimnames are NULL);
The irony is that se.exprs created by justGCRMA has only 'NA' values:
> any(!is.na(assayData(res)[["se.exprs"]]))
[1] FALSE
The patched release version should appear as 1.14.1 in the next day or
so.
Martin
"Thomas Lo" <thom.lo at="" cuhk.edu.hk=""> writes:
> Hi Seth,
>
> Thanks very much for your reply! Here is what I got from
traceback():
>
>> traceback()
> 6: switch(storage.mode, environment = , lockedEnvironment = {
> aData <- new.env(parent = emptyenv())
> if (missing(i))
> for (nm in ls(orig)) aData[[nm]] <- orig[[nm]][, j, ...,
> drop = drop]
> else {
> if (missing(j))
> for (nm in ls(orig)) aData[[nm]] <- orig[[nm]][i,
> , ..., drop = drop]
> else for (nm in ls(orig)) aData[[nm]] <- orig[[nm]][i,
> j, ..., drop = drop]
> }
> if ("lockedEnvironment" == storage.mode)
> assayDataEnvLock(aData)
> aData
> }, list = {
> if (missing(i))
> lapply(orig, function(obj) obj[, j, ..., drop = drop])
> else {
> if (missing(j))
> lapply(orig, function(obj) obj[i, , ..., drop =
drop])
> else lapply(orig, function(obj) obj[i, j, ..., drop =
drop])
> }
> })
> 5: eset[haveID, ]
> 4: eset[haveID, ]
> 3: requireID(eset, "ENTREZID")
> 2: nsFilter(exset)
> 1: nsFilter(exset)
>
> Is the output informative? I have just tried the same procedure
with an
> independent data set, and that produced the same error. However, if
I read
> the data in using ReadAffy() before performing gcrma(), then
nsFilter()
> appears to work fine. So perhaps something that is not compatible
between
> the justGCRMA() output and nsFilter()?
>
> Many thanks!
>
> Thomas
>
>
> -----Original Message-----
> From: Seth Falcon [mailto:sfalcon at fhcrc.org]
> Sent: Tuesday, July 10, 2007 4:35 AM
> To: Thomas Lo
> Cc: bioconductor at stat.math.ethz.ch
> Subject: Re: [BioC] nsFilter error
>
> Hi Thomas,
>
> "Thomas Lo" <thom.lo at="" cuhk.edu.hk=""> writes:
>> I have performed a GCRMA normalization with my Affy data, and then
tried
> the
>> 'nsFilter' function from the 'genefilter' package but got an error
message
>> as follows. Help much appreciated. Thanks.
>
>>> filterAns <- nsFilter(exset)
>>
>> Error: no 'dimnames' attribute for array
>
> Hmm, I haven't been able to reproduce this. Can you try calling
> traceback() after the error message appears and sending the output?
>
> Also, if you are able to share the data, I could try reproducing
> here. If the data is sharable, perhaps you can save the exset
object
> using save() (and compress=TRUE) and post it on a web/ftp that I
can
> download from?
>
> + seth
>
> --
> Seth Falcon | Computational Biology | Fred Hutchinson Cancer
Research Center
>
http://bioconductor.org
>
> _______________________________________________
> 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
--
Martin Morgan
Bioconductor / Computational Biology
http://bioconductor.org