1. 空间转录组QC概述:定义、意义、常用数据类型与平台差异

大家好,我是老周。在这个领域摸爬滚打了好几年,今天咱们来聊聊空间转录组的质量控制——QC。说白了,QC就是给数据“体检”。你拿到的原始数据,就像刚采回来的矿石,里面有金子也有泥沙。QC就是替你筛掉泥沙,把能用的金子挑出来。

1.1 什么是空间转录组QC?为什么它这么重要?

空间转录组技术,说白了就是在组织切片上同时测量基因表达和空间位置。这玩意儿比普通单细胞测序多了一个维度——空间信息。但多一个维度,就多一堆坑。QC的目的,就是确保你后续分析中看到的“空间表达模式”不是假的,不是技术偏差造成的。

我个人习惯把QC分成三个层次:

  • 基础QC:检查测序质量、比对率、UMI 分布——这些都是常规转录组的通用QC指标。
  • 空间QC:重点检查组织覆盖度、斑点(spot)空置率、组织边缘效应——空间特有的问题。
  • 生物学QC:检查基因检出率、组织类型区分度、空间自相关性——确保数据有意义。

核心观点:空间转录组的QC不是一次性的,而是贯穿整个预处理流程的。做一次QC,只能保证这一步没问题;跑完全部分析,才能说数据基本可用。

你想想看,一个组织切片,可能只有几万个细胞。每个斑点可能捕获了几个到几十个细胞。如果斑点里 RNA 降解了、或者组织切歪了、或者被气泡污染了——这些在常规转录组里可能直接扔掉的样本,在空间转录组里却没法简单丢弃,因为你丢一个切片,可能就丢了一个病人的完整组织信息。

1.2 常用数据类型与各自的QC要点

空间转录组的数据类型比单细胞多了不止一点点。我在项目中最常接触的,大概有这么几类:

数据类型 来源 QC主要检查点 常见问题
HE 染色图像 组织切片染色 + 扫描仪 焦点模糊、组织裂片、染色不均、气泡 气泡遮挡斑点;组织切片翻卷导致边缘信号丢失
空间条形码捕获阵列 设备专用芯片(如 Visium 载玻片) 斑点布局完整性、捕获效率、组织覆盖度 边缘斑点捕获不到组织;死区斑点(气泡或灰尘覆盖)
基因表达矩阵 测序后定量 -> 按斑点汇总 UMI 数分布、基因数分布、线粒体比例、双胞比例 低活性组织导致 UMI 数普遍偏低;坏死区域线粒体比例暴增
空间坐标 / 空间邻接矩阵 条形码位置解码 + 图像配准 坐标变换误差、配准偏移、斑点 - 像素对齐 配准偏差导致表达数据与组织位置错位
组织区域注释 病理学家手动标注 / 自动分割 区域边界是否平滑、是否与表达聚类一致 坏死区被错误标注为肿瘤区,导致虚假空间表达模式

1.3 平台差异导致的QC关注点不同

做空间转录组,绕不开平台对比。目前主流的有 10x Visium、Slide-seq、MERFISH 等。每个平台的数据结构都不一样,QC指标也就各有侧重。

10x Visium

这是目前最常用的平台。它的特点是斑点直径 55 μm,相邻斑点中心间距 100 μm,能够获得比较弱的空间连续性。QC上,我最关注的是:

  • 组织覆盖度:一般要求 ≥ 50% 的斑点覆盖到组织切片上。
  • UMI 计数:中位数通常要求在 500~2000 之间(取决于组织类型)。
  • 空斑鉴别:使用 Visium 自带的 emptyDrops 方法识别真实组织斑点和背景斑点。

Slide-seq (V2)

这个平台使用毫米级直径的玻片铺满 DNA 条形码珠子(直径约 1 μm),分辨率更高。但它的QC挑战在于:

  • 珠子有效率:部分珠子可能没有捕获到组织,或者条形码质量差。
  • UMI 计数碎片化:单细胞级别的分辨率导致 UMI 计数偏低,更容易受测序深度影响。
  • 空间坐标映射:需要将条形码珠子的解码坐标映射到组织图像上,这一步误差很大。

