Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel7
typeflat
separatorpipe
Note

This page related to an older Teton cluster, but the process of identifying available packages still holds for other clusters.

Overview

ARCC is currently exploring ways to best support R users on Teton across the clusters and across disciplines and the 100s of libraries being used.We

Using

On Teton, we have built a version of R 4 r/r4.0.5-py27 with a selection of common libraries pre-installed.

This can be loaded by:

Code Block
[]$ 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.

...

Code Block
> 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:

Code Block
[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:

Code Block
[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 purposePlease be aware of conflicting libPaths that you might have installed locally. See the section on our general R Packages/Libraries page for more details.