BiocParallel/scater warning after move to R 3.4.0
2
0
Entering edit mode
nhejazi • 0
@nhejazi-10825
Last seen 2.1 years ago
UC Berkeley

After the recent update to R 3.4.0, updates and installation of several Bioconductor packages return a warning during installation -- specifically, there seems to be an issue in how BiocParallel sets up its core classes:

Warning in is.na(x[[i]]) :
  is.na() applied to non-(list or vector) of type 'environment'
'BiocParallel' did not register default BiocParallelParams:
  invalid class “MulticoreParam” object: 1: ‘cluster’, ‘.clusterargs’, ‘.uid’, ‘RNGseed’ must be length 1
invalid class “MulticoreParam” object: 2: ‘.clusterargs’, ‘.controlled’, ‘logdir’, ‘resultdir’ must be length 1

This is returned after running `biocLite(c("scater", "scran", "SC3"))`. The installations seems to complete correctly, but perhaps there is some error that I am missing?

Session Info:

R version 3.4.0 (2017-04-21)
Platform: x86_64-apple-darwin16.5.0 (64-bit)
Running under: macOS Sierra 10.12.3

Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] BiocInstaller_1.24.0

loaded via a namespace (and not attached):
[1] compiler_3.4.0 tools_3.4.0 
biocparallel scater • 5.2k views
ADD COMMENT
0
Entering edit mode

I had the exact same issue today, I cannot run fgsea package anymore. 

> library("fgsea", lib.loc="/usr/local/lib/R/site-library")
Loading required package: Rcpp
'BiocParallel' did not register default BiocParallelParams:
  invalid class “MulticoreParam” object: 1: ‘cluster’, ‘.clusterargs’, ‘.uid’, ‘RNGseed’ must be length 1
invalid class “MulticoreParam” object: 2: ‘.clusterargs’, ‘.controlled’, ‘logdir’, ‘resultdir’ must be length 1
Warning messages:
1: R graphics engine version 12 is not supported by this version of RStudio. The Plots tab will be disabled until a newer version of RStudio is installed. 
2: In is.na(x[[i]]) :
  is.na() applied to non-(list or vector) of type 'environment'

Here is my session info :

> sessionInfo()
R version 3.4.0 (2017-04-21)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 14.04.5 LTS

Matrix products: default
BLAS: /usr/lib/openblas-base/libblas.so.3
LAPACK: /usr/lib/lapack/liblapack.so.3.0

locale:
 [1] LC_CTYPE=en_US.UTF-8      
 [2] LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8       
 [4] LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8   
 [6] LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8      
 [8] LC_NAME=C                 
 [9] LC_ADDRESS=C              
[10] LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8
[12] LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils    
[5] datasets  methods   base     

other attached packages:
[1] fgsea_1.0.2  Rcpp_0.12.10

loaded via a namespace (and not attached):
 [1] grid_3.4.0         plyr_1.8.4        
 [3] gtable_0.2.0       scales_0.4.1      
 [5] ggplot2_2.2.1      lazyeval_0.2.0    
 [7] data.table_1.10.4  fastmatch_1.1-0   
 [9] BiocParallel_1.9.2 tools_3.4.0       
[11] munsell_0.4.3      parallel_3.4.0    
[13] compiler_3.4.0     colorspace_1.3-2  
[15] gridExtra_2.2.1    tibble_1.3.0   

 

ADD REPLY
0
Entering edit mode

fgsea is loaded, so what says you can't run it? Is it possible to work around the BiocParallel issue by saying

library(BiocParallel)
register(MulticoreParam())

? (there is an outstanding report that that too fails...)

ADD REPLY
0
Entering edit mode

Hi Martin!

You are correct. fgsea loads but I can't use it unless I use serial parameters, not multicore.

Here is what I am getting when trying to register :

> library(BiocParallel)
> register(MulticoreParam())
Error in validObject(.Object) : 
  invalid class “MulticoreParam” object: 1: ‘cluster’, ‘.clusterargs’, ‘.uid’, ‘RNGseed’ must be length 1
invalid class “MulticoreParam” object: 2: ‘.clusterargs’, ‘.controlled’, ‘logdir’, ‘resultdir’ must be length 1
In addition: Warning message:
In is.na(x[[i]]) :
  is.na() applied to non-(list or vector) of type 'environment'

My only way around this is so far 

register(SerialParam())

Which makes fgsea work for me.

Thanks!

ADD REPLY
0
Entering edit mode

Just thought I'd note here that, at least in my case, updating from Bioconductor 3.4 to 3.5 (with BiocInstaller 1.26.0), and then updating all packages via `biocLite()`, fixed this issue. I had to uninstall and then re-install "BiocInstaller", as noted on the Bioconductor webpage for using the "Devel" version of Bioconductor here:

```

remove.packages("BiocInstaller")  # repeat until R says there is no
                                  # package 'BiocInstaller' to remove
source("https://bioconductor.org/biocLite.R")  # install correct version
BiocInstaller::biocValid()

```

ADD REPLY
0
Entering edit mode

I'll update BiocParallel to use a different initialization strategy in the next few days.

ADD REPLY
4
Entering edit mode
andrew.blake ▴ 40
@andrewblake-11043
Last seen 4.2 years ago

biocLite("devtools")
BiocInstaller::biocLite("Bioconductor/BiocParallel", ref="release-3.5")

fixed it for me - I think that this fix will make it out eventually

ADD COMMENT
0
Entering edit mode
@martin-morgan-1513
Last seen 9 weeks ago
United States

BiocParallel in release (version 1.10.1) and devel (version 1.11.1) now take a different approach to initializing the registered back-ends.

ADD COMMENT

Login before adding your answer.

Traffic: 165 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6