空间转录组技术基础:10x Visium、Slide-seq 等原理归纳

说实话,光靠 H&E 染色看细胞形态,就像只看一个人的背影——你知道他大概多高、胖瘦,但不知道他在想什么。空间转录组技术补的就是这个缺口:它让每个细胞的位置和基因表达对得上号。这一讲咱们就把主流的几种技术掰开揉碎,讲清楚它们的原理和坑。

技术路线总览

目前市面上主流的技术大致分三类:基于原位捕获(10x Visium、Slide-seq)、基于原位杂交/测序(MERFISH、seqFISH+),以及基于激光显微切割(LCM-seq)。咱们做图像对齐最常打交道的是前两类,尤其是 10x Visium——我个人项目中超过一半的数据都来自它。

核心共识:所有空间转录组技术的目标都一样——给每个细胞或每个组织 spot 打上“坐标 + 基因表达”的标签。区别只在于分辨率和通量。

10x Visium 的原理与实战细节

10x Visium 的前身叫 Spatial Transcriptomics,2016 年发在 Science 上。后来被 10x Genomics 收购,商业化了。原理其实不复杂:

  1. 把新鲜冷冻或 FFPE 组织切片(5–10 μm)贴在带捕获探针的玻片上。
  2. 玻片表面有数百万个 捕获点(spots),每个 spot 直径 55 μm,中心间距 100 μm。每个 spot 上固连着带有空间条形码(spatial barcode)的 poly(dT) 探针。
  3. 组织切片透化后,mRNA 释放并被相邻 spot 上的 poly(dT) 捕获。
  4. 反转录后生成带空间标签的 cDNA 文库,最后用 NGS 测序。
参数 10x Visium(标准) 10x Visium HD(新) 备注
Spot 直径 55 μm 2 μm HD 版分辨率接近单细胞
Spot 间距 100 μm 连续六边形填充 HD 无间隙
组织类型 冷冻/FFPE FFPE 优先 冷冻也可用
捕获原理 poly(dT) 捕获 mRNA poly(dT) + 探针 HD 探针设计不同

嗯,这里有个重要的事。10x Visium 的 spot 尺寸是 55 μm,这意味着一个 spot 下面可能覆盖 1–10 个细胞(取决于组织密度)。如果你以为这个技术能做到单细胞分辨率,那就错了。我曾经有个学生拿 Visium 数据做单细胞分析,结果硬是跑出十几个假细胞类型……避坑指南:不要把 Visium 的 spot 当作单个细胞,它本质是“多细胞混合表达谱”。

透化时间——最关键的一步

Visium 实验里,透化时间决定了 mRNA 捕获效率。时间太短,mRNA 出不来;时间太长,mRNA 扩散到相邻 spot,空间分辨率下降。官方建议做 透化时间梯度实验,用荧光强度判断最佳时间。我自己做的时候,一般设 6、12、18、24、30 分钟五个点,选出荧光最强且 spot 边界清晰的。

技巧:拿到组织切片后,先做一张 H&E 染色看看形态。如果组织内有大量脂肪或坏死区域,透化时间要适当延长(脂肪细胞膜更难破)。

Slide-seq 原理——换个思路

Slide-seq 是哈佛在 2019 年推出的方法(后来有了 Slide-seqV2)。它的思路更直接:用玻璃珠代替 spot。

  • 每个玻璃珠直径约 10 μm,表面连有带空间条形码的 poly(dT) 探针。
  • 玻璃珠随机铺在玻片上,然后通过原位测序(in situ sequencing)读取每个玻璃珠的条形码,建立“位置 ↔ 条形码”的对照表。
  • 把组织切片贴在玻璃珠层上,透化、捕获 mRNA。

这件事的关键区别:10x Visium 的 spot 坐标是光刻固定的,Slide-seq 的珠子坐标是随机铺的。随机铺意味着你必须在实验后才能知道每个珠子在哪——这步叫做“解码”。

我一同事做过 Slide-seq,他吐槽解码的复杂度堪比破解一个简单密码。不过好处也很明显:珠子直径 10 μm,分辨率比 Visium 高得多,接近单细胞水平。

