2. Seurat 包安装与简介
这一章我们聊聊 Seurat 本身。很多初学者一上来就急着跑分析,结果卡在安装上半天——嗯,我当年也踩过这个坑。先把环境搭好,后面才顺心。
2.1 Seurat 是什么?
Seurat 是 Satija 实验室开发的 R 包,专门做单细胞 RNA-seq 数据的分析。你可以把它想成一个“细胞级的数据分析工作台”。从原始表达矩阵到降维聚类、差异分析、整合去批次,它都给你配好了工具。
我个人习惯把它拆成三个核心模块:
- 质控与预处理 —— 过滤死细胞、双细胞、低质量细胞
- 降维与聚类 —— PCA、t-SNE、UMAP、聚类分群
- 整合与去批次 —— 我们的课程重点,Canonical Correlation Analysis (CCA) 和互近邻 (MNN) 校正
下面这张图能帮你快速建立知识框架:
表:Seurat 版本与 R 环境要求
| Seurat 版本 | R 版本最低要求 | 主要改进 |
|---|---|---|
| v4.x | R >= 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")
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 的安装常见问题
这里把最常见的坑整理成列表,你遇到类似问题时可以直接对照:
- 报错 "package ‘Seurat’ is not available" —— 多半是 R 版本太老或没连 CRAN 镜像。先
update.packages()再试。 - 编译错误 "ld: library not found for -lgfortran" —— macOS 缺少 gfortran 库。去 https://mac.r-project.org/tools/ 下载安装。
- 加载后某些函数找不到(如 NormalizeData) —— 可能你同时加载了其他包(比如 dplyr)冲突了。用
Seurat::NormalizeData()显式调用,或调整包加载顺序。
library(Seurat) 提示“不存在”。后来发现他装了几百个包,R 重启后加载路径混乱了。解决办法:remove.packages("Seurat"),清除缓存,再重新安装。有时重启 R session 就能解决。
2.6 小结
到这一步,你的 R 环境里应该已经成功装上 Seurat 并跑通了基础测试。你掌握了:
- Seurat 的定位和三大分析模块
- 两种安装方式(CRAN / GitHub 开发版)
- 核心数据结构 SeuratObject
- 创建对象的基本参数和避坑点