Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

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.

  • No labels