两种技术的对比与选择

对比维度 10x Visium Slide-seq (V2)
分辨率 55 μm(多细胞) 10 μm(近单细胞)
捕获效率 较高(优化充分后约 10–20%) 较低(约 1–5%)
实验复杂度 中等(需透化梯度) 高(需原位解码)
商业化成熟度 高(试剂盒、软件齐全) 低(基本是实验室自建)
图像对齐友好度 强(玻片有 fiducial marker) 中(需自行对齐 beads 图像)

说白了,追求通量和稳定性选 Visium,追求分辨率可以上 Slide-seq。我个人的选择习惯是:探索性研究用 Visium(快、稳),特定区域验证用 Slide-seq(准、细)。

其他技术概览

提一下 MERFISH 和 seqFISH+。它们用多重 FISH 成像直接读基因表达,不需要测序。分辨率可以达到单细胞甚至亚细胞级别,但通量有限(一次看几十到几百种基因)。如果你只关心几十个 marker 基因在特定区域的分布,可以用它们。不过,它们产生的原始数据是图像 stack,不需要做“图像对齐”,因为基因表达信息已经嵌在图像本身了——这跟 Visium/Slide-seq 的逻辑完全不同。

警告:做图像对齐教程时,我们聚焦的是 需要将 H&E 图像映射到空间转录组捕获位置的场景。MERFISH 这类原位成像技术不需要额外的图像对齐(它们本身就是显微镜图像),所以本篇教程后续不展开。请记住这个前提。

核心知识体系流程图

下面这张 SVG 图总结了本章涉及的技术分类和它们之间的定位关系:

空间转录组技术体系总览 空间转录组技术 原位捕获法 原位杂交/测序法 激光显微切割法 10x Visium Slide-seq MERFISH seqFISH+ LCM-seq 本课程重点讲解 需要 H&E 图像对齐的技术 无需额外图像对齐 基因表达已嵌在图像中 依赖显微切割设备 也需要图像引导 图像对齐核心:将 H&E 染色空间坐标系映射到捕获点/珠子坐标

对齐前的数据准备——你得知道的文件结构

拿到 10x Visium 数据后,文件夹里一般有这几个东西:

sample/
├── filtered_feature_bc_matrix.h5   # 表达矩阵(按 spot barcode 索引)
├── spatial/
│   ├── tissue_lowres_image.png      # 低分辨率 H&E 缩略图
│   ├── tissue_hires_image.png       # 高分辨率 H&E 图
│   ├── scalefactors_json.json       # 缩放因子(用于对齐)
│   ├── tissue_positions_list.csv    # spot 坐标(在图像中的像素位置 + 组织内标志)
│   └── aligned_fiducials.jpg        # 用于空间对齐的 fiducial 标记图像
└── raw_feature_bc_matrix.h5         # (可选)未过滤的原始矩阵

tissue_positions_list.csv 是关键文件。它每一行对应一个 spot,包含:

  • barcode:该 spot 的唯一条形码
  • in_tissue:0 或 1,表示该 spot 是否在组织区域内
  • array_row, array_col:技术上 spot 在玻片阵列中的位置
  • pxl_row_in_fullres, pxl_col_in_fullres:spot 中心在高分辨率 H&E 图像上的像素坐标

对齐算法要做的就是:把 pxl_row/col 映射到我们读入的 H&E 图像坐标系里。你想想看,实际过程中图像可能有旋转、缩放、甚至组织折叠——这就是我们后续几章要解决的问题。

小提示:Slide-seq 的数据格式不太一样。它一般给一个 beads_position.txt 文件,里面是每个珠子的物理坐标(单位 μm)。你需要通过扫描电镜图像(SEM)或荧光图像把这些坐标对齐到你的 H&E 图上。流程更繁琐,但原理相似。

好了,本章的基础知识就到这里。你心里应该清楚:每种技术的空间分辨率和数据格式都不同,图像对齐的策略也要随之调整。千万别拿 Visium 的对齐参数直接套给 Slide-seq——我试过一次,结果惨不忍睹。