MERFISH (多重抗误差荧光 in situ 杂交)

MERFISH 是成像为基础的,每一帧图像包含上千个 RNA 分子。QC关注点完全不一样:

  • 信噪比:RNA 分子点需要与背景噪声区分开。我遇到过一些组织因为染色残留造成假阳性的“RNA 点”。
  • 密度偏差:细胞核区域的 RNA 密度通常会偏高,这是成像方法的固有偏差。
  • 分子解码准确性:取决于条形码库的质量和成像轮次。

小经验:相同组织用不同平台做,QC标准要灵活调整。比如 MERFISH 的 UMI 计数可以比 10x Visium 低一个数量级以上,直接用 Visium 的 cutoff 会丢掉大量真实信号。

1.4 不同平台的数据存储差异

这个细节很多人不注意,但坑很多。每个平台输出数据的主文件夹结构都不同,QC脚本需要针对性地读取。

10x Visium 的输出目录通常长这样:

sample_name/
├── filtered_feature_bc_matrix.h5
├── raw_feature_bc_matrix.h5
├── spatial/
│   ├── tissue_hires_image.png
│   ├── scalefactors_json.json
│   └── tissue_positions_list.csv

Slide-seq 则不一样:

puck_name/
├── puck_name.barcodes.tsv.gz
├── puck_name.molecules.tsv.gz
├── puck_name.beads.masked.barcodes.txt
└── alignment/

MERFISH 更复杂:

experiment/
├── segmented_cells/
├── cell_gene_matrix.csv
├── all_molecules.csv
└── metadata/

注意:如果你要写通用的QC工具,务必设计一个平台适配器。我见过好多人直接硬编码10x格式,然后在处理MERFISH数据时全盘崩溃。

1.5 空间转录组QC的常见误区

这些年我看到太多人走了弯路。这里列几个经典误区:

  • 只看总UMI数,不看空间分布。总UMI数正常,但可能所有信号集中在组织边缘或一个角落。没有空间均一性检查,后续聚类会得到虚假的空间区域。
  • 只过滤低质量斑点,不做全局质量评估。有些斑点质量低是因为组织坏死,而这些坏死区域恰恰是研究关注的(比如肿瘤中心坏死区)。
  • RNA质量不做组织匹配。有些RNA完整性本身很差,但组织切片看上去完好。实际操作中,我建议给RNA质量评分,并和质量好的斑点做对齐。

1.6 本章知识体系概览

为了让你对整个章节的逻辑有个整体概念,我画了一张图:

空间转录组QC知识体系框架 空间转录组QC知识体系框架 QC定义与意义 HE图像 基因表达矩阵+空间坐标 条形码捕获阵列 10x Visium Slide-seq MERFISH 数据存储结构差异 → 适配器设计 常见QC误区与避坑指南 本章核心逻辑: 从 QC 定义出发 → 数据类型 → 平台差异 → 到常见陷阱

从这张图你可以看到,整个空间转录组QC的知识体系是一个层层递进的结构。我们先搞清楚“为什么做QC”,再到“对你拿到的数据进行分类检查”,进一步落到“不同平台有什么特殊坑”,最后给出“实操中常见的错误习惯”。

1.7 本章小结

这一章我们打了基础。对空间转录组QC我总结了几个关键点:

  • QC不是数据清洗的第一步,而是贯穿全部预处理流程的。
  • 不同数据类型有完全不同的QC指标,单独看基因表达矩阵会遗漏很多问题。
  • 平台之间差异很大,QC标准不要互搬,要针对性地设计。

踩过的坑:我曾经在同一个项目里同时并入了Visium和MERFISH的数据,拿着同样的QC过滤器对两份数据做过滤——结果Visium数据能剩4000个斑点,MERFISH只剩300个细胞。后来才发现,MERFISH的细胞级UMI计数本来就不高,我用的是一个专为斑点级设计的高阈值。切记:先理解平台特性,再设计QC指标。