R
集群R 使用¶
Warning
集群上R最新的主线版本为 R/4.0.0
,此版本内安装了大量可用R包,如代码或R包无较高R版本需求,建议优先使用此版本。
集群上安装了多个版本的R,3.3, 3.6, 4.0, 4.2等,可使用module av R
查看。用户可以根据需要,通过module load
命令调用需要的R。
module load R/4.0.0
在R/4.0.0
中,安装了许多常用的R包,部分R包安装运行时会依赖高版本GCC、库文件等,具体见本文后面的表格,使用这些R包需要先载入对应的软件。
对于集群中没有安装的R包,用户可以在自己的账号中安装。调用集群中的R安装R包时候,R包会装在默认位置~/R/x86_64-pc-linux-gnu-library/x.x
目录中,如使用R/4.0.0
,R包默认安装目录为 ~/R/x86_64-pc-linux-gnu-library/4.0
。
各种R包安装方式见 R包安装。
如果不是安装在默认位置,可以在~/.bashrc
目录内写入R_LIBS
变量来指定R包安装的位置以方便调用。
export R_LIBS=~/R_libs
Rstudio¶
为方便画图等,可以调用集群中安装的Rstudio,具体见RStudio。
Rstudio运行在计算节点,由于计算节点没有联网,因此不能直接安装R包。处理方式为:
- 自行安装
在登录节点上,使用集群公共R R/4.2.0
安装R包到指定目录,然后在Rstudio中使用安装的这个包。
$ module load R/4.2.0
# 确保 ~/R/rstudio/4.2/ 目录存在,否则自行创建
$ R
# install.packages包安装,使用lib参数指定安装位置
$ > install.packages("ggplot2", lib="~/R/rstudio/4.2/")
# Bioconductor包安装
# 先指定安装位置,然后再安装
$ > .libPaths(c("~/R/rstudio/4.2/", .libPaths()))
$ > BiocManager::install("methylKit")
- 使用预装包
# 添加包路径 $ > .libPaths(c('/public/home/software/opt/bio/software/rstudio/4.2/library',.libPaths())) # 如使用装好的 monocle3 $ > library(monocle3)
R 依赖库¶
R包 | 集群R版本 | 依赖库 |
---|---|---|
LPmerge | 4.0.0 | module load glpk/5.0 |
raster | 4.0.0 | module load GDAL/3.1.0 SQLite/3.23.1 PROJ/6.3.2 GEOS/3.7.1 |
xcms | 4.0.0 | module load netCDF/4.5.0 Szip/2.1.1 |
scFunctions | 4.0.0 | module load GEOS/3.7.1 GCC/5.4.0-2.26 |
Seurat(4.3.0) | 4.0.0 | module load GEOS/3.7.1 GCC/5.4.0-2.26 libpng/1.6.24 |
Seurat(5.0.1) | 4.2.0 | module load GEOS/3.7.1 GCC/7.2.0-2.29 libpng/1.6.24 glpk/5.0 |
SimBu | 4.0.0 | module load GCC/5.4.0-2.26 |
RNetCDF | 3.6.0 | module load netCDF/4.7.4 |
Nebulosa | 4.0.0 | module load GEOS/3.7.1 GCC/5.4.0-2.26 |
BioEnricher | 4.3.2 | module load GCC/7.2.0-2.29 libpng/1.6.24 |
MEGENA | 4.2.0 | module load GCC/7.2.0-2.29 glpk/5.0 |
devtools | 4.2.0/4.3.2 | module load GCC/9.4.0 |
monocle3 | 4.2.0 | module load GCC/7.2.0-2.29 glpk/5.0 PROJ/6.3.2 GDAL/3.1.0 GEOS/3.7.1 |
DESeq2 | 4.2.0 | module load GCC/5.4.0-2.26 libpng/1.6.24 glpk/5.0 |
GenomicFeatures | 4.2.0 | module load GCC/5.4.0-2.26 libpng/1.6.24 |
其它库缺失可以加载对应的库,见 常用库缺失解决办法
'GLIBC_x.xx' not found
报错解决办法,见 'GLIBC_x.xx' not found
R 源码编译及部分复杂包安装¶
4.2.0¶
devtools¶
$ module load R/4.2.0 GCC/9.4.0 freetype/2.6.5 harfbuzz/1.7.5 fribidi/1.0.13
$ Rscript -e 'install.packages(c("devtools"), repos="http://cran.us.r-project.org")'
scRNA 镜像¶
igraph¶
安装 igraph_2.0.3
时报错,error: ‘isnan’ is already declared in this scope using std::isnan;
,可以有三种解决方案:
方案1
安装低版本的
igraph
,测试安装1.6.0
可行。方案2
使用
GCC 7
,module load GCC/7.2.0-2.29
方案3
更改源码,同时也要加载
GCC 5
,module load GCC/5.4.0-2.26
。下载源码包,解压,找到这2个源码文件src/vendor/cigraph/src/community/infomap/infomap.cc
,src/vendor/cigraph/src/community/walktrap/walktrap.cpp
,将其中的using std::isnan;
给注释掉,然后再打包,再使用该源码包安装R CMD INSTALL igraph_2.0.3.1.tar.gz
。
ggtree¶
ggtree
安装过程中报错 object 'rect_to_poly' not found
,根据作者的说法是 rect_to_poly
在 geom_hilight
中有使用,但这个函数有问题,然后在 ggplot2
中被移除了,导致这个报错。作者给的临时解决办法是根据 ggplot2
中新的实现,在 ggtree
中自己实现 rect_to_poly
这个函数,具体见 copy rect_to_poly, #601 。解决办法作者在这里说得不是很详细,翻源码看了一下,做了一番测试,解决方法如下:
下载 ggtree
源码,这里使用的 ggtree_3.6.2.tar.gz
,解压,将 R/geom_hilight.R
中第 486 行代码注释,然后添加新的 rect_to_poly
实现,如下所示。
# rect_to_poly <- getFromNamespace("rect_to_poly", "ggplot2")
rect_to_poly <- function(xmin, xmax, ymin, ymax) {
data_frame0(
y = c(ymax, ymax, ymin, ymin, ymax),
x = c(xmin, xmax, xmax, xmin, xmin)
)
}
$ tar -czvf ggtree_3.6.2.1.tar.gz ggtree
$ R CMD INSTALL ggtree_3.6.2.1.tar.gz
R 4.3.2¶
R 编译安装¶
在交互节点安装
$ wget https://mirror.nju.edu.cn/CRAN/src/base/R-4/R-4.3.2.tar.gz
$ tar xf R-4.3.2.tar.gz
$ cd R-4.3.2
$ module load PCRE/10.00
$ ./configure --enable-R-shlib --with-x --with-cairo --prefix=/DIR/
$ make -j12
$ make install
devtools¶
$ module load R/4.3.2 GCC/9.4.0 freetype/2.6.5 harfbuzz/1.7.5 fribidi/1.0.13 git/2.17.0
$ Rscript -e 'install.packages(c("devtools"), repos="http://cran.us.r-project.org")'
部分错误解决¶
C++17 standard requested but CXX17 is not defined
安装R包的过程中出现报错
C++17 standard requested but CXX17 is not defined
,解决办法为加载高版本GCC,然后设置R相关环境变量。$ module load GCC/7.2.0-2.29 $ mkdir -p ~/.R $ echo 'CXX17 = g++ -std=c++17 -fPIC' >> ~/.R/Makevars
address 0x20, cause 'memory not mapped'
R包安装或运行过程中,出现如下报错可以通过重新安装Rcpp解决*** caught segfault *** address 0x20, cause 'memory not mapped'
$ >remove.packeages('Rcpp') $ >install.packages('Rcpp')
本站总访问量 次