空间转录组技术原理:Visium 芯片结构、探针捕获机制、测序流程与数据生成
各位好,我是老周。今天咱们聊聊 Visium 的核心技术原理。很多人觉得空间转录组就是个黑盒子,组织放上去,数据就出来了。其实不是,背后的原理很简单,但每个细节都决定成败。我个人习惯在讲流程前,先把物理原理搞清楚——你只有知道芯片长什么样、探针怎么抓 mRNA,才能理解为什么某个数据长得奇怪。
Visium 芯片到底长什么样?
先看芯片结构。Visium 芯片不是普通的玻璃片,它是一个经过精密设计的捕获平台。说白了,它是一块 6.5mm × 6.5mm 的方形区域,上面有 4 个捕获区域(capture area)。每个捕获区域约 5mm × 5mm,中心放组织切片。
每个捕获区域内部,密密麻麻排布着 5000 个点样(spots)。每个点样直径 55 微米,中心间距 100 微米。你想想看,这相当于在玻片上做了 5000 个微型实验。每个点样都有一个唯一的空间条形码(spatial barcode),用来标记它在芯片上的位置。
关键数字: 1 个芯片 ≈ 4 个捕获区域 × 5000 spots = 20000 个空间捕获位点。每个 spot 理论上能抓上万条 mRNA 分子。
我记得第一次拿到 Visium 芯片数据时,看到 spot 之间的距离,第一反应是:这分辨率够吗?后来发现,55 微米直径的 spot,能覆盖大约 3-5 个细胞(取决于组织类型)。当然,纯上皮组织可能抓到 10 个以上。嗯,这里要注意分辨率限制——它是多细胞水平,不是单细胞分辨率。
| 参数 | 数值 | 说明 |
|---|---|---|
| 捕获区域尺寸 | 5mm × 5mm | 单次实验组织覆盖范围 |
| spots 数量/区域 | ~5000 | 空间捕获位点总数 |
| spot 直径 | 55 μm | 单个捕获点圆面积 |
| spot 间距 | 100 μm | 中心到中心的距离 |
| 每芯片区域数 | 4 | 可同时处理 4 张切片 |
探针捕获机制——空间条形码怎么工作的?
每个 spot 表面,附着着数百万条捕获探针。探针的结构非常精妙,一共分三段:
- 空间条形码 (Spatial Barcode): 长度为 16bp。同一个 spot 的所有探针,都共享同一个条形码序列。不同 spot 的条形码互不相同。这就是“空间身份 ID”。
- 唯一分子标识符 (UMI): 长度为 10-12bp。每个探针都有不同的 UMI 序列。UMI 用来去除 PCR 重复,做精确定量。
- poly-T 序列: 长度 30bp 的 T 重复序列。它的作用——捕获 mRNA 的 poly-A 尾巴。
为什么会设计成三段?我个人理解,这解决了两个核心问题:一来区分空间位置,二来区分分子来源。空间条形码告诉你是哪个 spot,UMI 告诉你是哪个原始分子。
技术要点: poly-T 捕获偏倚是天然存在的。如果你的基因表达量高、poly-A 尾巴长,更容易被捕获。反之,低表达基因或 poly-A 短的基因,捕获效率会下降。这是建库中的固有误差。
捕获机制其实很简单:组织切片贴在芯片上,组织中的 mRNA 被释放,通过 poly-A 尾巴与探针上的 poly-T 杂交。然后逆转录,形成 cDNA。空间条形码和 UMI 一并被转录到 cDNA 上。这样,每一条 cDNA 都带上了它的空间身份和分子身份。
避坑指南: 我曾经遇到过一个问题:组织切片贴片时,如果组织与芯片之间出现气泡或贴片不平整,会导致局部区域没有数据。那不是技术问题,是操作问题。贴片前,仔细检查芯片表面的液滴,排除气泡。
测序流程:从组织切片到 fastq 文件
测序流程,说白了就是把空间位置信息加进来,然后和常规转录组测序混在一起。
- 组织处理与切片: 冷冻或 FFPE 组织,切成 10 μm 厚切片,精确贴到 Visium 芯片上。
- 固定与染色: 组织切片被固定,进行组织学染色(H&E 或免疫荧光)。这一步在普通光镜下观察组织形态。
- 透化: 加入透化试剂,让组织释放 mRNA。透化时间需要预先优化——透化太短,mRNA 出不来;透化太长,mRNA 扩散到相邻 spot。
- 逆转录与 cDNA 合成: 释放的 mRNA 与 spot 上的 poly-T 探针杂交,原位逆转录。空间条形码和 UMI 被复制到 cDNA 上。
- 文库构建: 切下 cDNA,加上测序接头和样本索引。这一步与普通 RNA-seq 文库类似。
- 测序: 使用 Illumina 平台进行双端测序。读长配置通常为:Read 1 28bp(读取空间条形码 + UMI),Read 2 90bp(读取 cDNA 序列)。
为什么会设计两种不同的读数呢?Read 1 读的是身份信息——这个片段来自哪个 spot、是哪个分子。Read 2 读的是内容信息——这个片段到底是对应哪个基因。两者配对后,才能知道某个基因在某个空间位置上有多少表达量。
我记得有一批数据,Read 1 的质量值总是不达标。排查后发现是测序引物配错了。嗯,小失误,但整个批次 rerun 了。所以,空间转录组的文库构建环节,参数检查一定要做两遍。
数据生成:从 fastq 到表达矩阵
测序完成后,你会拿到一对 fastq 文件(双端)。第一条约 28bp,包含空间条形码和 UMI;第二条约 90bp,包含 cDNA 序列。
数据处理的流程大致如下:
1. 读取 fastq 文件
2. 解析 Read 1 的 16bp 空间条形码
3. 解析 Read 1 的 12bp UMI
4. 将 Read 2 比对到参考基因组
5. 生成基因表达矩阵 (gene × spot)
6. 将空间条形码与芯片坐标对应
7. 输出空间表达数据 (包括组织学图像坐标)
空间条形码的解析会查表(barcode whitelist)——只有出现在芯片上的条形码才有效。我在项目中遇到过,如果条形码匹配率低于 60%,通常是文库污染或测序错误。这时候需要回溯质检步骤。
最终生成的数据结构包含三个核心文件:
- expression matrix (h5 或 mtx): 基因 × spot 的表达计数
- spot 坐标文件: 每个 spot 在捕获区域中的 X/Y 坐标
- 组织学图像: H&E 或免疫荧光图,用于与空间坐标对齐
数据量参考: 一个捕获区域的测序深度通常为 100-200M 条 reads。经过 UMI 去重后,每个 spot 平均能检测到 1000-2000 个基因,总 UMI 计数中位数约为 2000-5000。
你可以把这些数据想象成一张地图:X/Y 轴是空间坐标,每个 spot 是一个有名字的小区(基因表达谱)。下一步的聚类分析,就是在这些小区之间寻找相似的邻居。
讲到这里,你应该对 Visium 的工作流程有了全貌。芯片上有空间条形码,探针通过 poly-T 抓取 mRNA,逆转录后建库测序,最终解析出每个 spot 的基因表达谱。我个人的经验是,理解了这个流程,后续的分析就不会凭空想象,每一步都有明确的物理意义。