1、Seurat 简介与安装

1.1 Seurat 是什么?

Seurat 是单细胞 RNA 测序数据分析的「瑞士军刀」。说白了,它就是一套集成在 R 语言里的工具包,帮你从原始计数矩阵一路处理到漂亮的热图、UMAP 和差异表达基因列表。我个人习惯把 Seurat 拆成三个模块来看:

  • 数据预处理:过滤、标准化、找高变基因
  • 降维与聚类:PCA、UMAP、t-SNE、Louvain 聚类
  • 差异表达与可视化作图:FindMarkers、热图、小提琴图

我最早接触单细胞时用的是 scanpy(Python 那套),但后来发现 Seurat 在社区生态、文档完善度和可视化定制的灵活性上更胜一筹。尤其是它内置的 DoHeatmap 函数,改起来比 matplotlib 舒服多了。

1.2 安装 Seurat,三步走

安装其实不复杂,但有几个坑我踩过,等下会专门说。先看标准流程:

  1. 安装 R(≥ 4.0)和 RStudio(推荐,用命令行也行)
  2. 安装 BiocManager(用来从 Bioconductor 拿依赖包)
  3. 安装 Seurat 本体

打开 R 或 RStudio 的 console,敲下面这些:

if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

# 安装 Seurat 主体
install.packages("Seurat")

等一下,这里有个细节:上面的命令只装 Seurat 核心包。但如果你想用 FindMarkers 的热图功能、或者做空间转录组分析,还需要额外拉一些依赖。我一般直接装完整套件:

# 一次性拉齐所有常用依赖(包括 harmony、slingshot 等)
install.packages("Seurat")
BiocManager::install(c("multtest", "MAST", "DESeq2", "scran", "batchelor"))

为什么装这么多?因为 Seurat 的差异表达测试可选多种方法:wilcox(默认)、MAST、DESeq2、SCDE 等。如果你只装默认,换成 MAST 方法时就会报错。嗯,我最初就吃了这个亏。

一句话总结安装策略: 先装 Seurat 本体,再把 Bioconductor 上那几个常见差异测试包一股脑装好,省得后续补装。

1.3 依赖包配置——一张表说清楚

我个人习惯在项目根目录建一个 setup.R 文件,把所有包引用集中写。下面这张表记录了 Seurat 常用的依赖及其用途:

包名作用来源
Seurat主包:QC、归一化、降维、聚类、差异表达CRAN
SeuratObject数据容器与内存管理(Seurat v5 独立出来)CRAN
ggplot2 / ggridges可视化扩展(小提琴图、山脊图)CRAN
MAST基于混合模型的差异表达方法Bioconductor
DESeq2基于负二项模型的差异表达(适用于 bulk 扩展)Bioconductor
multtest多重检验校正Bioconductor
scran / batchelor替代的归一化与批次校正(Seurat 可选)Bioconductor
hdf5r / rhdf5读取 10X HDF5 格式原始数据CRAN / Bioconductor

如果你只想跑最基础的 Seurat 流程,装 Seurat + MAST + multtest 就够了。但我会建议把 hdf5r 也装上——因为 10X 最新版数据很多是 .h5 格式,没它读不了。

小技巧: 在 R console 里用 packageVersion("Seurat") 检查版本。v5 版的 FindMarkers 参数名略有变化,比如 logfc.threshold 改成了 log2FC?不,v5 其实保留了旧参数,但新增了 layer 参数。建议用 v5 的最新版,向下兼容性做得不错。

1.4 避坑指南——我踩过的三个坑

安装过程其实很少卡住,但如果你碰到下面几种情况,别慌:

  • “package ‘Seurat’ is not available for this version of R” —— 八成是 R 版本太旧。升级到 R 4.2+ 就行。
  • 安装 MAST 时编译报错 —— Windows 用户需要先装 Rtools,macOS 用户可能要装 Xcode Command Line Tools。我曾在 macOS 上卡了半小时,后来发现是 gfortran 没装。
  • SeuratObject 和 Seurat 版本不匹配 —— 如果你手动装了旧版 SeuratObject,新版 Seurat 会报错。解决办法:remove.packages("SeuratObject"),然后重新装 Seurat,它会自动拉正确版本。

我曾经遇到过一个更隐蔽的问题:服务器上 R 用户权限不足,装不了系统库。最后用 install.packages("Seurat", lib = "~/R_libs") 指定个人目录解决。如果你也碰到权限问题,记得设置 .libPaths()。

重要提示: 不要用 install.packages 直接装 Bioconductor 的包,必须走 BiocManager::install,否则可能依赖冲突。

1.5 Seurat 核心生态——一张图看懂

下面这张 SVG 图把 Seurat 在整个单细胞分析流程中的位置和主要模块关系画了出来。你想想看,数据从 10X 下机开始,经过 Seurat 处理,最后产出热图、UMAP 和差异基因列表——其实就是这个流程。

Seurat 生态与核心模块(第1章视角) 输入 10X h5 / mtx / csv Seurat 核心处理 QC → 标准化 → 降维 聚类 → 注释 差异表达 FindMarkers 等 输出可视化 热图 / 小提琴图 / UMAP 虚线:可选路径 本课程重点

1.6 安装后快速验证

装完了别急着退出,跑个最小测试:

library(Seurat)
# 查看版本
packageVersion("Seurat")

# 加载内置示例数据
pbmc_small <- SeuratData::LoadData("pbmc_small")
# 如果上面报错,说明 SeuratData 没装,也可以用下面这个:
data("pbmc_small", package = "SeuratObject")

# 查一下数据结构
pbmc_small

如果没有报错,恭喜你,环境配置完毕。如果 SeuratData 装不上,就改用 data("pbmc_small", package = "SeuratObject")——v5 版本把示例数据挪到了 SeuratObject 包里。我在一个同事的电脑上就遇到过这个问题,他死活找不到 pbmc_small,最后发现是包名敲错了。

省流提示: 我只装了以下必装包就能跑通后面所有案例——Seurat、SeuratObject、MAST、multtest、ggplot2。其他依赖按需补装。