davidaknowles / leafcutter

Annotation-free quantification of RNA splicing. Yang I. Li, David A. Knowles, Jack Humphrey, Alvaro N. Barbeira, Scott P. Dickinson, Hae Kyung Im, Jonathan K. Pritchard
http://davidaknowles.github.io/leafcutter/
Apache License 2.0
208 stars 115 forks source link

Installation problem. py2.7 r3.6.0 conda install #254

Open Arnoc233 opened 7 months ago

Arnoc233 commented 7 months ago

Hi, there! I am a third-year bioinformatics student, trying to install r-leafcutter with conda. I am using ubuntu-22.04 on WSL2. The commands used are as follows:

 conda create -n leafCutter python=2.7 r-base=3.6.0
 conda activate leafCutter
 conda install -c davidaknowles r-leafcutter

Though I got everything OK here, something next went wrong. I entered R, and tried to library this package but failed eventually.

library("leafcutter")
# Loading required package: Rcpp
# Error: package or namespace load failed for ‘leafcutter’:
# package ‘leafcutter’ was installed by an R version with different internals; it needs to be reinstalled for use with this R version

I even checked the path of my R in virtual enviroment.

which R
# /root/miniconda3/envs/leafCutter/bin/R

I tried many different versions of r-base, including 3.5.3, 3.6.0, 3.6.1, 4.2.x and 4.3.x; The 4.2.x and 4.3.x tells me I need to use R < 4.0.0; but for 3.5.1, 3.6.0, 3.6.1, it says package ‘leafcutter’ was installed by an R version with different internals; it needs to be reinstalled for use with this R version. Now I am fully confused about how to choose my R version. Which version should I choose on earth?

Those versions are ones available on conda, excluding 3.6.3 or 4.1.x. I even tried 3.6.3 compile version from source code, but it returns the same error.

Arnoc233 commented 7 months ago

I currently solved my installation problem by using R 3.4.1 version. Here is my conda version control.

conda create -n LC python=2.7 r-base=3.4.1
conda activate LC
conda install -c davidaknowles r-leafcutter

R
library("leafcutter")

I got this idea by using following commands to find out which r-base version based to build r-leafcutter.

ls -lh /root/miniconda3/envs/LC/lib/R/library/leafcutter/
cd /root/miniconda3/envs/LC/lib/R/library/leafcutter/
cat DESCRIPTION

The DESCRIPTION file contains requirements. And in this file I got the built line. Thus I see R 3.4.1 is a proper solution.

Built: R 3.4.1; x86_64-pc-linux-gnu; 2017-08-04 19:10:17 UTC; unix

It's quite strange that using conda to download r-leafcutter directly will got a r-base 4.3.1 version. I don't know it's a command to download latest r-base at that year, or it's a writing miss from 3.4.1 to 4.3.1.

I hope we can change the content at installation page and recommend using r-base 3.4.1 with conda. (if one got problem with many compling problems on linux) https://davidaknowles.github.io/leafcutter/articles/Installation.html

LeoJSYu commented 7 months ago

man,what can i say

YUTINXIN commented 7 months ago

I currently solved my installation problem by using R 3.4.1 version. Here is my conda version control.

conda create -n LC python=2.7 r-base=3.4.1
conda activate LC
conda install -c davidaknowles r-leafcutter

R
library("leafcutter")

I got this idea by using following commands to find out which r-base version based to build r-leafcutter.

ls -lh /root/miniconda3/envs/LC/lib/R/library/leafcutter/
cd /root/miniconda3/envs/LC/lib/R/library/leafcutter/
cat DESCRIPTION

The DESCRIPTION file contains requirements. And in this file I got the built line. Thus I see R 3.4.1 is a proper solution.

Built: R 3.4.1; x86_64-pc-linux-gnu; 2017-08-04 19:10:17 UTC; unix

It's quite strange that using conda to download r-leafcutter directly will got a r-base 4.3.1 version. I don't know it's a command to download latest r-base at that year, or it's a writing miss from 3.4.1 to 4.3.1.

I hope we can change the content at installation page and recommend using r-base 3.4.1 with conda. (if one got problem with many compling problems on linux) https://davidaknowles.github.io/leafcutter/articles/Installation.html

