4、安装 Seurat 包:从 CRAN 与 GitHub 两种途径

安装 Seurat,说白了就两条路:CRAN 或者 GitHub。你可能觉得这有什么好说的,直接 install.packages("Seurat") 不就完了?嗯,我刚开始也这么想,直到有一次项目急着用 Seurat 5 的新功能,CRAN 上还是老版本……那叫一个抓狂。所以两条路都得掌握,关键时候能救命。

4.1 先看看你该怎么选

我把两条路的差异整理了一张表,方便你对照着看:

对比维度CRAN 安装GitHub 安装
版本稳定性经过完整测试,很稳可能包含开发中特性,偶尔有小坑
版本新鲜度滞后 1–3 个月发布即用,热乎的
依赖处理自动安装依赖,省心需手动补齐依赖,容易遗漏
适合场景生产分析、重复性研究尝鲜新功能、复现最新论文
卸载重装常规 remove.packages可能需要先清理 lib 目录残留

我个人习惯是:跑正式项目用 CRAN 版,确保结果可重现;探索新方法或复现 GitHub 上的最新教程时才会切到 dev 版。你想想看,如果所有同事都装不同版本,出图对不上就麻烦了。

4.2 从 CRAN 安装——最稳妥的方式

直接打开 R 控制台,跑这一行:

install.packages("Seurat")

它会自动把 Seurat 和它的依赖(dplyr、ggplot2、Matrix 等)都拉下来。如果遇到网络慢的问题,可以换个镜像:

install.packages("Seurat", repos = "https://cloud.r-project.org/")

这里有个容易忽略的点——安装新版 Seurat 可能会要求 R 版本 ≥4.1。我之前在 Ubuntu 18.04 上装过,默认 R 是 3.6,死活报错。解决办法是先升级 R:

sudo apt update
sudo apt install r-base-core=4.2.*

或者直接用 conda 环境隔离,后面章节会细说。

小提示:装完记得验证版本:packageVersion("Seurat")。如果和你预期的不一样,先看是不是 R 包缓存被锁了,重启 R 会话再试。

4.3 从 GitHub 安装——跟上最新步伐

Seurat 团队通常会把开发版放在 GitHub 上,比如 satijalab/seurat。装它需要先有 devtools 包:

install.packages("devtools")
library(devtools)

然后安装:

devtools::install_github("satijalab/seurat")

这条命令会下载源码并编译。如果你用的是 Windows,记得提前装好 Rtools——不然会报“没有编译器”。我踩过这个坑,当时卡了半天才发现是 Rtools 版本没对上。

警告:GitHub 版依赖的包可能也在开发中,比如 SeuratObject、spatstat 等。建议一并从 GitHub 安装:
devtools::install_github("satijalab/seurat-data")
devtools::install_github("mojaveazure/seurat-object")

另外,如果你的网络环境限制 SSH,可以把 git@github.com:... 改成 https://github.com/...,或者设代理:

Sys.setenv(GITHUB_PAT = "你的个人访问令牌")
devtools::install_github("satijalab/seurat")

4.4 版本锁定的关键一步

我曾经为了复现别人论文里的分析,在 GitHub 上翻了半天才找到对应 tag。所以每次装完版本,建议立刻用 renv 或 packrat 把版本锁住:

renv::snapshot()

这样下次恢复环境时,直接 renv::restore() 就能拉到完全一致的包版本。别嫌麻烦,项目越往后,这个操作越值钱。

4.5 两条路径的决策流程

下面这张图帮你快速做决定:

Seurat 安装途径决策流程图 开始安装 Seurat 生产环境? CRAN 安装 稳定、依赖全自动 GitHub 安装 最新功能、手动补依赖 验证包版本 packageVersion 安装 Rtools Windows 必做 renv::snapshot() 锁定版本 📌 决策核心 生产分析→CRAN 尝鲜/复现→GitHub
要点回顾:
  • CRAN 版适合 重复性分析,一句话安装,依赖全自动。
  • GitHub 版适合 尝鲜和复现,但记得手动补依赖、装 Rtools。
  • 不管走哪条路,装完立刻 锁定版本,别留给未来的自己埋坑。