2. 单细胞转录组测序技术概述
好,咱们直接切入正题。做拟时序分析,你手里得有数据吧?数据怎么来的?说白了,大部分单细胞转录组数据都是靠 10x Genomics 平台跑出来的。我刚开始接触单细胞时,心里也有个疑问:这玩意儿到底是怎么把一个一个细胞“分开”测序的?
这一章,我就把这背后的逻辑给你捋清楚。搞懂了数据源头,后面用 Monocle 做分析,你才知道每个参数在控制什么。
2.1 10x Genomics 的核心原理:微流控与 Barcode
10x 平台最聪明的地方,就是用了 微流控 技术。它能让单个细胞和带有独特标签的凝胶微珠(Gel Bead)一起,被油滴包裹起来,形成一个微小的反应室——我们叫它 GEMs(Gel Bead in Emulsion)。
每个凝胶微珠上,都附着了几百万条相同的寡核苷酸序列。这条序列包含了几个关键部分:
- Illumina P5/P7 序列:用于后续测序的接头。
- 10x Barcode:一个 16bp 的独特序列。同一个微珠上的所有序列,Barcode 都一样。这就是你区分不同细胞的“身份证”。
- UMI(Unique Molecular Identifier):一段 10-12bp 的随机序列,用来标记原始 mRNA 分子。同一个基因的转录本,如果 UMI 不一样,就意味着它们是不同的原始分子。
- Poly-dT 序列:用来捕获带有 poly-A 尾的 mRNA。
嗯,这里要特别留意:Barcode 是用来区分细胞的,UMI 是用来区分分子的。这两个概念一旦混淆,你的分析结果就会出大问题。我在一次项目中,发现一个样本的细胞数异常高,后来排查日志才发现,是 Barcode 和 UMI 的读取顺序在配置文件中写反了。那个坑,我踩过。
2.2 原始数据格式:从 BCL 到 FASTQ
测序仪出来的原始数据,是 BCL(Base Call)格式的。你拿到手肯定不是这个,因为下游软件没法直接读它。需要用 cellranger mkfastq 这个命令,把它转换成通用的 FASTQ 格式。
一次标准的 10x 3' 单细胞测序,会产生两个主要的 FASTQ 文件(R1 和 R2):
- R1:包含 16bp 的 Barcode 和 10bp 的 UMI。
- R2:包含 转录本的 cDNA 序列(实际的基因序列)。
你们在公共数据库(比如 GEO)下载数据时,看到的文件大概长这样:
Sample_S1_L001_R1_001.fastq.gz
Sample_S1_L001_R2_001.fastq.gz
_R1_ 就是带细胞身份证的文件,_R2_ 是基因序列。千万别搞混。我见过有人把 R1 和 R2 当成两个生物学重复来分析,结果整了半个月发现数据对不上。那个表情,相当精彩。
2.3 表达矩阵的构建:cellranger count
有了 FASTQ,接下来就要用 10x 官方的核心工具——cellranger count——来生成表达矩阵。这个命令会执行三个主要步骤:
- 比对(Alignment):把 R2 中的 cDNA 序列比对到参考基因组上。
- Barcode 校正与 UMI 去重:校正错误的 Barcode,并去除因 PCR 扩增产生的重复 UMI。
- 定量:统计每个细胞(Barcode)中,每个基因被检测到的 UMI 数量。
最终输出的三个核心文件,都在 outs/ 目录下:
| 文件名 | 格式 | 内容说明 |
|---|---|---|
| filtered_feature_bc_matrix.h5 | HDF5 | 过滤后的细胞-基因表达矩阵,二进制格式,加载快。 |
| filtered_feature_bc_matrix/ | MTX + CSV | 文本格式的过滤矩阵,包含三个文件:barcodes.tsv.gz, features.tsv.gz, matrix.mtx.gz。 |
| metrics_summary.csv | CSV | 分析报告,包含测序饱和度、细胞数、基因检出率等关键质控指标。 |
我个人习惯,在正式做 Monocle 分析前,一定会先看一眼 metrics_summary.csv 文件。如果测序饱和度低于 50%,或者细胞数跟预期差太多,我会直接回到这一步重新检查参数。
你看,整个流程听起来复杂,其实核心就是三个词:Barcode(给细胞编号)、UMI(给分子编号)、比对定量(算账)。搞懂这三步,你手里的表达矩阵就不是一个黑盒了。
为了让你理解得更直观,我画了一张流程图,帮你把今天讲的内容串起来。
嗯,这张图基本把上午我们聊的流程都概括了。从细胞悬液到最终的表达矩阵,每一步都有它存在的意义。很多新手觉得单细胞分析就是跑个软件,但我还是那句话:理解数据怎么来的,比会跑命令重要得多。