[Bioc-devel] generics from Biobase not found during package installation

Florian Hahne f.hahne at dkfz.de
Fri Oct 21 18:40:24 CEST 2005

Hi Robert,
thanks a lot, this really fixed it. Allthough I think this leads to a 
lot of code duplication and might produce some serious headaches once 
the original generics definitions change (which of course shouldn't 
happen in the first place).
Would it be possible to put a fixed version of prada into the bioC 
release branch?

Thanks again for the help,

Robert Gentleman wrote:

> Hi Florian,
>   I suspect that the problem is that you will need to make use of 
> .onLoad. One of the tricky bits with the "save image" technology is 
> that any methods that you want to associate with generics from another 
> package must have the setMethod code run each time the package is 
> loaded (or attached). For any generics you define we save time by 
> doing the association at package build time (because it cannot change).
>   There is one example in Biobase (and I think some more substantial 
> ones in iSPlot),
>   Robert
> Florian Hahne wrote:
>> Hi everyone,
>> with the new bioC release I encounter a strange problem in my prada 
>> package:
>> I'm using some of the generics from Biobase (e.g. exprs, pData, 
>> phenoData, description) to build methods for my own objects of class 
>> cytoFrame (which describe data from FACS measurements).
>> e.g.
>> setMethod("description", signature="cytoFrame", 
>> definition=function(object) object at description, valueClass="character")
>> This used to work fine with all recent bioC releases, but now I get 
>> the following error when trying to install prada (and the same thing 
>> happens on the build test machines in Seattle):
>> * Installing *source* package 'prada' ...
>> ** R
>> ** inst
>> ** save image
>> Loading required package: Biobase
>> Loading required package: tools
>> Welcome to Bioconductor
>>         Vignettes contain introductory material.
>>         To view, simply type 'openVignette()' or start with 
>> 'help(Biobase)'.
>>         For details on reading vignettes, see the openVignette help 
>> page.
>> Loading required package: RColorBrewer
>> Loading required package: grid
>> KernSmooth 2.22 installed
>> Copyright M. P. Wand 1997
>> ** preparing package for lazy loading
>> KernSmooth 2.22 installed
>> Copyright M. P. Wand 1997
>> Error in methods:::mlistMetaName(mi, ns) :
>>         the methods object name for 'description' must include the 
>> name of the package that contains the generic function, but there is 
>> no generic function of this name
>> Execution halted
>> ERROR: lazy loading failed for package 'prada'
>> Obviously R can't find the generics from Biobase although it is 
>> attached. As a quick fix I tried to redefine those "missing" generics 
>> in my own package. By doing so I get rid of the error message during 
>> installation but I also break all functionality from Biobase. When 
>> adding require(Biobase) in my R code before setting the new methods 
>> this evaluates to TRUE but isGeneric(description) evaluates to FALSE 
>> during installation.
>> When starting R interactively an after attaching Biobase I can set my 
>> new methods without any problem simply by pasting in the code.
>> Does anybody have any idea what might be going wrong here?
>> My system setup is i686-pc-linux-gnu running with R 2.2.0 release and 
>> a fresh installation of bioC 1.7 release (Biobase 1.8.0, prada 1.6.1)
>> Thank's in advance,
>> Florian
>> _______________________________________________
>> Bioc-devel at stat.math.ethz.ch mailing list
>> https://stat.ethz.ch/mailman/listinfo/bioc-devel

More information about the Bioc-devel mailing list