1. 课程介绍与 R/RStudio 环境配置

大家好,我是你们这门课的讲师。做单细胞数据分析这些年,我踩过不少坑,也攒了一些经验。这门课我想跟你聊的,不是那些花哨的技巧,而是最基础也最关键的一环:用 Seurat 做整合质控。

说白了,如果你拿到一套单细胞数据,第一步处理不好,后面跑再好的算法也是白搭。我刚开始做 scRNA-seq 分析时,总把质控当成走流程,结果有一次模型跑出来一堆假阳性,回头看才发现是过滤阈值设得离谱。从那以后,我再也不敢马虎了。

这门课你会学到什么

整门课会带你完整走一遍 Seurat 整合分析的质控流程。我会把每一步为什么这么做、实际数据长什么样、遇到异常怎么处理,都掰开讲清楚。

  • 数据读入 – 从 10X 标准输出到 Seurat 对象
  • 质控指标 – 线粒体、核糖体、基因数、UMI 数那些事
  • 过滤标准 – 基于文献还是基于数据分布?我建议你选后者
  • 批次效应 – 什么时候该整合,什么时候不该整合
  • 整合方法 – Seurat CCA、RPCA、Harmony 的适用场景
  • 质控验证 – 怎么判断整合结果靠谱
  • 案例实战 – 我会带你跑 3 个真实数据集

嗯,这里有个重点:这门课不是 R 语言入门教程。你需要有基本的 R 基础,知道数据框、因子、列表怎么用。如果你还不太熟,我建议你先花半天补一补,不然跟起来会有点吃力。

为什么我要把质控放在第一章?

你想想看,单细胞分析链条上最容易被忽视的就是质控。很多人上来就找差异基因、画 UMAP,结果图很漂亮但结论全是错的。我见过一个项目,研究人员用了默认参数跑 Seurat,结果线粒体比例普遍超过 40%,最后发表后被人质疑数据质量,不得不撤稿重做。

所以我把环境配置和课程介绍放在最前面,先把工具和环境准备好,后面几章咱们就一头扎进质控实操里。

你需要准备什么

项目说明
操作系统Windows / macOS / Linux 均可,我推荐用 Linux 或 macOS
R 版本≥ 4.2.0,我目前用的是 R 4.3.2
RStudio建议用最新版(2024.09+),旧版切换 R 版本不方便
内存至少 16GB,跑整合步骤建议 32GB
硬盘准备 50GB 以上空间,单细胞数据解压后很占地方
警告:千万不要在 8GB 内存的机器上跑 Seurat 整合,否则 R session 会崩。我早年用笔记本跑,加载 3 个样本后直接挂了,白白浪费半天时间。

安装 R 与 RStudio

这一步很简单,但经常有人搞混。记住安装顺序:先装 R,再装 RStudio。RStudio 只是一个 IDE,依赖底层 R 引擎。

安装 R 的官方地址:https://cran.r-project.org/
选择对应操作系统的最新版本下载即可。

安装 RStudio 的官方地址:https://posit.co/download/rstudio-desktop/
下载免费的开源桌面版,别买什么 Professional 版,咱们用不到。

安装完成后,打开 RStudio,在控制台检验一下:

# 查看 R 版本
R.version.string

# 查看 R 安装路径
R.home()

输出版本号和你刚刚安装的一致,就对了。

配置 R 包管理器(推荐 renv)

在我多年的项目经验里,最头疼的事就是 R 包版本冲突。不同项目依赖不同版本的 Seurat、dplyr、Matrix,一出问题整个分析环境就乱了。所以我强烈推荐你用 renv 管理环境。

安装 renv:

install.packages("renv")

然后在你的项目目录初始化:

# 在 RStudio 中打开项目后执行
renv::init()

这样会把当前 R 包的快照都锁在一个 renv.lock 文件里。换台电脑,只需要 renv::restore() 就能还原一模一样的环境。

技巧:我习惯把每个课程的章节单独建一个 RStudio Project,每个项目都用 renv。这样第 1 章装的 Seurat 5.0.0,第 10 章升级到 5.1.0 也不会影响前面的分析脚本。

安装 Seurat 及其依赖

Seurat 是这门课的核心包。安装前先更新下 CRAN 源,避免包依赖解析失败。

