第1章 课程概览:为什么要把scRNA和空间转录组放在一起?
大家好,我是老周。在生物信息这个行当里摸爬滚打了快十年,从早期的bulk RNA-seq一路做到现在的单细胞和空间组学。说实话,每次新技术出来都觉得自己又回到了新手村。但有个感觉越来越强烈——单细胞转录组和空间转录组,就像一个人的两张肖像:一张像证件照,高清但没环境;一张像街拍,有背景但模糊。把它们拼起来,才是完整的画面。
这门课,就是带着大家一起干这件事。不过先别急,咱们得把底子打好。这一章我们先聊聊这两种技术各自能干什么,为什么非要“多模态整合”不可。
1.1 scRNA-seq 技术速览
单细胞 RNA 测序,说白了就是把组织打成单细胞悬液,给每个细胞单独建库测序。你得到的是一个细胞×基因的表达矩阵,每个细胞都能独立分析。
这些年主流平台我基本都折腾过:10x Genomics、Drop-seq、Smart-seq2……它们各有各的脾气。10x 通量大,适合发现稀有细胞类型;Smart-seq2 覆盖全长,适合看可变剪接。我个人习惯用 10x 做初步筛查,然后用 Smart-seq2 去验证感兴趣的亚群。
核心优势: 分辨率高,能区分出同一组织里几十种甚至上百种细胞类型。比如肿瘤微环境里的免疫细胞、基质细胞、肿瘤细胞,scRNA-seq 都能一一扒出来。
1.2 空间转录组技术速览
空间转录组就更有意思了。它能把基因表达信息“钉”回组织切片上原来的位置。目前两大类主流:
- 基于捕获的(如 10x Visium,Slide-seq): 在玻片上有规则排列的 barcoded 捕获点,每个点直径 10–55 μm,捕获细胞释放出的 mRNA。缺点是分辨率受点间距限制,比如 Visium 一个点可能包含 1–10 个细胞。
- 基于成像的(如 MERFISH,seqFISH+): 直接用荧光标记 RNA 分子,显微镜下成像。分辨率能达到单分子级别,但通量小、成本高,目前还做不了全转录组。
我记得第一次用 Visium 数据时特别兴奋——终于能看到基因在哪了!但打开数据一看,每个 spot 是混合信号,根本不知道里面有几个细胞。这时候你才意识到:空间数据缺细胞级精度,scRNA 数据缺空间坐标。嗯,这不就是互补吗?
1.3 多模态整合的意义
为什么非要把它们凑一起?因为单体数据都有“盲区”。我画个表你就明白了:
| 维度 | scRNA-seq | 空间转录组 |
|---|---|---|
| 细胞分辨率 | 单细胞级 ✅ | 多细胞 spot 或单分子 ❌(大部分方法) |
| 空间坐标 | 无 ❌ | 有 ✅ |
| 基因覆盖 | 全转录组 ~20000 genes ✅ | 全转录组(捕获法)或 100–1000 genes(成像法) |
| 通量(细胞数) | 数千~数万 ✅ | 数百~数千个 spot |
| 个体细胞异质性 | 高 ✅ | 低(混合信号) |
| 组织环境信息 | 无 ❌ | 有 ✅ |
你看,scRNA-seq 能告诉你“谁”在说话,但不知道在“哪里”说话;空间转录组能告诉你“哪里”有声音,但说不清是“谁”在说。整合就是把两个缺互补起来。
具体怎么做?大致流程是:用 scRNA-seq 数据先做细胞类型注释,然后把这些注释“映射”到空间转录组数据上,推断每个 spot 的细胞组成、重构空间细胞分布。再往下,你还能分析细胞-细胞相互作用、空间区域(比如肿瘤边界)的基因程序。
我个人的一个经验: 千万别把整合当成最后一步。我见过不少同学先各自跑完 scRNA 和空间的分析,最后才想起来要整合,结果因为降维参数、归一化方法不同,两个数据集根本对不上。正确的做法是:预处理阶段就对齐——用同一个基因集、同一套质控标准,甚至用同一个 reference 做 normalization。
1.4 本章知识体系框架
下面这张图包了这整门课的骨架:从两种模态的数据采集开始,经过预处理、整合映射,最终落到生物学解读。注意那些箭头——每一步都有坑,但也每一步都有方法。
1.5 学习路径与工具准备
这门课我把它分成三大块:
- 单模态基础(第2–4章): scRNA-seq 标准分析流程 + 空间转录组数据读取与可视化。我会手把手带着你跑一遍 Seurat 和 Scanpy。
- 核心整合方法(第5–10章): 从简单的“标签转移”到复杂的“概率模型解卷积”。每种方法我都会提供一个真实数据集案例。
- 实战应用(第11章起): 用整合后的数据做细胞通讯、空间区域差异、肿瘤微环境分析。每章都附有完整代码和可视化。
工具方面,你最好提前装好以下环境(以 Python 为例):
# 创建一个专用环境
conda create -n multi_omics python=3.9
conda activate multi_omics
# 核心库
pip install scanpy scvelo squidpy anndata
pip install tangram-sc cell2location
# R 用户需要 Seurat
install.packages("Seurat")
install.packages("SeuratDisk")
你可能会问:“为什么用两套语言?” 嗯,现实就是这样——scRNA 社区 R 系 (Seurat) 和 Python 系 (Scanpy) 分庭抗礼,空间转录组工具则两边都有。我建议你至少熟悉一种,剩下用 reticulate 或 rpy2 互调就行。
最后总结一下: scRNA 和空间转录组是互补的伙伴,不是对手。整合不是炫技,而是回答生物学问题的手段——肿瘤边界的免疫细胞到底是抑制还是激活?发育过程中某个基因在三维空间的表达梯度是怎么建立的?这些问题单靠一种技术都答不全。这门课就是帮你把这些碎片拼起来。
准备好了吗?我们开干。