2. Visium 技术原理与数据特点归纳总结

聊多批次质控之前,咱们得先把 Visium 这门手艺的底牌看明白。你想想看,一片组织切片,怎么能变成一张基因表达热图?背后靠的就是空间条形码(Spatial Barcoding)这套机制。我个人习惯把这套机制拆成三个层面来理解:物理捕获、化学解码、数据产出。下面咱们一个一个说。

2.1 核心技术原理:捕获与解码

Visium 的捕获区域是一个 6.5mm × 6.5mm 的方格,上面密密麻麻排着大约 5000 个捕获点(spots)。每个 spot 直径 55μm,中心间距 100μm。每个 spot 上预先固定了数百万条探针,这些探针都带有一段独一无二的空间条形码序列。

组织切片被贴在捕获区域后,经过透化处理,mRNA 从组织内释放出来,被下方对应位置的探针捕获。这一步决定了:“哪个基因是从哪个物理位置来的”。

关键物理参数速查:

  • 捕获区域尺寸:6.5mm × 6.5mm
  • 捕获点总数:约 5000 个(视芯片版本略有浮动)
  • 单个点直径:55μm
  • 点间距(中心到中心):100μm
  • 每个点的探针分子数:数百万条

探针结构我画个图你更容易理解。每条探针从 5' 端到 3' 端,依次包含:

  • Illumina P5 接头:用于文库扩增和测序结合
  • 空间条形码:唯一标识该 spot 位置的 16bp 序列
  • UMI(Unique Molecular Identifier):12bp 的随机序列,用来区分每一条原始 mRNA 分子
  • Poly-dT 尾巴:30 个 T 碱基,用于捕获 mRNA 的 poly-A 尾

下面这张架构图总结了从组织到数据的核心流程:

Visium 技术原理与数据产出流程 1 组织切片与贴片 FFPE / 冰冻切片 贴于捕获区域 2 透化与 mRNA 捕获 组织透化释放 mRNA 被 spot 探针捕获 3 反转录与建库 原位 cDNA 合成 文库构建与扩增 4 高通量测序 读段包含条形码 + UMI + 基因序列 5 数据处理与矩阵生成 Space Ranger 流程 产出表达矩阵 + 空间坐标 6 数据产物 基因- spot 矩阵 + metadata 核心原理说明 - 每个 spot 拥有独特条形码 - UMI 去除 PCR 重复 - 空间坐标与表达矩阵对齐 - 多批次需消除批次效应

2.2 数据特点总结

理解了原理,咱们再来看数据长什么样。Visium 产出的数据本质上是一个 稀疏矩阵,行是基因,列是 spot,每个元素代表某个基因在某个 spot 中被捕获到的 UMI 计数。

这里有几个关键特点你需要记住:

  1. 空间稀疏性:组织只覆盖部分 spots,背景 spots 计数为零。质控时背景和组织的区分是第一关。
  2. 文库复杂度较低:每个 spot 平均检测到几百到几千个基因,远低于单细胞数据。这是由每个 spot 内包含约 1-10 个细胞的物理限制决定的。
  3. 技术噪声来源多样:透化过度或不足、组织褶皱、气泡、边缘效应、批次间试剂批号差异,都会影响数据质量。
  4. 多批次整合需求强烈:单个样本只能覆盖 6.5mm × 6.5mm 区域,研究较大组织或多样本比较时,必须合并多个批次的数据。

一个实用的视角: 我个人习惯把 Visium 数据看作“低分辨率的原位 RNA-seq”。虽然每个 spot 包含多个细胞,但空间位置信息弥补了单细胞数据丢失的形态学背景。多批次质控的核心,就是保证不同批次之间的“空间背景”可比较。

2.3 数据矩阵结构

Space Ranger 输出的标准文件有三个,你最好对它们有直觉上的理解:

文件 格式 内容说明
filtered_feature_bc_matrix.h5 HDF5 过滤后的基因-spot 表达矩阵(已去除背景 spots)
spatial/tissue_positions_list.csv CSV 所有 spots 的空间坐标(px, py)和组织内/外标记
spatial/scalefactors_json.json JSON 图像像素到 spot 坐标的缩放系数(用于下游可视化对齐)

看看 tissue_positions_list.csv 的前几行长什么样:

barcode,in_tissue,array_row,array_col,pxl_row_in_fullres,pxl_col_in_fullres
AACAGGACGCTCCGAG-1,1,0,0,12134,14872
AACCCAAGTGGTGTAC-1,1,0,1,12134,15072
AACCCGAGTTTGCATG-1,1,0,2,12134,15272
...
TATATCCAGTCGCCAA-1,0,0,73,0,0

注意 in_tissue 这一列:1 表示该 spot 位于组织区域内,0 表示背景。质控的第一步就是基于这个标记来做数据筛选。

还有一个重要的 JSON 文件,记录 spot 直径、组织区域等缩放信息:

{
  "spot_diameter_fullres": 100.888,
  "tissue_hires_scalef": 0.0637,
  "fiducial_diameter_fullres": 514.295,
  "tissue_lowres_scalef": 0.0199
}

我曾经踩过一个坑: 多批次比较时,不同芯片的 spot 直径和缩放系数可能略有不同,尤其是在不同版本 Visium 芯片之间。直接拼合图像坐标而不做尺度归一化,会误导后续的空间对齐分析。建议在拼接前统一除以 spot_diameter_fullres,让坐标单位变为“spot 直径倍数”。

2.4 多批次数据怎么拼接?

好,现在假设你手上有 3 张不同小鼠脑片的 Visium 数据。它们各自的组织切片形态、捕获效率、芯片批次都不同。直接横向对比基因表达是危险的。

多批次质控的核心痛点是:

  • 批次间绝对 UMI 计数不可比(总 UMI 差异可以很大)
  • 批次间背景噪声分布不一致(透化时间、探针效率)
  • 批次间的 spot 覆盖区域不完全重叠(不同切片位置不同)

处理这个问题的标准做法,是先将每个批次内部做好质控(我们后续章节会详细讲),然后使用基于 互邻近图(MNN) 或 Harmony 的方法做批次矫正。不过这些是后面几章的事,你现在只要记住:质控是分两层的——批次内质控 + 批次间可比性检查。

总 UMI 计数(nCount_UMI) 和 检测基因数(nFeature_RNA) 是每个 spot 最基本的两个质控指标。在单样本内部,我们通常用它们的分布来识别离群 spots;在多样本之间,我们则关注这两个指标的批次间分布是否一致——如果某批次的中位 UMI 明显偏低,说明那个批次的捕获效率可能有问题。

2.5 总结

Visium 数据的核心特征可以概括为三点:

  1. 物理约束下的稀疏计数——数据解构受限于 spot 直径和细胞密度
  2. 空间坐标与表达数据的强绑定——每个数据点都有一对空间坐标
  3. 批次效应的天然存在——技术变量远多于生物学变量,质控是整合的第一步

嗯,原理层面的内容到这里就铺垫完了。记住这些底层逻辑,后面讲质控指标和流程时,你就能理解每一个阈值背后的“为什么”了。