写在开头
之前在整理
scCustomize助力轻松优化FeaturePlot
可视化推文的时候,绘制密度图时,因为要用到Nebulosa包
Nebulosa包依赖的ggplot2版本是3.4.4以下的,而R语言版本更新之后,我安装的都是3.5.1的ggplot2
最开始
粗暴的解决方法
就是:
卸载掉高版本的ggplot2,然后从CRAN上将3.4.4的ggplot2下载到本地导入
但是因为seurat等包依赖的是3.5.1的ggplot2,所以在写完推文之后,我又把低版本卸载了。这样就很麻烦,就是两个版本卸载来安装去的!
所以
试试看使用renv创建需要的虚拟环境,去管理低版本的R包
。
安装和初始化 renv
安装和加载renv
install.packages("renv")
library(renv)
初始化 renv 环境
在指定的R 项目的工作目录中初始化 renv,从而为该项目创建一个独立的虚拟环境,记录并锁定项目所需的包及其版本。
renv::init()
-
创建一个 renv 子目录,在该目录中保存包和虚拟环境。
-
在项目目录下创建 renv.lock 文件,用于记录当前项目中使用的包及其版本。
-
配置项目使用一个独立的库(包管理环境),避免使用系统全局的 R 包。
等你确定创建之后,就会拷贝全部的R包到环境中
创建完成的结果
会在当前目录创建一个新的虚拟环境,并且会生成一个 renv.lock 文件来记录当前项目中使用的所有包及其版本。
安装需要版本的R包
很有意思的安装代码,直接在后面@需要的版本hhh,然后确实就可以安装需要版本的ggplot2
renv::install("[email protected]")
但是
因为拷贝R包的时候,将3.5.1版本的ggplot2复制过来了,所以需要先卸载3.5.1的ggplot2,重新创建虚拟环境,然后安装3.4.4的ggplot2
(因为不太熟练不清楚是否可以不复制特定的包,所以就是先卸载掉然后创建好虚拟环境后直接安装3.4.4,后续在正常环境下直接安装ggplot2就是高版本的)
renv::install("[email protected]")
renv 会自动安装并锁定该版本,然后更新 renv.lock 文件以反映该版本的信息。
正常运行密度图
library(Nebulosa)
library(scCustomize)
library(ggplot2)
packageVersion("ggplot2")
Plot_Density_Joint_Only(seurat_object = pbmc,
features = c("CD3D", "CD3E","CD4"),
custom_palette = BlueAndRed())
在小环境中安装好3.4.4版本的ggplot2之后,就可以正常调用Nebulosa去绘制多基因密度图
关于renv
既然已经用到了renv的虚拟环境,那咱们还是需要对其有个基本的了解
已经介绍了安装renv、创建虚拟环境以及安装指定版本的R包,那接下来了解一下别的基本命令
激活项目的虚拟环境
当我们退出或者关闭当前的Rstudio工作目录,重新打开时,如果需要使用虚拟环境,就需要先激活一下
renv::activate()
恢复或同步包环境
如果在团队合作中或在不同设备上工作,并且需要确保你使用的 R 包与项目中锁定的版本一致,可以使用 renv::restore() 来恢复环境。
renv::restore()
这个我还没用过,因为没有换设备hhh,有需要的可以试试
切换包版本
-
通过
renv::remove()
卸载包,然后使用
renv::install()
安装所需版本。
-
查看和管理环境:使用
renv::status()
和
renv::installed()
来查看和管理当前环境中的包。
退出虚拟环境
renv::deactivate()
停用当前的虚拟环境,恢复到全局的 R 包库中。项目中的 renv 环境会被关闭,所有的包操作将会使用全局安装的包,而不再使用项目专用的虚拟环境。