[BioC] problem with duplicateCorrelation and ExpressionSet objects

Jenny Drnevich drnevich at uiuc.edu
Thu May 24 17:52:16 CEST 2007


Hi Gordon,

I'm still having the problem with duplicateCorrelation on an 
ExpressionSet object, even though I upgraded to limma 2.10.4. 
Additionally, the 'fix' of not having the Matrix package loaded 
doesn't work either, unless there's a difference between never having 
loaded the package and detaching the package... Am I doing something wrong?

Thanks,
Jenny

 > gcrma.no1 <- gcrma(raw[,-1])

 > detach(package:Matrix)

 > corfit <- 
duplicateCorrelation(gcrma.no1,design.no1,ndups=1,block=targets$pair[-1])
Error in as.vector(x, mode) : cannot coerce to vector

 > sessionInfo()
R version 2.5.0 (2007-04-23)
i386-pc-mingw32

locale:
LC_COLLATE=English_United States.1252;LC_CTYPE=English_United 
States.1252;LC_MONETARY=English_United 
States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252

attached base packages:
[1] "splines"   "tools"     "stats"     "graphics"  "grDevices" "utils"
[7] "datasets"  "methods"   "base"

other attached packages:
   bovineprobe     bovinecdf  affyQCReport   geneplotter  RColorBrewer
      "1.16.0"      "1.16.0"      "1.14.0"      "1.14.0"       "0.2-3"
    simpleaffy         made4 scatterplot3d          ade4       affyPLM
     "2.10.11"      "1.10.0"      "0.3-24"       "1.4-3"      "1.12.0"
      affydata affycoretools       annaffy        xtable         gcrma
      "1.11.2"       "1.8.0"       "1.8.1"       "1.4-3"       "2.8.1"
   matchprobes       biomaRt         RCurl           XML       GOstats
       "1.8.1"      "1.10.0"       "0.8-0"       "1.7-1"       "2.2.3"
      Category       lattice    genefilter      survival          KEGG
       "2.2.3"      "0.15-4"      "1.14.1"        "2.31"      "1.16.0"
          RBGL      annotate            GO         graph         limma
      "1.12.0"      "1.14.1"      "1.16.0"      "1.14.1"      "2.10.4"
          affy        affyio       Biobase       RWinEdt
      "1.14.1"       "1.4.0"      "1.14.0"       "1.7-5"
 >


