'BiocParallel' did not register default BiocParallelParams
1
0
Entering edit mode
4.1 years ago
dec986 ▴ 310

Hello,

I'm trying to load an R package (library?) called BiSeq, which has a web of dependencies, and when I load the library I get:

'BiocParallel' did not register default BiocParallelParams:
invalid class “MulticoreParam” object: 1: ‘cluster’, ‘.clusterargs’, ‘RNGseed’ must be length 1
invalid class “MulticoreParam” object: 2: ‘timeout’, ‘log’ must be length 1


my session information:

> sessionInfo()
R version 3.4.2 (2017-09-28)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.3 LTS

Matrix products: default
BLAS: /usr/lib/openblas-base/libblas.so.3
LAPACK: /usr/lib/libopenblasp-r0.2.18.so

locale:
[1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8       LC_NAME=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C

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

other attached packages:
[1] BiSeq_1.10.0               Formula_1.2-2
[3] SummarizedExperiment_1.0.2 Biobase_2.30.0
[5] GenomicRanges_1.22.4       GenomeInfoDb_1.6.3
[7] IRanges_2.4.8              S4Vectors_0.8.11
[9] BiocGenerics_0.16.1

loaded via a namespace (and not attached):
[1] Rcpp_0.12.13            compiler_3.4.2          nloptr_1.0.4
[4] futile.logger_1.4.3     XVector_0.10.0          bitops_1.0-6
[7] futile.options_1.0.0    tools_3.4.2             zlibbioc_1.16.0
[10] digest_0.6.12           bit_1.1-12              lme4_1.1-14
[13] memoise_1.1.0           tibble_1.3.4            RSQLite_2.0
[16] annotate_1.48.0         nlme_3.1-131            lattice_0.20-35
[19] rlang_0.1.2             Matrix_1.2-11           DBI_0.7
[22] rtracklayer_1.30.4      Biostrings_2.38.4       bit64_0.9-7
[25] globaltest_5.24.0       lmtest_0.9-35           grid_3.4.2
[28] nnet_7.3-12             flexmix_2.3-14          AnnotationDbi_1.32.3
[31] survival_2.41-3         XML_3.98-1.9            BiocParallel_1.4.3
[34] lokern_1.1-8            minqa_1.2.4             blob_1.1.0
[37] lambda.r_1.2            GenomicAlignments_1.6.3 Rsamtools_1.22.0
[40] modeltools_0.2-21       MASS_7.3-47             splines_3.4.2
[43] sfsmisc_1.1-1           xtable_1.8-2            betareg_3.1-0
[46] sandwich_2.4-0          RCurl_1.95-4.8          zoo_1.8-0


I get a similar error on another system, but worse:

'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 message:
In is.na(x[[i]]) :
is.na() applied to non-(list or vector) of type 'environment


which has the session info:

> sessionInfo()
R version 3.4.2 (2017-09-28)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 14.04.5 LTS

Matrix products: default
BLAS: /usr/lib/libblas/libblas.so.3.0
LAPACK: /usr/lib/lapack/liblapack.so.3.0

locale:
[1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8       LC_NAME=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C

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

other attached packages:
[1] BiSeq_1.12.0               Formula_1.2-2
[3] SummarizedExperiment_1.2.3 Biobase_2.32.0
[5] GenomicRanges_1.24.3       GenomeInfoDb_1.8.7
[7] IRanges_2.6.1              S4Vectors_0.10.3
[9] BiocGenerics_0.18.0

loaded via a namespace (and not attached):
[1] Rcpp_0.12.13            compiler_3.4.2          XVector_0.12.1
[4] bitops_1.0-6            tools_3.4.2             zlibbioc_1.18.0
[7] digest_0.6.12           bit_1.1-12              memoise_1.1.0
[10] tibble_1.3.4            annotate_1.50.1         RSQLite_2.0
[13] lattice_0.20-35         rlang_0.1.2             Matrix_1.2-11
[16] DBI_0.7                 rtracklayer_1.32.2      Biostrings_2.40.2
[19] bit64_0.9-7             lmtest_0.9-35           grid_3.4.2
[22] nnet_7.3-12             globaltest_5.26.0       flexmix_2.3-14
[25] AnnotationDbi_1.34.4    survival_2.41-3         XML_3.98-1.9
[28] BiocParallel_1.6.6      lokern_1.1-8            blob_1.1.0
[31] splines_3.4.2           Rsamtools_1.24.0        modeltools_0.2-21
[34] sfsmisc_1.1-1           GenomicAlignments_1.8.4 xtable_1.8-2
[37] betareg_3.1-0           sandwich_2.4-0          RCurl_1.95-4.8
[40] zoo_1.8-0


Googling this produces no solutions, only 1 other person has had this problem before. How can I load this BiSeq library/package correctly?

software error R • 4.6k views
1
Entering edit mode

hi Kevin, my Bioconductor on the 1st computer is

> source("https://bioconductor.org/biocLite.R")
Bioconductor version 3.2 (BiocInstaller 1.20.3), ?biocLite for help


my Bioconductor on the 2nd computer is

> source("https://bioconductor.org/biocLite.R")
Bioconductor version 3.3 (BiocInstaller 1.22.3), ?biocLite for help
A newer version of Bioconductor is available for this version of R,


and yes, you are correct, there are no loaded packages which could be interfering. BiSeq was installed from BioConductor.

-Dave

0
Entering edit mode

Hi Dave, that's weird because I have the same version of Bioconductor and BiocInstaller as per your 1st computer.

Just 3 more things to try:

• Ensure that BiocParallel is installed
• Try to install BiSeq via install.packages() and choose a mirror
• Re-install R and install BiSeq as the very first package

In the past, the final option, although not ideal, has always resolved these package issues for me

0
Entering edit mode

hi Kevin,

1) BiocParallel is installed, and gives the same warning message that BiSeq does, which tells me that nothing may be wrong with BiSeq itself, but in one of its many many dependencies

3) this is on a computer where I don't have root privilege, I re-downloaded R and installed another copy of it, but it somehow still accesses the same libraries (which shows the same error just like the main installation will when it tries to load BiSeq)