thank you for your advise ,after implementing your method and installing rstantools,I have encountered a new problem,After conducting differential intron excision analysis, I obtained this error:Error: package or namespace load failed for ‘leafcutter’ in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]): there is no package called ‘tibble’

Arnoc233 commented 7 months ago

@YUTINXIN Here are some steps recommended to solve your problem. Since it's a package loading problem in R, u can try these steps. If u encounter further problems, you can contact me through 479746458@qq.com, since we are both in China. Some problems might be caused by simple mistakes and can be solved if one could see images of environment and error message.

Step00. Check the library path and your package location.

To be honest, checking conda enviroment may also be helpful. Try conda activate LC or conda list tibble to check installation state. Or in my case, I didn't do anything about rstantools. If you have installed tibble, but R cannot load it. Then you need to find the path of tibble and add it to library path. However, if you cannot locate tibble, then you may try step01 to install it.

locate "tibble'
# /root/miniconda3/envs/LC/lib/R/library/tibble

R
.libPaths()

path01 = "/root/miniconda3/envs/LC/lib/R/library/"
# you can add path01 to library path.
.libPaths(c(path01, .libPaths()))

library("tibble")
library("leafcutter")

Step01. Install tibble and other packages using different methods.

# Option01. install by conda
conda activate LC
conda search r-tibble # to see avaible version information.
conda install r-tibble
# or specify its version.
conda install r-tibble=1.3.3

# Option02. install by R
R
install.packages("tibble")

Step02. check your leafcutter and tibble loading in R.

library("leafcutter")
sessionInfo() # package loading status.

.libPaths() # library path for this R.
# [1] "/root/miniconda3/envs/LC/lib/R/library"

If loaded properly, you may find tibble_1.3.3 inside sessionInfo(). And my sessionInfo() outcome as reference are as follows:

> sessionInfo()
R version 3.4.1 (2017-06-30)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 20.04.6 LTS

Matrix products: default
BLAS: /root/miniconda3/envs/LC/lib/R/lib/libRblas.so
LAPACK: /root/miniconda3/envs/LC/lib/R/lib/libRlapack.so

locale:
 [1] LC_CTYPE=C.UTF-8       LC_NUMERIC=C           LC_TIME=C.UTF-8
 [4] LC_COLLATE=C.UTF-8     LC_MONETARY=C.UTF-8    LC_MESSAGES=C.UTF-8
 [7] LC_PAPER=C.UTF-8       LC_NAME=C              LC_ADDRESS=C
[10] LC_TELEPHONE=C         LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C

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

other attached packages:
[1] leafcutter_0.2 Rcpp_0.12.11

loaded via a namespace (and not attached):
 [1] compiler_3.4.1       RColorBrewer_1.1-2   plyr_1.8.4
 [4] R.methodsS3_1.7.1    R.utils_2.5.0        tools_3.4.1
 [7] base64enc_0.1-3      iterators_1.0.8      digest_0.6.12
[10] rpart_4.1-11         tibble_1.3.3         gtable_0.2.0
[13] htmlTable_1.9        checkmate_1.8.2      lattice_0.20-35
[16] rlang_0.1.1          Matrix_1.2-10        foreach_1.4.3
[19] gridExtra_2.2.1      stringr_1.2.0        knitr_1.16
[22] dplyr_0.7.0          cluster_2.0.6        htmlwidgets_0.8
[25] stats4_3.4.1         grid_3.4.1           nnet_7.3-12
[28] inline_0.3.14        data.table_1.10.4    glue_1.1.1
[31] R6_2.2.1             survival_2.41-3      rstan_2.15.1
[34] foreign_0.8-68       latticeExtra_0.6-28  Formula_1.2-1
[37] reshape2_1.4.2       ggplot2_2.2.1        magrittr_1.5
[40] StanHeaders_2.15.0-1 Hmisc_4.0-3          scales_0.4.1
[43] backports_1.1.0      codetools_0.2-15     htmltools_0.3.6
[46] splines_3.4.1        assertthat_0.2.0     colorspace_1.3-2
[49] stringi_1.1.5        acepack_1.4.1        lazyeval_0.2.0
[52] munsell_0.4.3        R.oo_1.21.0