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”,再到“对你拿到的数据进行分类检查”,进一步落到“不同平台有什么特殊坑”,最后给出“实操中常见的错误习惯”。
1.7 本章小结
这一章我们打了基础。对空间转录组QC我总结了几个关键点:
- QC不是数据清洗的第一步,而是贯穿全部预处理流程的。
- 不同数据类型有完全不同的QC指标,单独看基因表达矩阵会遗漏很多问题。
- 平台之间差异很大,QC标准不要互搬,要针对性地设计。
踩过的坑:我曾经在同一个项目里同时并入了Visium和MERFISH的数据,拿着同样的QC过滤器对两份数据做过滤——结果Visium数据能剩4000个斑点,MERFISH只剩300个细胞。后来才发现,MERFISH的细胞级UMI计数本来就不高,我用的是一个专为斑点级设计的高阈值。切记:先理解平台特性,再设计QC指标。