I have also attempted to fix BiocParallel from https://support.bioconductor.org/p/95306/ but this fails as well:

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

0
Entering edit mode

Hey, I have just successfully installed and loaded this package (Ubuntu 14.04; R 3.2.5), by opening a 'brand' new session and typing:

source("http://bioconductor.org/biocLite.R")
biocLite("BiSeq")
require("BiSeq")


Just to be sure, have you installed it from Bioconductor and in a new session with no loaded packages?

3
Entering edit mode
4.1 years ago
dec986 ▴ 310

Through blind luck I have found that this R package will only work on R 3.3.2 (2016-10-31) -- "Sincere Pumpkin Patch" It may work on other versions, but I have no information.

as an FYI to future package authors, please fix these problems before these packages are shipped out. These incompatibilities cause enormous headaches and waste loads of time on each end user. Problems like these were not able to be solved by anyone here in my lab and by more than 200 viewers on biostars, all of whom are very smart people. Sometimes it may be better to "reinvent the wheel" than for every future user to have to spend weeks of their valuable time re-doing work which should have been done by the author in the first place.

There has got to be a nice compromise between the end user wasting weeks of time going through "dependency hell" and the author "not reinventing the wheel."

• just my 2 cents
1
Entering edit mode

While I agree that there can be plenty of problems in scientific software distribution, it seems to me that here you're unfairly blaming package developers for incompatibility issues. On the two setups listed in the first post you're running the cutting edge, one month old, version of R, but trying to use versions of the BiocParallel package that were released between 18 months and 2 years ago.

The whole point of Bioconductors 6 monthly release cycle is to try and tie in with a particular version of R, to ensure issues like this don't arrive. All Bioconductor packages in a release are built and checked using the appropriate R version on a regular basis (about twice a week). However you can't expect historic versions of Bioconductor packages to always work with the latest R. This is why you get the A newer version of Bioconductor is available for this version of R message when loading BiocInstaller.

0
Entering edit mode

this whole comment thread reminds me of a diatribe by Linus Torvalds (the Linus of Linux), just replace "C++" with "R", his words, not mine:

"C++ is a horrible language. It's made more horrible by the fact that a lot of substandard programmers use it, to the point where it's much much easier to generate total and utter crap with it. Quite frankly, even if the choice of C were to do nothing but keep the C++ programmers out, that in itself would be a huge reason to use C.

In other words: the choice of C is the only sane choice. I know Miles Bader jokingly said "to piss you off", but it's actually true. I've come to the conclusion that any programmer that would prefer the project to be in C++ over C is likely a programmer that I really would prefer to piss off, so that he doesn't come and screw up any project I'm involved with.

C++ leads to really really bad design choices. You invariably start using the "nice" library features of the language like STL and Boost and other total and utter crap, that may "help" you program, but causes:

• infinite amounts of pain when they don't work (and anybody who tells me that STL and especially Boost are stable and portable is just so full of BS that it's not even funny)

• inefficient abstracted programming models where two years down the road you notice that some abstraction wasn't very efficient, but now all your code depends on all the nice object models around it, and you cannot fix it without rewriting your app.

In other words, the only way to do good, efficient, and system-level and portable C++ ends up to limit yourself to all the things that are basically available in C. And limiting your project to C means that people don't screw that up, and also means that you get a lot of programmers that do actually understand low-level issues and don't screw things up with any idiotic "object model" crap.

So I'm sorry, but for something like git, where efficiency was a primary objective, the "advantages" of C++ is just a huge mistake. The fact that we also piss off people who cannot see that is just a big additional advantage.

If you want a VCS that is written in C++, go play with Monotone. Really. They use a "real database". They use "nice object-oriented libraries". They use "nice C++ abstractions". And quite frankly, as a result of all these design decisions that sound so appealing to some CS people, the end result is a horrible and unmaintainable mess."

0
Entering edit mode

Welcome to bioinformatics, or, as I call it, the 'Wild Wild West' (Irish humour)