2. Seurat 包安装与简介

这一章我们聊聊 Seurat 本身。很多初学者一上来就急着跑分析,结果卡在安装上半天——嗯,我当年也踩过这个坑。先把环境搭好,后面才顺心。

2.1 Seurat 是什么?

Seurat 是 Satija 实验室开发的 R 包,专门做单细胞 RNA-seq 数据的分析。你可以把它想成一个“细胞级的数据分析工作台”。从原始表达矩阵到降维聚类、差异分析、整合去批次,它都给你配好了工具。

我个人习惯把它拆成三个核心模块:

  • 质控与预处理 —— 过滤死细胞、双细胞、低质量细胞
  • 降维与聚类 —— PCA、t-SNE、UMAP、聚类分群
  • 整合与去批次 —— 我们的课程重点,Canonical Correlation Analysis (CCA) 和互近邻 (MNN) 校正

下面这张图能帮你快速建立知识框架:

Seurat 单细胞分析流程(第2章视角) 质控与预处理 降维与聚类 整合与去批次 过滤低质量细胞 检测双细胞(mt/ribo) PCA / Harmony UMAP / t-SNE CCA 找锚点 MNN 校正 ⚠ 注意:本课程重点 整合与去批次模块(红色分支)是核心 但前置的质控不过关,整合结果全是噪音

表:Seurat 版本与 R 环境要求

Seurat 版本R 版本最低要求主要改进
v4.xR >= 4.0支持多模态、整合流程稳定
v5.x (开发版)R >= 4.2内存优化、速度提升、新整合方法

2.2 安装 Seurat

安装前先确认你的 R 版本。我遇到过不少同学用 R 3.6 硬装 Seurat 4,结果各种报错。最简单的办法:运行 R.version 看一眼。

# 查看 R 版本
R.version.string
# 输出示例:"R version 4.2.3 (2023-03-15)"

如果 R 版本 >= 4.0,直接通过 CRAN 安装:

install.packages("Seurat")

但 CRAN 上的 Seurat 更新有延迟。我个人习惯用 GitHub 开发版,因为它包含最新的 bug 修复和整合算法优化。不过开发版需要额外装 devtools:

install.packages("devtools")
devtools::install_github("satijalab/seurat", ref = "develop")
⚠ 警告: 安装过程如果卡在编译 C++ 代码,很可能是系统缺少开发工具。Windows 用户要去安装 Rtools(必须匹配你的 R 版本)。macOS 用户则要确保 Command Line Tools 已安装:
xcode-select --install
我曾经帮一位同学远程排查了半小时,最后发现他 Rtools 路径没配好……所以,这一步别偷懒。

2.3 验证安装与加载

安装完成后,一定要加载测试一下,避免后面分析到一半才发现缺包。

library(Seurat)
# 如果没报错,说明基本安装成功
packageVersion("Seurat")
# 输出示例:[1] ‘4.3.0’
💡 提示: 我建议额外安装两个常用包,它们会出现在本课程的很多代码中:
install.packages("dplyr")
install.packages("ggplot2")
虽然 Seurat 内部已经依赖了部分 tidyverse,但显式加载可以避免命名空间冲突。

2.4 核心数据结构:SeuratObject

Seurat 的数据组织方式很独特。它用一个 S4 对象(SeuratObject)装下所有信息:表达矩阵、元数据、降维坐标、分析结果……全在一个盒子里。

比如,你用 Read10X() 读进来的数据,会变成一个 SeuratObject。里面包含:

  • assays —— 存储原始和标准化表达量(默认是 RNA assay)
  • meta.data —— 细胞级别的注释列(样本来源、批次、细胞周期评分等)
  • reductions —— PCA、UMAP 坐标等

最简单创建一个 SeuratObject 的示例:

# 假设你已经有一个稀疏矩阵 mat(基因×细胞)
pbmc_obj <- CreateSeuratObject(
  counts = mat,
  project = "PBMC_3k",
  min.cells = 3,      # 至少在3个细胞中表达的基因才保留
  min.features = 200  # 每个细胞至少检测到200个基因
)
# 查看对象概况
pbmc_obj

表:CreateSeuratObject 常用参数

参数含义建议值
min.cells基因至少在 n 个细胞中出现3 ~ 5
min.features细胞至少检测到 n 个基因200 ~ 300
project给项目起个名字(存储在 meta.data 中)自定

👉 我的实战建议: 质控阶段的 min.features 不要设得太高。比如某些组织(像脑组织)本身表达基因数就偏低,设 500 会过滤掉很多真实细胞。我一般先设 200,做完 QC 再看分布图调整。

2.5 Seurat 的安装常见问题

这里把最常见的坑整理成列表,你遇到类似问题时可以直接对照:

  1. 报错 "package ‘Seurat’ is not available" —— 多半是 R 版本太老或没连 CRAN 镜像。先 update.packages() 再试。
  2. 编译错误 "ld: library not found for -lgfortran" —— macOS 缺少 gfortran 库。去 https://mac.r-project.org/tools/ 下载安装。
  3. 加载后某些函数找不到(如 NormalizeData) —— 可能你同时加载了其他包(比如 dplyr)冲突了。用 Seurat::NormalizeData() 显式调用,或调整包加载顺序。
⚠ 曾经踩过的坑: 有一次我帮学生排查,他明明装了 Seurat,但 library(Seurat) 提示“不存在”。后来发现他装了几百个包,R 重启后加载路径混乱了。解决办法:remove.packages("Seurat"),清除缓存,再重新安装。有时重启 R session 就能解决。

2.6 小结

到这一步,你的 R 环境里应该已经成功装上 Seurat 并跑通了基础测试。你掌握了:

  • Seurat 的定位和三大分析模块
  • 两种安装方式(CRAN / GitHub 开发版)
  • 核心数据结构 SeuratObject
  • 创建对象的基本参数和避坑点