At 02:32 AM 5/18/2007, Gordon Smyth wrote:
>Hi Jenny,
>
>Well may you ask, how this could be. Just to make it more 
>interesting, you'll find that the problem disappears if you don't 
>have the Matrix package attached to your session.
>
>Thanks to Martin Morgan for correctly diagnosing the problem. The 
>problem arises because (i) I forgot to declare the as.matrix method 
>for ExpressionSet objects in the limma NAMESPACE and (ii) the Matrix 
>package declares as.matrix to be an S4 generic causing a conflict with limma.
>
>I have corrected the limma NAMESPACE in limma 2.10.4 and 2.11.4. 
>This means that you will be able to re-install limma soon from 
>either the BioC release or devel branches and be protected from this 
>error. In the meantime, just make sure that you don't have the 
>Matrix package loaded when using duplicateCorrelation() or lmFit() in limma.
>
>Best wishes
>Gordon
>
>At 05:16 AM 18/05/2007, Jenny Drnevich wrote:
>>Hi Gordon,
>>
>>The gcrma.pres object from the previous example was created by 
>>subsetting an object created by gcrma() on an AffyBatch object 
>>(code below). I get the same error if I use the original 
>>ExpressionSet object created by gcrma() and if I use an 
>>ExpressionSet object created by rma(). I would assume that rma() 
>>and gcrma() would output real ExpressionSet objects?!?  Actually, 
>>calling as.matrix() on any of my ExpressionSet objects works fine 
>>on it's own, but somehow not within duplicateCorrelation (see code) 
>>- how can this be?
>>
>>Thanks,
>>Jenny
>>
>>
>> > raw <- ReadAffy()
>>
>> > gcrma.all <- gcrma(raw)
>>
>> > gcrma.pres <- gcrma.all[num.pres>0,]
>>
>> > corfit <- 
>> duplicateCorrelation(gcrma.pres,design,ndups=1,block=c(2,2,1,1,3,3))
>>Error in as.vector(x, mode) : cannot coerce to vector
>>
>> > corfit <- 
>> duplicateCorrelation(gcrma.all,design,ndups=1,block=c(2,2,1,1,3,3))
>>Error in as.vector(x, mode) : cannot coerce to vector
>>
>> > rma.all <- rma(raw)
>>Background correcting
>>Normalizing
>>Calculating Expression
>>
>> > corfit <- 
>> duplicateCorrelation(rma.all,design,ndups=1,block=c(2,2,1,1,3,3))
>>Error in as.vector(x, mode) : cannot coerce to vector
>>
>> > temp <- as.matrix(rma.all)
>>         #this works fine, but somehow not in 
>> duplicateCorrelation!!! From the debugger:
>>
>>Browse[1]> M <- as.matrix(object)
>>Error in as.vector(x, mode) : cannot coerce to vector
>>
>>
>> >class(raw)
>>[1] "AffyBatch"
>>attr(,"package")
>>[1] "affy"
>>
>> > class(gcrma.all)
>>[1] "ExpressionSet"
>>attr(,"package")
>>[1] "Biobase"
>>
>> > class(gcrma.pres)
>>[1] "ExpressionSet"
>>attr(,"package")
>>[1] "Biobase"
>>
>> > typeof(raw)
>>[1] "S4"
>>
>> > typeof(gcrma.all)
>>[1] "S4"
>>
>> > typeof(gcrma.pres)
>>[1] "S4"
>>
>>At 05:59 PM 5/16/2007, Gordon K Smyth wrote:
>>>Dear Jenny,
>>>
>>>limma already has an as.matrix method for ExpressionSet 
>>>objects.  I've just run the following code
>>>which demonstrates that duplicateCorrelation() does work on such objects:
>>>
>>>   > library(Biobase)
>>>   > library(limma)
>>>   > x <- matrix(rnorm(50*4),50,4)
>>>   > y <- new("ExpressionSet",exprs=x)
>>>   > dupcor <- duplicateCorrelation(y,ndups=2)
>>>   Loading required package: statmod
>>>   > dupcor$consensus
>>>   [1] -0.07112392
>>>
>>>I suspect that your data object is not actually an ExpressionSet 
>>>object, although perhaps it is
>>>something which inherits from ExpressionSet.  I can't tell from 
>>>your code where you object has
>>>come from or what class it is.
>>>
>>>Because as.matrix() is an S3 generic, there is a problem with S4 
>>>objects which inherit from
>>>ExpressionSet.  Can you give more information about how your problem arises?
>>>
>>>Best wishes
>>>Gordon
>>>
>>>On Thu, May 17, 2007 5:15 am, Jenny Drnevich wrote:
>>> > Hi Gordon and others,
>>> >
>>> > I just tried calling duplicateCorrelation on an ExpressionSet object
>>> > with the newest versions of R, Bioconductor and limma (codes and
>>> > sessionInfo() below) and it won't work. I don't think the problem
>>> > lies with duplicateCorrelation() itself, rather that as.matrix() does
>>> > not work for ExpressionSet objects whereas it did work for exprSet
>>> > objects. The help file for duplicateCorrelation has this description
>>> > for the input object:
>>> >
>>> > "a numeric matrix of expression values, or any data object from which
>>> > as.matrix will extract a suitable matrix such as an
>>> > 
>>> <mk:@MSITStore:C:\PROGRA~1\R\R-25~1.0\library\limma\chtml\limma.chm::/malist.html>MAList,
>>> > marrayNorm or exprSet object."
>>> >
>>> > The code and error:
>>> >
>>> >  > corfit <-
>>> > duplicateCorrelation(gcrma.pres,design,ndups=1,block=c(2,2,1,1,3,3))
>>> > Error in as.vector(x, mode) : cannot coerce to vector
>>> >
>>> >  From debugging duplicateCorrelation, the problem is in the very
>>> > first line of code:
>>> >
>>> > Browse[1]> M <- as.matrix(object)
>>> > Error in as.vector(x, mode) : cannot coerce to vector
>>> >
>>> >
>>> > If you don't intend as.matrix() to work for ExpressionSet objects,
>>> > then the code for duplicateCorrelation maybe should be changed. Of
>>> > course, the easy work-around is to pass exprs(gcrma.pres) to
>>> > duplicateCorrelation.
>>> >
>>> > Cheers,
>>> > Jenny
>>> >
>>> >  > sessionInfo()
>>> > R version 2.5.0 (2007-04-23)
>>> > i386-pc-mingw32
>>> >
>>> > locale:
>>> > LC_COLLATE=English_United States.1252;LC_CTYPE=English_United
>>> > States.1252;LC_MONETARY=English_United
>>> > States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252
>>> >
>>> > attached base packages:
>>> > [1] "splines"   "tools"     "stats"     "graphics"  "grDevices" "utils"
>>> > [7] "datasets"  "methods"   "base"
>>> >
>>> > other attached packages:
>>> > hgu133plus2probe   hgu133plus2cdf     affyQCReport      geneplotter
>>> >          "1.16.0"         "1.16.0"         "1.14.0"         "1.14.0"
>>> >      RColorBrewer       simpleaffy            made4    scatterplot3d
>>> >           "0.2-3"        "2.10.11"         "1.10.0"         "0.3-24"
>>> >              ade4          affyPLM         affydata    affycoretools
>>> >           "1.4-3"         "1.12.0"         "1.11.2"          "1.8.0"
>>> >           annaffy           xtable            gcrma      matchprobes
>>> >           "1.8.1"          "1.4-3"          "2.8.0"          "1.8.0"
>>> >           biomaRt            RCurl              XML          GOstats
>>> >          "1.10.0"          "0.8-0"          "1.7-1"          "2.2.1"
>>> >          Category           Matrix          lattice       genefilter
>>> >           "2.2.2"      "0.9975-11"         "0.15-4"         "1.14.1"
>>> >          survival             KEGG             RBGL         annotate
>>> >            "2.31"         "1.16.0"         "1.12.0"         "1.14.1"
>>> >                GO            graph            limma             affy
>>> >          "1.16.0"         "1.14.0"         "2.10.0"         "1.14.0"
>>> >            affyio          Biobase          RWinEdt
>>> >           "1.4.0"         "1.14.0"          "1.7-5"
>>> >  >
>>> >
>>> >
>>> > Jenny Drnevich, Ph.D.
>>> >
>>> > Functional Genomics Bioinformatics Specialist
>>> > W.M. Keck Center for Comparative and Functional Genomics
>>> > Roy J. Carver Biotechnology Center
>>> > University of Illinois, Urbana-Champaign
>>> >
>>> > 330 ERML
>>> > 1201 W. Gregory Dr.
>>> > Urbana, IL 61801
>>> > USA
>>> >
>>> > ph: 217-244-7355
>>> > fax: 217-265-5066
>>> > e-mail: drnevich at uiuc.edu
>>
>>Jenny Drnevich, Ph.D.
>>
>>Functional Genomics Bioinformatics Specialist
>>W.M. Keck Center for Comparative and Functional Genomics
>>Roy J. Carver Biotechnology Center
>>University of Illinois, Urbana-Champaign
>>
>>330 ERML
>>1201 W. Gregory Dr.
>>Urbana, IL 61801
>>USA
>>
>>ph: 217-244-7355
>>fax: 217-265-5066
>>e-mail: drnevich at uiuc.edu

Jenny Drnevich, Ph.D.

Functional Genomics Bioinformatics Specialist
W.M. Keck Center for Comparative and Functional Genomics
Roy J. Carver Biotechnology Center
University of Illinois, Urbana-Champaign

330 ERML
1201 W. Gregory Dr.
Urbana, IL 61801
USA

ph: 217-244-7355
fax: 217-265-5066
e-mail: drnevich at uiuc.edu



More information about the Bioconductor mailing list