linux上只有Rstudio商业版才支持多个版本R切换,这里介绍通过vscode+conda的方式实现多个版本的R共存。
注意:一定要安装miniforge, 而不是清华镜像下载的miniconda,因为我们后续要用conda-forge解决库。
第一步,安装conda-forge作为底层的miniconda
wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh
bash Miniforge3-Linux-x86_64.sh
第二步,编辑~/.condarc
,配置下镜像
channels:
- conda-forge
- nodefaults
channel_priority: strict
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
第三步,新建一个R环境
conda create -n r431 r-base=4.3.1
安装之后,使用conda activate r431
启动, 注意, 无特别说明,后续的操作都在r431这个conda环境中。
第四步,配置R基础的环境
conda install conda-forge::r-languageserver
conda install conda-forge::radian
conda install conda-forge::r-httpgd
conda install conda-forge::r-devtools
conda install conda-forge::jupyter
conda install conda-forge::r-IRkernel
除了上述的R包通过conda安装外,其他后续的R包,我们都尽量在R内部安装,或者尽量安装一些轻量级的,比如说Matrix,不要安装依赖比较多的,比如说Seurat。
进入R环境,配置VSCode所需要的jupyter kernel
IRkernel::installspec(name = 'r431', displayname = 'R 4.3.1')
另外,在这里,我们可以测试下安装Seurat V4。为了提高速度,运行前,先跑如下的代码进行基础配置
options(Ncpus=4L)
Sys.setenv(MAKEFLAGS="-j 4")
options("repos" = c(CRAN="https://mirrors.westlake.edu.cn/CRAN/"))
options(BioC_mirror="https://mirrors.westlake.edu.cn/bioconductor")
我们手动安装下Matrix和MASS的旧版本,这两个的新版本都不支持R 4.3.1,后续安装出错了,所以这里特别注明
一种方法是使用remotes安装
remotes::install_version("MASS", version = "7.3.60")
另一种方法是下载到本地,通过命令行安装,例如Matrix
wget https://mirrors.westlake.edu.cn/CRAN//src/contrib/Archive/Matrix/Matrix_1.6-2.tar.gz
R CMD INSTALL Matrix_1.6-2.tar.gz
参考一种简单可行的V4的Seurat安装方案 【时间会比较久】
先装V5尽量把一些依赖给安装上
install.packages('Seurat') # 中间可能会出错
remove.packages(c("Seurat","SeuratObject"))
# 忽略中间的错误,我们只需要确保一些环境被安装好就行, 比如说Matrix就是一个报错, 因为Seurat V5跟V4
# ** byte-compile and prepare package for lazy loading
# Error in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) :
# namespace ‘Matrix’ 1.6-2 is being loaded, but >= 1.6.4 is required
然后安装V4
install.packages('Seurat', repos = c('https://satijalab.r-universe.dev'))
# 如果这一步,出现了一些依赖不全,那就需要手动安装
# 如果你需要安装scCustomize,为了与V4兼容,需要用1.1.3版本的,
remotes::install_version("scCustomize", version = "1.1.3")
这里要注意,一定要选择None,不能升级!
第五步,使用vscode连接到远程服务器上,之后在服务器上,安装’Jupyter’插件,之后新建一个 demo.ipynb文件,然后就可以在内核选择中,切换到给定的R版本。