ncborcherding / escape

Easy single cell analysis platform for enrichment
https://www.borch.dev/uploads/screpertoire/articles/running_escape
MIT License
143 stars 20 forks source link

Install issues + missing functions in installed package #97

Closed AndreaLGardner closed 4 months ago

AndreaLGardner commented 4 months ago

Installation would not complete. I tried a few things, including setting dependencies=TRUE but I think it was creating a separate prior install of GSVA via BiocManager::install("GSVA") that may have been the major fix for me.

After getting a completed install, I found that the core functions escape.matrix() and runEscape() were missing from the package.

This was true when installed via bioconductor and through devtools.

lsf.str("package:escape")

enrichIt : function (obj, gene.sets = NULL, method = "ssGSEA", groups = 1000, cores = 2, min.size = 5, ssGSEA.norm = FALSE, ...)
enrichmentPlot : function (obj, gene.set, gene.sets, group, colors = c("#0D0887FF", "#7E03A8FF", "#CC4678FF", "#F89441FF", "#F0F921FF"))
getGeneSets : function (species = "Homo sapiens", library = NULL, subcategory = NULL, gene.sets = NULL)
getSignificance : function (enriched, group = NULL, gene.sets = NULL, fit = NULL)
masterPCAPlot : function (enriched, gene.sets, PCx, PCy, top.contribution = 10)
pcaEnrichment : function (PCAout, PCx, PCy, colors = c("#0D0887FF", "#7E03A8FF", "#CC4678FF", "#F89441FF", "#F0F921FF"), contours = TRUE, facet = NULL)
performPCA : function (enriched, gene.sets = NULL, groups)
ridgeEnrichment : function (enriched, group = "cluster", gene.set = NULL, scale.bracket = NULL, facet = NULL, add.rug = FALSE, colors = c("#0D0887FF", "#7E03A8FF", "#CC4678FF", "#F89441FF", "#F0F921FF"))
splitEnrichment : function (enriched, x.axis = NULL, scale.bracket = NULL, split = NULL, gene.set = NULL, colors = c("#0D0887FF", "#7E03A8FF", "#CC4678FF", "#F89441FF", "#F0F921FF"))

This seems like such a neat tool, I look forward to using it. Please let me know if I am doing something wrong here or if code needs to be updated on the back end. Thank you!

ncborcherding commented 4 months ago

Hey Andrea,

It looks like you have installed a prior version of escape - specifically one with enrichIt() as the major method for calculation. This has been supplanted by escape.matrix() and runEscape() in escape >= v2. An added complexity is that the newest version of GSVA have broken all v1 escape.

How are you calling the install? For the bioconductor version, are you using the 3.19 release?

Sorry for the trouble, hope we can find a fix.

Nick

AndreaLGardner commented 4 months ago

I did not specify a version during install, just BiocManager::install("escape")

Upon specifying version with BiocManager::install("escape", version = "3.19"), I received this error message:

Error: Bioconductor version '3.19' requires R version '4.4'; use version = '3.18' with R version 4.3; see https://bioconductor.org/install

I have updated bioconductor to 3.18, but working on a shared server without admin access means I can't update base R to 4.4 without launching a container and escape will not install properly in this configuration.

On my local machine, upgrading to R 4.4.0 and bioconductor 3.19 allowed proper install and use of escape! But this does mean that the brand new version of R is requisite to install escape in its current build.

All together, I assume this means that my version of bioconductor originally tried to match my R version (4.3.1) to an older version of escape without informing me that it was doing that, leading to issues. An error should be returned during install and a note should be included in the setup docs if >= 4.4.0 is required.

Thanks for helping me troubleshoot! I will work on building a Docker container to move my analysis to the server now that we have found the issue.

AndreaLGardner commented 4 months ago

Update: I must have installed it locally using devtools after failing at bioconductor. I learned this in trying set up a docker container to run this on a server. Details below.

My first attempt at building my image with escape through bioconductor was not successful. The image completed the build, but when I opened the container, escape was not installed. To troubleshoot, I tried to install escape inside the container through bioconductor (v3.19, R version 4.4.0) and received these error messages:

Warning messages: 1: In install.packages(...) : installation of package ‘SpatialExperiment’ had non-zero exit status 2: In install.packages(...) : installation of package ‘GSVA’ had non-zero exit status 3: In install.packages(...) : installation of package ‘escape’ had non-zero exit status

With the same container opened, I then tried installing via devtools and found success!

Given that devtools seemed to work, I changed my dockerfile and rebuilt the image installing just from devtools. But the new container also did not have escape installed. Hmmmmm.

The way in which I was able to get it to work was to attempt and fail the bioconductor install and then do the devtools install. I assume this means that bioconductor is installing some necessary packages (before failing at SpatialExperiment and GVSA) that might be missing from the devtools call.

So my conclusions are that in its current state this is the order of operations to get a working install:

  1. Make sure R is version 4.4
  2. Run BiocManager::install('escape')
  3. Run devtools::install_github("ncborcherding/escape")

Hopefully these details assist others with their installs and help y'all fix what needs to be fixed to streamline installation.

And thanks again for building this tool, it is exactly what I have been looking for!

ncborcherding commented 4 months ago

Thank you so much for the excellent rundown and follow-up. Neither GSVA nor escape requires R v4.4 - that is a requirement of BiocManager. Users should be able to get around that by installing directly from the github repo.

Again thanks a lot and please let me know if you have any other issues.

Nick