生信R環(huán)境配置究極血淚史

背景

實驗室的服務(wù)器,操作系統(tǒng):Ubuntu 16.04.6 LTS

生信里面很多包是基于R的,所以R不可不品嘗。
根據(jù)我們的管理習(xí)慣,服務(wù)器上預(yù)裝了R和一些基本的包,用戶只需要在自己的目錄下面安裝一些額外要用的包就足夠了。預(yù)裝的R信息如下:

# R path
"/usr/bin/R"
# basic libraries
"/usr/local/lib/R/site-library"
"/usr/lib/R/site-library"
"/usr/lib/R/library"

版本為R version 4.2.0 (2022-04-22) -- "Vigorous Calisthenics"。

第一次嘗試

一切順利的話很簡單,在自己目錄下建立lib文件夾并且加入環(huán)境變量:

# create lib dir
mkdir $HOME/R_lib
# add to libpath (write into ~/.*rc file)
export R_LIBS_USER="$HOME/R_lib:$R_LIBS_USER"

然后就可以快樂的進入R并且安裝相應(yīng)的包了,我安裝了BiocManager,devtools以及單細(xì)胞分析最常用的Seurat。其中安裝BiocManager和devtools的時候會要求更新,我都一律更新了(但是非必要,因為/usr下預(yù)裝的包很多,全部更新需要很久)

install.packages("BiocManager")
# update to R 4.2-compatible version
BiocManager::install(version="3.16")

install.packages("devtools")
install.packages("Seurat")

So long so good. 但是事情在我要用到nichenet的時候發(fā)生了變化。這個包依賴于caret,which做一些統(tǒng)計學(xué)習(xí)任務(wù),是比較基本的包。這個包依賴clock,which大概是一個更基本的包。然而它compile失敗了。

僅使用Conda+R?

第二個方案是使用Conda配置R環(huán)境,詳見Conda搭建R環(huán)境避坑指南. 簡而言之,利用以下命令可以裝好caret

conda create -n R4.2.0 -c conda-forge r-base=4.2.0 r-essentials

但是在這之上安裝devtools的嘗試遇到了慘烈的失敗,直接給我報了三十多個錯ORZ。不靠譜?。?/strong>

縫合怪or奇美拉:丑陋但是有用

最后選擇把這兩個lib縫合到一起。

export R_LIBS_USER="$HOME/miniconda3/envs/R4.2.0/lib/R/library:$R_LIBS_USER"
export R_LIBS_USER="$HOME/R_lib:$R_LIBS_USER"

work了?。。?!

最后必須吐槽一句,R你語法反人類就算了,連安裝都這么反人類,大量需要g++編譯的包,就不能搞個binary release,或者至少學(xué)習(xí)一下pip wheel?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容