[Bioc-devel] How to fix the error checked in the development version of miRspongeR

Hervé Pagès hp@ge@@on@g|thub @end|ng |rom gm@||@com
Wed Sep 21 04:42:13 CEST 2022


Looks like there's a nasty clash between dbplyr (CRAN) and the devel 
version of clusterProfiler:

 > library(clusterProfiler)
 > library(dbplyr)
Error in completeSubclasses(classDef2, class1, obj, where) :
   trying to get slot "subclasses" from an object of a basic class 
("NULL") with no slots
Error: package or namespace load failed for ‘dbplyr’:
  .onLoad failed in loadNamespace() for 'dbplyr', details:
   call: setClass(cl, contains = c(prevClass, "VIRTUAL"), where = where)
   error: error in contained classes ("character") for class “ident”; 
class definition removed from ‘dbplyr’

This is on any platform with Bioc-devel and the latest version of each 
package:

   > packageVersion("clusterProfiler")
   [1] ‘4.5.2’
   > packageVersion("dbplyr")
   [1] ‘2.2.1’

Note that you need to load the two packages in this order to get this 
error. Loading them in the opposite order works fine.

This seems to break miRspongeR thru a series of events that involve the 
imports made by the SPONGE package:  miRspongeR imports clusterProfiler 
and SPONGE, in that order, and SPONGE itself imports dbplyr via tidyverse.

This is something you'll have to discuss with the clusterProfiler and/or 
dbplyr maintainers.

Finally note that, when miRspongeR is loaded, sessionInfo() reports 
about 200 packages loaded via a namespace! This is obviously a very 
fragile situation. Reducing that number would help make the package less 
vulnerable to these sorts of clash. Many of those "loaded via a 
namespace" packages are actually a consequence of SPONGE itself 
importing many many things (it imports the full tidyverse!), so there's 
probably some room for improvement on that side too.

Best,

H.


On 20/09/2022 13:32, Hervé Pagès wrote:
> Hi Junpeng,
>
> FWIW the EpiCompare package seems to be failing in exactly the same way:
>
> https://bioconductor.org/checkResults/3.16/bioc-LATEST/EpiCompare/nebbiolo2-install.html 
>
>
> Also I can easily reproduce this on my laptop (Ubuntu 22.04):
>
> > BiocManager::install("miRspongeR")
> Bioconductor version 3.16 (BiocManager 1.30.18), R 4.2.0 Patched 
> (2022-05-04
>   r82318)
> Installing package(s) 'miRspongeR'
> trying URL 
> 'https://bioconductor.org/packages/3.16/bioc/src/contrib/miRspongeR_2.1.0.tar.gz' 
>
> Content type 'application/x-gzip' length 661557 bytes (646 KB)
> ==================================================
> downloaded 646 KB
>
> * installing *source* package ‘miRspongeR’ ...
> ** using staged installation
> ** libs
> /usr/bin/gcc -I"/home/hpages/R/R-4.2.r82318/include" -DNDEBUG 
> `/home/hpages/R/R-4.2.r82318/bin/Rscript -e "Rcpp:::CxxFlags()"` 
> -I/usr/local/include   -fpic  -O3 -c complex.c -o complex.o
> /usr/bin/gcc -I"/home/hpages/R/R-4.2.r82318/include" -DNDEBUG 
> `/home/hpages/R/R-4.2.r82318/bin/Rscript -e "Rcpp:::CxxFlags()"` 
> -I/usr/local/include   -fpic  -O3 -c registerDynamicSymbol.c -o 
> registerDynamicSymbol.o
> /usr/bin/gcc -shared -L/home/hpages/R/R-4.2.r82318/lib 
> -L/usr/local/lib -o miRspongeR.so complex.o registerDynamicSymbol.o 
> -L/home/hpages/R/R-4.2.r82318/lib -lR
> installing to 
> /home/hpages/R/R-4.2.r82318/library/00LOCK-miRspongeR/00new/miRspongeR/libs
> ** R
> ** inst
> ** byte-compile and prepare package for lazy loading
> Error in completeSubclasses(classDef2, class1, obj, where) :
>   trying to get slot "subclasses" from an object of a basic class 
> ("NULL") with no slots
> Error: .onLoad failed in loadNamespace() for 'dbplyr', details:
>   call: setClass(cl, contains = c(prevClass, "VIRTUAL"), where = where)
>   error: error in contained classes ("character") for class “ident”; 
> class definition removed from ‘dbplyr’
> Execution halted
> ERROR: lazy loading failed for package ‘miRspongeR’
> * removing ‘/home/hpages/R/R-4.2.r82318/library/miRspongeR’
>
> The downloaded source packages are in
>     ‘/tmp/RtmpzFvmcs/downloaded_packages’
> Updating HTML index of packages in '.Library'
> Making 'packages.html' ... done
>
> Let me take a closer look.
>
> H.
>
> On 20/09/2022 03:50, Zhang Junpeng wrote:
>> Hi Bioconductor community,
>>
>> When I build/check the miRspongeR R package (development version), 
>> there is
>> an error as follows. The release version of the miRspongeR R package 
>> is OK.
>>
>> *Error: .onLoad failed in loadNamespace() for 'dbplyr', details:
>>    call: setClass(cl, contains = c(prevClass, "VIRTUAL"), where = where)
>>    error: error in contained classes ("character") for class “ident”; 
>> class
>> definition removed from ‘dbplyr’
>> Execution halted*
>>
>> How can I fix this error? The details of error here:
>> https://master.bioconductor.org/checkResults/3.16/bioc-LATEST/miRspongeR/nebbiolo2-buildsrc.html 
>>
>>
>> Thanks in advance
>> Junpeng
>>
>>     [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> 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



More information about the Bioc-devel mailing list