1. Seurat 简介与安装
各位同学好,欢迎来到《Seurat 分辨率调优实战案例》的第一章。
我一直觉得,做单细胞数据分析就像当侦探——线索都在数据里,但找不找得到关键信息,很大程度取决于你手上的工具用得顺不顺手。Seurat 就是目前单细胞领域最趁手的那把瑞士军刀。今天咱们先把刀磨好,聊聊 Seurat 是什么、怎么装、装之前要准备什么。
1.1 Seurat 是什么
简单说,Seurat 是 R 语言生态里一个专门处理单细胞 RNA-seq 数据的工具包。它把原始表达矩阵转成我们可以理解的可视化图谱,帮你发现细胞亚群、标记基因、分化轨迹。
它为什么流行?我个人认为有两点特别关键:一是内置了标准化的分析管线,从质控、标准化、降维、聚类到差异分析一站式搞定;二是分辨率调优这个功能设计得非常灵活,你可以根据生物学问题随意滑动参数,找到最合适的分群粒度。
下面这张图能帮你快速理解 Seurat 在心智模型中的位置:
嗯,这张图你应该已经看出来了:整个流程里,分辨率调优是决定分群结果“靠谱不靠谱”的关键环节。我们今天先不管细节,先把工具装好。
1.2 安装方法
Seurat 目前主流的安装方式有三种。我建议你根据自己实际情况选一种就行,不用全试。
| 安装方式 | 命令 | 适用场景 | 注意事项 |
|---|---|---|---|
| CRAN 正式版 | install.packages("Seurat") |
大多数用户,追求稳定 | 版本更新较慢,但经过完整测试 |
| GitHub 开发版 | remotes::install_github("satijalab/seurat") |
需要最新功能、修复 bug | 可能不稳定,依赖工具链齐全 |
| Conda 环境 | conda install -c conda-forge r-seurat |
多环境管理、避免系统 R 冲突 | 需要安装 conda,依赖包可能旧 |
具体步骤(以 CRAN 为例)
打开 R 或 RStudio,运行以下命令:
# 首先确保你的 R 版本 ≥ 4.0
# 安装依赖(RcppParallel 需要编译工具链)
install.packages("Seurat")
# 验证是否安装成功
library(Seurat)
packageVersion("Seurat")
如果你在国内网络环境,推荐先设置 CRAN 镜像:
# 以清华镜像为例
options(repos = c(CRAN = "https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
install.packages("Seurat")
安装过程会下载一堆依赖包(ggplot2、Matrix、Rcpp 等),耐心等就好。有时候会卡在 RcppParallel 的编译上——常见的坑是系统缺少编译工具。
1.3 系统要求与避坑指南
Seurat 对硬件和软件环境有硬性要求。我把自己踩过的坑列出来,你装之前看一遍能省很多时间。
软件环境
- R 版本: ≥ 4.0。Seurat v5 已全面支持最新 R 4.x 系列。低于 3.6 的老版本很可能装不上。
- 操作系统: Windows、macOS、Linux 均可。但 Windows 用户需要安装 Rtools(≥4.0),否则无法编译 C++ 代码。
- CUDA / GPU: Seurat 本身不强制 GPU,但如果你要用 UMAP 加速、或处理百万级细胞,可以考虑安装 uwot 的 GPU 后端。不过本课程主要基于 CPU 足以调通所有案例。
硬件建议
| 场景 | 最低 RAM | 推荐 RAM | 说明 |
|---|---|---|---|
| 小样本(< 5000 cells) | 4 GB | 8 GB | 普通笔记本即可 |
| 中等样本(1万~5万 cells) | 8 GB | 16 GB | 建议用台式机或工作站 |
| 大样本(> 10万 cells) | 16 GB | 32 GB+ | 可能需要降采样或使用 SeuratDisk |
依赖包冲突
Seurat 依赖大量底层包(Matrix、Rcpp、RcppEigen 等)。如果你在同一个 R 环境里装了其他单细胞工具(如 scran、Monocle),可能出现版本冲突。症状通常是加载包时报错:
Error: package or namespace load failed for 'Seurat':
object 'SomeFunction' is not exported by 'namespace:SomePackage'
解决办法:创建一个独立的环境,比如用 renv 或 conda 隔离。
# 创建独立 R 环境(以 renv 为例)
install.packages("renv")
renv::init()
renv::install("Seurat")
sessionInfo() 查看所有附加包的版本。把这一行粘贴到项目笔记里,以后复现问题时能省一半排查时间。
1.4 安装后的快速验证
装完别急着关 RStudio。跑一个最简单的例子试试手:
library(Seurat)
# 使用内置的 pbmc_small 数据集
data("pbmc_small")
pbmc_small
# 查看基本结构
head(pbmc_small@meta.data)
# 做个最基本的标准流程
pbmc_small <- NormalizeData(pbmc_small)
pbmc_small <- FindVariableFeatures(pbmc_small)
pbmc_small <- ScaleData(pbmc_small)
pbmc_small <- RunPCA(pbmc_small)
pbmc_small <- FindNeighbors(pbmc_small, dims = 1:10)
pbmc_small <- FindClusters(pbmc_small, resolution = 0.5)
pbmc_small <- RunUMAP(pbmc_small, dims = 1:10)
DimPlot(pbmc_small, label = TRUE)
如果看到一张带有几个簇的 UMAP 散点图,恭喜你——环境完全就绪。如果出现报错,返回到上面的安装步骤检查,或者直接网上搜报错信息,这类坑基本都是依赖包或者系统工具链的问题。