[Bioc-devel] Package problems due to results() function from other package?

Hervé Pagès hp@ge@@on@g|thub @end|ng |rom gm@||@com
Tue Oct 31 21:49:41 CET 2023


Hmm.. so I was curious and did a little bit more investigation about this.

The other package that also defines a results() function is DESeq2, and 
it gets attached to the search path after calling analyzeSNPhood(). You 
can actually observe this phenomena with the following code:

     library(SNPhood)
     library(SNPhoodData)
     search()  # DESeq2 is NOT attached
     example(analyzeSNPhood)
     search()  # DESeq2 is attached

What's intriguing is that this only happens in BioC 3.18. In BioC 3.17, 
running the analyzeSNPhood example does NOT alter the search path. After 
spending some time tracking this down, it turns out that the reason for 
this change of behaviour is a small tweak I made recently to the 
updateObject() generic in BiocGenerics. An unfortunate one that I will 
correct now.

@Christian: A fix is on its way so you have nothing to do.

Sorry for the trouble.

H.

On 10/31/23 09:44, Hervé Pagès wrote:
>
> On 10/31/23 07:22, Wolfgang Huber wrote:
>
>> Dear Christian
>>
>> If your vignette attaches another package that exports a “results” function, after it attached SNPhood which defines its own results function, then the R interpreter has no other choice than doing what it does.
>>
>> Other people adding additional functionality to their packages is probably not something one can really complain about, so I see three options
>> - you use SNPhood::results in your vignette
>> - you don’t attach the other package, and rather just use what you need from it using “::”
>> - you convince Hervé to add ‘results' to BiocGenerics and everyone who exports such a function converts it to a method for that generic.
>
> My pleasure, and that's the cleanest solution. But it will only help 
> if the package that defines the "other" results() function is a 
> Bioconductor package and not a CRAN package. Has this package been 
> identified?
>
> A 4th option is to make sure that the other package gets loaded 
> _before_ SNPhood e.g. by putting an explicit library(<the other 
> package>) before library(SNPhood) in your vignette, even though that's 
> kind of hacky.
>
> Best,
>
> H.
>
>> Thank you and kind regards
>> Wolfgang
>>
>> --
>> Wolfgang Huber
>> EMBL
>> https://www.huber.embl.de/
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>> Il giorno 2023-10-28, alle ore 16:15, Christian Arnold<chrarnold using web.de>  ha scritto:
>>>
>>> For my package SNPhood that did not receive any code changes or updates
>>> in quite a while, I suddenly see errors with Bioc 3.18:
>>> https://master.bioconductor.org/checkResults/3.18/bioc-LATEST/SNPhood/nebbiolo2-buildsrc.html
>>>
>>> Error: processing vignette 'workflow.Rmd' failed with diagnostics:
>>> unused argument (type = "allelicBias")
>>>
>>> This comes from this line I think:
>>>
>>> names(results(SNPhood.o, type = "allelicBias"))
>>>
>>> For literally years, this didnt cause any problems, and the results
>>> function is actually (re)defined in the SNPhood package:
>>>
>>> results <- function(SNPhood.o, type, elements = NULL)
>>>
>>> I am not sure now what causes this. Should I use the syntax
>>> SNPhood::results to make it clear, or I am wrongly assuming that the
>>> wrong result function is taken that causes the error?
>>>
>>> Any pointers?
>>>
>>>
>>> Best
>>>
>>> Christian
>>>
>>>
>>> [[alternative HTML version deleted]]
>>>
>>> _______________________________________________
>>> Bioc-devel using r-project.org  mailing list
>>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>> _______________________________________________
>> Bioc-devel using r-project.org  mailing list
>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
> -- 
> Hervé Pagès
>
> Bioconductor Core Team
> hpages.on.github using gmail.com

-- 
Hervé Pagès

Bioconductor Core Team
hpages.on.github using gmail.com

	[[alternative HTML version deleted]]



More information about the Bioc-devel mailing list