[BioC] mas5 update.default problem

Seth Falcon sfalcon at fhcrc.org
Tue May 29 16:38:33 CEST 2007


David Ruau <David.Ruau at rwth-aachen.de> writes:
> I still have the same error unfortunately.
> I don't have the last gcc (gcc-4.0.1) install yet but I don't think
> that's the problem...

Expect problems if you use a different version of gcc to install
source packages using an R built using different compilers (AFAICT,
this is exactly what you are doing).

> Do you know another program using this method update()? maybe I can
> more information for debugging.

The issue looks to be in the _dispatch_ of update not in the method
itself.  But since I'm not able to reproduce what you are seeing, I'm
not sure what to suggest.

> Here is what I did:
> I cleaned the entire /Library/Frameworks/R.framework/Versions/2.5/
> Resources/library/
> then I re-installed R binary, modified my .Rprofile to install from
> source.

Nooo.  If you install the R binary you want to install binary R
packages (which is the default).  In general, you should only use
source packages on OS X if you built R from source...

   In fact, there should be no problem mixing source and binary as
   long as you have the same XCode Tools and gcc, etc as that which
   was used to build R.  Furthermore, I tried mixing and matching as
   you have done and _still_ cannot reproduce the error.

>> da.26may <- ReadAffy(celfile.path="./CEL_files/")
>> da.26may.mas5 <- mas5(da.26may, sc=300)
> background correction: mas
> PM/MM correction : mas
> expression values: mas
> background correcting...done.
> 12625 ids to be processed
> |                    |
> |Error in update.default(pbt) : need an object with call component
> In addition: Warning message:
> $ operator not defined for this S4 class, returning NULL in:
> object$call

It would be better to show us the failed example, since that is
something we can all try to reproduce easily.

We've found at least one bug so far in affy since verbose=FALSE is
broken.  I get:

   > eset <- mas5(affybatch.example, verbose=FALSE)
   150 ids to be processed
   |                    |
   |####################|

So you really meant it when you said it didn't change anything!
I can run the mas5 example without error in the UTF-8/en_US and C
locales.  I also tried rerunning after installed the latest affy
package from source (1.14.1 is not currently available as a Mac
binary).  But everything is working. :-\

In a new R session, I get the following, does your output match?
The idea here is to see that the update function is the desired one.
So useful tools to investigate that are:

  1. Print out the source of update and see that it is a standard
     generic function.

  2. Use showMethods(update) and verify that there is a method listed
     for ProgressBarText

  3. Look at find("update")

Here are some examples.  Perhaps if you debug (as I've done below)
mas5 and step through, you will find the place for update becomes the
wrong update.  But I'm currently out of ideas on what is different
about your setup from mine.  Perhaps you can also help us there.

+ seth

> update
function (object, ...) 
UseMethod("update")
<environment: namespace:stats>
> library(affy)
Loading required package: Biobase
Loading required package: tools

Welcome to Bioconductor

  Vignettes contain introductory material. To view, type
  'openVignette()'. To cite Bioconductor, see
  'citation("Biobase")' and for packages 'citation(pkgname)'.

Loading required package: affyio
> update
standardGeneric for "update" defined from package "stats"

function (object, ...) 
standardGeneric("update")
<environment: 0x16684670>
Methods may be defined for arguments: object 

> debug(mas5)
> example(mas5)

mas5>   data(affybatch.example)

mas5>   eset <- mas5(affybatch.example)
debugging in: mas5(affybatch.example)
debug: {
    res <- expresso(object, bgcorrect.method = "mas", pmcorrect.method = "mas", 
        normalize = FALSE, summary.method = "mas", ...)
    if (normalize) 
        res <- affy.scalevalue.exprSet(res, sc = sc, analysis = analysis)
    return(res)
}
Browse[1]> update
standardGeneric for "update" defined from package "stats"

function (object, ...) 
standardGeneric("update")
<environment: 0x16684670>
Methods may be defined for arguments: object 

Browse[1]> showMethods(update)
Function: update (package stats)
object="ANY"
object="ProgressBarText"

Browse[1]> 

-- 
Seth Falcon | Computational Biology | Fred Hutchinson Cancer Research Center
http://bioconductor.org



More information about the Bioconductor mailing list