# 设置镜像(国内推荐 mirrors.tuna.tsinghua.edu.cn)
options(repos = c(CRAN = "https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))

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

安装过程会编译一些 C/C++ 源码,需要一点时间。如果你在 Windows 上遇到编译错误,通常是缺少 Rtools。去 https://cran.r-project.org/bin/windows/Rtools/ 下载对应版本安装即可。

安装完成后,载入并检查版本:

library(Seurat)
packageVersion("Seurat")

应该输出类似 [1] '5.1.0' 的版本号。

还需要安装哪些包?

整门课我们会用到这些附加包,建议你现在就装上,省得后面缺什么补什么:

# 数据处理
install.packages(c("dplyr", "tidyr", "ggplot2", "patchwork"))

# 单细胞常用工具
install.packages("harmony")
install.packages("scuttle")
install.packages("scran")

# 如果做双细胞检测
if (!require("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install("DoubletFinder")

# 可视化增强
install.packages("ggraph")
install.packages("ggrepel")

全部装完大概需要 10 分钟,取决于你的网速。如果不通过 BiocManager 装 DoubletFinder,也可以从 GitHub 安装,但我建议用 Bioc 版本,更稳定。

验证环境搭建成功

写一个小脚本来测试 Seurat 的基本功能是否正常:

library(Seurat)
library(dplyr)

# 创建一个测试 Seurat 对象
test_data <- matrix(rpois(1000, lambda = 1), nrow = 100, ncol = 10)
rownames(test_data) <- paste0("Gene", 1:100)
colnames(test_data) <- paste0("Cell", 1:10)

test_obj <- CreateSeuratObject(counts = test_data, project = "test")
test_obj <- NormalizeData(test_obj)
test_obj <- FindVariableFeatures(test_obj)

print(test_obj)

如果能正常输出 Seurat 对象信息,没有任何报错,说明你的环境已经准备好了。

核心逻辑图:下面这张图概括了咱们第一章覆盖的知识体系。熟悉它,你就知道后续章节的顺序。

第 1 章知识体系 课程介绍 目标 & 内容概览 R & RStudio 安装 版本选择 & 安装顺序 环境管理 renv 初始化 & 快照 安装 Seurat 依赖 & 测试 安装后必做 ① 验证 R 版本 ② 初始化 renv ③ 安装 Seurat + 依赖 ④ 运行测试脚本 踩坑记录:一定要先装 R 再装 RStudio,否则 RStudio 找不到 R 引擎 环境检查清单 □ R ≥ 4.2.0 □ RStudio 最新版 □ renv 已初始化 □ Seurat 已安装 □ 测试脚本通过 □ 附加包齐全

常见问题与避坑

Q:安装 Seurat 时提示「package ‘Seurat’ is not available...」
A:检查你的 CRAN 镜像是否包含 Seurat。Seurat 现在已经上了 CRAN,但如果你的 R 版本太老(低于 4.1),建议先升级 R。

Q:RStudio 控制台中文显示乱码
A:在 RStudio 菜单栏 Tools → Global Options → Code → Saving,将文本编码改为 UTF-8。我吃过这个亏,分析结果里的基因名全是乱码,找了半天才反应过来是编码问题。

Q:renv::restore() 卡住不动
A:可能是 GitHub 包无法下载。可以先去 renv.lock 里去掉那些 GitHub 来源的依赖,或者手动安装后运行 renv::snapshot() 重新锁定。

重要提醒:不要直接在 R 自带 GUI 里跑单细胞分析。RStudio 的脚本管理、项目环境、Git 集成都会让你的工作流高效十倍。我见过有人用纯 R 控制台干一个月,脚本全是无注释的乱码,最后他自己都看不懂了。

准备数据:下载示例数据集

虽然本章不跑分析,但为了后面章节能顺利接上,我建议你现在就把示例数据下载好。这门课我们会用 3 个 10X 样本的原始 H5 文件,约 1.2GB。

# 下载命令(在终端或 R 中均可执行)
# 示例数据来自 PBMC(外周血单个核细胞)
# 访问链接:https://cf.10xgenomics.com/samples/cell-exp/3.0.0/pbmc_10k_v3/
# 将下面几个文件保存到你的 data/ 文件夹

# 在 R 中下载(需要联网)
download.file(
  url = "https://cf.10xgenomics.com/samples/cell-exp/3.0.0/pbmc_10k_v3/pbmc_10k_v3_filtered_feature_bc_matrix.h5",
  destfile = "data/pbmc_10k_v3_filtered.h5"
)

如果网速慢,也可以直接用 Seurat 内置的 pbmc_small 数据集做练习:

data("pbmc_small")
pbmc_small

这个内置数据集只有 80 个细胞、230 个基因,不适合做真正整合,但可以用来熟悉 Seurat 基础操作。

准备好你的第一个 R 脚本

我鼓励你从现在开始,每个章节都创建一个独立的 R 脚本文件,并用 # --- 章节标题 --- 分割。比如:

# ========================
# Chapter 1: 环境设置
# ========================

library(Seurat)
library(renv)
renv::activate()

# 后面你只需要更新这里
data_dir <- "data/"

保持脚本整洁,是单细胞分析项目里最容易忽视但最有价值的习惯。我的经验是:写好一个可复现的脚本,比你跑通一百次模型更有意义。

好了,第一章先到这里。环境搭好、包装好、数据下载好,你后面就可以跟着我一步一步跑了。记住,有问题随时回看这章的注意事项,或者翻翻 renv 文档。咱们第二章见。