1. 单细胞 RNA-seq 技术原理与实验流程简介

刚入行时我一听到「单细胞测序」就头皮发麻——觉得又要搞什么玄妙的新技术。后来真正上手跑了一个项目才发现,说白了它就是解决一个非常朴素的问题:过去我们测的是组织块里的平均表达量,就像把一锅汤搅匀了尝一口,你知道咸淡,但不知道里面到底有肉块、菜叶还是姜末。单细胞 RNA-seq 就是让你能尝出锅里每一粒东西的味道。

为什么这个能力重要?肿瘤微环境里只有少数细胞是癌细胞,免疫细胞到底在干嘛,成纤维细胞又分泌了什么信号——这些信息藏在细胞异质性里。不做单细胞,你永远只能看见平均。我个人习惯,在正式跑流程之前,先用半小时把下面这张图在脑子里过一遍,后面每一步都不会迷路。

单细胞 RNA-seq 实验与数据处理流程 组织样本 单细胞悬液 细胞捕获/标记 反转录 + cDNA 扩增 文库构建 & 测序 数据 → 表达矩阵 注意:每个细胞获得唯一 分子条形码(UMI) 用于纠正 PCR 扩增偏差 主流平台 10x Genomics 微流控 Smart-seq2 全转录本

1.1 核心原理:为什么我们能看到每个细胞的基因表达?

传统的 bulk RNA-seq 把几十万细胞混在一起提取 RNA,测出来的信号是群体平均值。单细胞要在每个细胞上贴一个「条形码」(barcode),测序后靠这个条形码把 reads 分回各自的细胞。你想想看,一个细胞里 mRNA 总量只有皮克级,直接建库根本不够。所以几乎所有平台都要在逆转录之后做 PCR 扩增。但 PCR 会引入偏差——有的 cDNA 分子被多扩了几轮,有的少扩了几轮。为了解决这个问题,技术里面又加上了 UMI(Unique Molecular Identifier),每个原始 mRNA 分子携带一个随机序列,扩增后再根据 UMI 去重,得到真正的分子计数。

关键洞察:单细胞 RNA-seq 的核心并不在于「测得更深」,而在于用条形码+UMI 解决「从少量 RNA 中准确还原每个细胞的转录组」这个工程问题。

1.2 主流技术平台一瞥

我刚开始接触单细胞时,市面上流行的平台有十几种。现在基本形成了两极格局:高通量液滴法和低通量全转录本法。下表是我个人常用的分类方式:

平台 通量(细胞/批) 转录本覆盖 典型应用场景
10x Genomics Chromium 500 ~ 80,000 3' 端 (或 5' 端) 细胞图谱、细胞分群、稀有细胞鉴定
Drop-seq / inDrop 500 ~ 50,000 3' 端 开源方案,适合预算有限的团队
Smart-seq2 96 ~ 384 全长 剪接异构体分析、单细胞基因组变异
BD Rhapsody 500 ~ 60,000 3' 端 商业替代方案,支持蛋白与基因共检测

我在项目中遇到过几次平台选型错误导致的惨案。一次想用 Smart-seq2 跑 2000 个细胞,结果连续加班三周才拿到数据,因为每个细胞需要单独分选和建库。所以我的建议很简单:需要多少细胞量级,就选能匹配的通量。如果你要发现稀有亚群(比如循环肿瘤细胞,频率可能低于万分之一),通量至少得 1 万起步。

1.3 实验流程:从组织到计数矩阵

不管你用哪个平台,大步骤是类似的。每个步骤都有坑,我一个个掰开讲。

  1. 组织解离 — 把固体组织变成单细胞悬液。这一步特别考验手艺。切太碎细胞会死,酶解太久表面蛋白会被降解。
  2. 细胞计数与活力评估 — 死活比低于 80% 我一般直接放弃,因为死细胞会释放 RNA,造成背景噪音。
  3. 细胞捕获与条形码标记 — 10x 用微流控芯片把单个细胞、凝胶微珠、油滴混在一起形成 GEMs。每个微珠上带有一批条形码和 UMI。
  4. 逆转录与 cDNA 扩增 — 在 GEMs 内部完成,cDNA 带上条形码,然后破油回收。
  5. 文库构建与测序 — 加上 P5/P7 接头和 index,上机测序。通常要求每细胞至少 20,000 ~ 50,000 reads。
  6. 数据处理与表达矩阵生成 — 使用 Cell Ranger 或 STARsolo 进行比对、条形码校正、UMI 去重,最终输出一个基因×细胞计数矩阵。

我的经验:解离步骤即使严格按照 protocol 操作,也会丢失 20-40% 的细胞。如果后续分析发现某类细胞数量异常少,先怀疑解离偏好,而不是生物差异。我曾经有一个脑组织样本,小胶质细胞只剩下正常占比的十分之一,后来发现是酶解时间过长导致小胶质细胞优先死亡。

1.4 实验质量控制的关键指标

拿到计数矩阵之前,你其实可以从实验中间步骤收集一些信号。我个人会在下面几个点上设止损线:

  • 细胞捕获效率 — 10x 的官方预期是每 1000 个上样细胞捕获大约 650 个左右。如果低于 50%,检查芯片或微珠。
  • 每个细胞的 reads 数 — 太少的话很多基因检测不到,太多浪费钱。建议先跑一个调试样本,用 Cell Ranger count --expect-cells=5000 参数估算。
  • UMI 饱和曲线 — 测序深度继续增加但新 UMI 不再增加,说明数据已经饱和,再测也是浪费。
  • 线粒体比例 — 一般阈值设在 20%。如果超过 30%,细胞很可能正在凋亡。

这些指标在后续章节的质控模块中我们会用 `Seurat` 和 `Scrublet` 具体计算,但提前了解能让你在实验失败时快速归因。

1.5 最终产物:一个稀疏的计数矩阵

所有步骤结束后,你手里会有一个类似下面这样的矩阵:

gene       cell_001  cell_002  cell_003  cell_004
MALAT1     125       0         0         37
XIST       0         14        0         0
GAPDH      89        102       56        78
ACTB       200       143       0         1
...

行是基因(约 2 万),列是细胞(几千到几万),值是 UMI 计数。绝大对数位置是 0——这就是稀疏性。我刚开始处理时以为这是数据质量问题,后来才明白稀疏是单细胞数据的天然属性,因为每个细胞只表达 2000-5000 个基因。你想想看,如果到处都不是 0,反而该警惕是不是死细胞或 doublet。

注意:这个矩阵绝对不能直接用原始 count 做标准化。基因长度、测序深度、细胞大小都会引入技术偏差。预处理的第一步就是对这些做校正——这些是后面几章的重点。