[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 22:58:07 CET 2023
Fixed in BiocGenerics 0.48.1:
https://github.com/Bioconductor/BiocGenerics/commit/5fd6dfe93786292484dc53023ec681391f4559e0
With this version of BiocGenerics, SNPhood passes CHECK on my laptop
(Ubuntu Linux). We'll see how it goes on Thursday's report. (The fix was
too late for today's builds -- they already started -- so it won't
reflect on tomorrow's report.)
Sorry again for the trouble.
Cheers,
H.
PS: Making results() an S4 generic defined in BiocGenerics would still
be a good idea though, because a SNPhood user could still decide to
_explicitly_ load DESeq2 with library(DESeq2) after they've loaded
SNPhood, which would also break results(). I'll leave this to the
authors/maintainers of SNPhood and/or DESeq2 to open an issue on the
BiocGenerics repo to request this if they are interested.
On 10/31/23 13:49, Hervé Pagès wrote:
>
> 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
--
Hervé Pagès
Bioconductor Core Team
hpages.on.github using gmail.com
[[alternative HTML version deleted]]
More information about the Bioc-devel
mailing list