ARCC is currently exploring ways to best support R users on Teton and across disciplines and the 100s of libraries being used.
We have built a version of R 4.0.5 with a selection of common libraries pre-installed.
This can be loaded by:
[]$ module load gcc/7.3.0 r/4.0.5-py27 []$ R R version 4.0.5 (2021-03-31) -- "Shake and Throw" Copyright (C) 2021 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. Natural language support but running in an English locale R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R.
Listing Packages
Since this build has > 500 libraries, there are too many to individually list here.
You can find if a package is available by:
> row.names(installed.packages()) [1] "annotate" "AnnotationDbi" "assertthat" [4] "backports" "BH" "Biobase" [7] "BiocGenerics" "BiocParallel" "BiocVersion" [10] "Biostrings" "BSgenome" "Cairo" [13] "callr" "checkmate" "chromVAR" ...
Alternatively, if you wish to list a package per line, with its version, you can use:
> ip = as.data.frame(installed.packages()[,c(1,3:4)]) > ip = ip[is.na(ip$Priority),1:2,drop=FALSE] > ip Package Version annotate annotate 1.68.0 AnnotationDbi AnnotationDbi 1.52.0 assertthat assertthat 0.2.1 backports backports 1.2.1 BH BH 1.75.0-0 Biobase Biobase 2.50.0 BiocGenerics BiocGenerics 0.36.1 BiocParallel BiocParallel 1.24.1 BiocVersion BiocVersion 3.12.0 Biostrings Biostrings 2.58.0 BSgenome BSgenome 1.58.0 Cairo Cairo 1.5-12.2 callr callr 3.5.1 ...
Package CNVRG:
One package that we currently haven’t explicitly installed is CNVRG. Since this is under active development we are waiting until it has a stable version, and then at this point we can look at packaging it with the others.
Issues:
Conflicting Versions of Libraries: libPath()
The core idea of this version of R is to provide a self contained eco-system - but obviously it does not provide ALL libraries and in cases an individual will need to use a library not provided. Users can still install additional libraries into their home folder. As with any complex system of libraries with trees of dependencies and conflicting versions, there can be issues.
One issue that we are aware of is when users have conflicting versions of libraries stored in the home folder folder overriding those installed with R.
For example, I have library CLI 2.3.1 installed in /home/salexan5/R/x86_64-pc-linux-gnu-library/4.0/cli/
, which conflicts with version 2.4.0 installed in /apps/u/gcc/7.3.0/r/4.0.5-bqwhj7g/rlib/R/library/
So, first attempt, it looks in /home/salexan5/R/x86_64-pc-linux-gnu-library/4.0/cli/
since this is first in the list of library paths to look in:
[salexan5@tlog2 ~]$ module load gcc/7.3.0 r/4.0.5-py27 [salexan5@tlog2 ~]$ R R version 4.0.5 (2021-03-31) -- "Shake and Throw" ... > .libPaths() [1] "/pfs/tc1/home/salexan5/R/x86_64-pc-linux-gnu-library/4.0" [2] "/pfs/tc1/apps/el7-x86_64/u/gcc/7.3.0/r/4.0.5-bqwhj7g/rlib/R/library" > library(devtools) Loading required package: usethis Error: package or namespace load failed for ‘devtools’ in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]): namespace ‘cli’ 2.3.1 is being loaded, but >= 2.4.0 is required > quit()
Second attempt, I swap these over so it’ll first look in /apps/el7-x86_64/u/gcc/7.3.0/r/4.0.5-bqwhj7g/rlib/R/library
which contains the appropriate version:
[salexan5@tlog2 ~]$ R R version 4.0.5 (2021-03-31) -- "Shake and Throw" ... > .libPaths() [1] "/pfs/tc1/home/salexan5/R/x86_64-pc-linux-gnu-library/4.0" [2] "/pfs/tc1/apps/el7-x86_64/u/gcc/7.3.0/r/4.0.5-bqwhj7g/rlib/R/library" > myPaths <- .libPaths() > myPaths <- c(myPaths[2], myPaths[1]) > .libPaths(myPaths) > .libPaths() [1] "/pfs/tc1/apps/el7-x86_64/u/gcc/7.3.0/r/4.0.5-bqwhj7g/rlib/R/library" [2] "/pfs/tc1/home/salexan5/R/x86_64-pc-linux-gnu-library/4.0" > library(devtools) Loading required package: usethis >
Requesting a Package to be Included:
We are looking to review the base version of R and list of packages on a semi-regular basis, so if there is a useful package that is being widely used across a group then we can consider adding it to the package list. Please send a request to the arcc-info@uwyo.edu email list. Please be aware that we can not always install a package due to conflicting dependencies issues with other packages and low level system level requirements. In these cases we can look at building a bespoke container for this purpose.