Bioconductor packages don't install automatically

Issue #97 new
Kenneth Hoehn created an issue

I’ve been setting up Alakazam on a new computer (R4.1.1), and found that the Bioconductor packages don’t automatically install when using install.packages(“alakazam”). I get an error stating that Biostrings, GenomicAlignments, and IRanges are not available. I believe this is related to Shazam issue #155. Using install_deps in a source code install does install these dependencies, however. Any ideas on how to address this? Difficult to debug since it seems specific to the CRAN installation to a local machine that doesn’t already have those dependencies installed.

Comments (7)

  1. Jason Vander Heiden

    You could test it in a container, like rocker/verse then you don’t have to go through the install/uninstall song and dance with BioC. I would try:

    1. Move the the biocViews: line in DESCRIPTION down a line so that it's above Imports:. I’d very, very surprised if this changed anything, but it’s easy to test.
    2. Run install.packages("BiocManager") first. See if it’s a problem of not having a mechanism to install BioC packages.
    3. Replace the BioC functions with something else. Lots of work and probably unnecessary.

    I haven’t seen this before and it doesn’t happen on CRAN’s check service, which tends to be the most difficult place to install. I’m really not sure. Is it Windows/Mac/Linux specific?

  2. Kenneth Hoehn reporter

    Sounds good. I tried #2 already, but no dice. This is on an Ubuntu machine, so not sure if platform dependent.

  3. Jason Vander Heiden

    Hrm. 2 was my best guess. Try explicitly defining the view? Looks like they are all part of the DataRepresentation view, so change the line in DESCRIPTION to

    biocViews: Software, Infrastructure, DataRepresentation

    or:

    biocViews: DataRepresentation

  4. ssnn

    I think there is some mismatch with the R version and the Bioconductor version what is causing the problem. I removed GenomicAlignments from my computer and then installation from the source code or with install.packages("alakazam") fail. But BiocManager::install("alakazam") works.

    The install() function is provided by BiocManager. This is a wrapper around install.packages, but with the repository chosen according to the version of Bioconductor in use, rather than to the version relevant at the time of the release of R. Source: https://www.bioconductor.org/install/

  5. Jason Vander Heiden

    Reproducible using install.packages in:

    • rocker/tidyverse:4.0.5
    • rocker/tidyverse:4.1.1

    But works fine using either:

    • devtools::install_bitbucket("kleinstein/alakazam@1.1.0")
    • remotes::install_local("alakazam_1.1.0.tar.gz")

    Which is a pain in the ass, because I can’t figure a way to test changes while reproducing the error.

    How much work would it be to replace the BioC packages with alternatives? Hassling with BioC is a semi-frequent annoyance anyway.

  6. Jason Vander Heiden

    This installs successfully:

    docker run -it rocker/tidyverse:4.1.1 bash
    R
    setRepositories(ind=1:3)
    install.packages("alakazam")
    

  7. Log in to comment