1. Spot过滤简介:什么是Spot过滤,在空间转录组中的核心应用场景

说实话,我刚接触空间转录组那会儿,拿到原始数据的第一反应就是——直接跑聚类、找差异基因。结果呢?出来的图惨不忍睹,要么背景噪声淹没了信号,要么低质量的spots把整个空间模式搅得一团糟。

后来我才明白,空间转录组分析的第一步,也是最容易被忽略的一步,就是Spot过滤。

1.1 什么是Spot过滤

简单说,Spot过滤就是从原始数据中筛选出真正承载了有效组织信息的spots,剔除那些背景噪音、组织边缘残留、或技术上失败的捕获点。

你想想看,一张空间转录组芯片上可能有几千甚至上万个spots。但其中有不少spots落在载玻片上、落在组织褶皱处、或者本身捕获效率就很低。如果不对这些低质量spots做处理,后续所有分析都会被带偏。

我记得在某个项目中,我们处理的是FFPE样本的Visium数据。一开始没做严格的过滤,结果差异基因列表里冒出了一堆线粒体基因。排查了半天才发现,是那些坏掉的spots贡献的假信号。

核心观念:Spot过滤不是“丢掉数据”,而是“保留真相”。过滤掉低质量spots,才能让高质量spots的信号被准确解读。

1.2 空间转录组的数据长什么样

在做过滤之前,得先搞清楚我们面对的是什么数据。空间转录组数据的核心是计数矩阵,行是spots,列是基因。

# 典型的Visium计数矩阵概览(行列转置后)
# 行:spot barcodes | 列:基因名称
# ┌──────────┬──────┬──────┬──────┐
# | barcode  | MALAT1 | ACTB | GAPDH | ...
# ├──────────┼──────┼──────┼──────┤
# | AAACAACGA |  128  |  56  |  89  | ...
# | AAACAACTG |  0    |  2   |  1   | ...  # 这个spot可能有问题
# | AAACAAGTA |  345  |  201 |  178 | ...
# └──────────┴──────┴──────┴──────┘

每个spot附带一个barcode,同时还有空间坐标信息。过滤的基础就建立在这两个层面:表达层面的质量和空间层面的合理性。

1.3 核心应用场景:什么时候需要Spot过滤

我建议大家在下面几个场景中,一定要把Spot过滤放到分析流程的前端:

  • 质控阶段:移除UMI count过低、基因数过少的spots
  • 组织区域识别:剥离背景spots(落在非组织区域的捕获点)
  • 差异分析前:剔除异常值对统计检验的干扰
  • 空间聚类:过滤掉噪声spots可以提高聚类分辨率
  • 细胞类型推断:混合信号严重的spots会影响推断精度

说白了,Spot过滤是一个前置的“净化”步骤。它不炫技,但非常实用。

1.4 判断一个Spot质量好坏的核心指标

我一般在项目中用以下三个指标来做初步过滤:

指标含义经验阈值(仅供参考)
UMI count一个spot检测到的总UMI数视测序深度而定,通常>500
Gene count一个spot检测到的基因种类数通常>200
线粒体比例线粒体基因UMI占比通常<20%
一个重要的提醒:这些阈值不是固定的。我见过某些肝脏样本,spot的基因数天然很高,切掉200以下的spots根本不够。反过来,一些低质量的活检样本,500 UMI可能就是天花板了。一定要结合数据的实际分布来设阈值。

1.5 两种主要的过滤策略

根据我个人的经验,过滤策略可以分为:

  • 硬阈值过滤:直接设定UMI、基因数、线粒体比例的上下限,一次性砍掉所有不达标的spots。优点是快,缺点是可能误伤。
  • 软过滤(迭代过滤):先对spots做初步聚类或可视化,参考统计学分布(比如中位数绝对偏差MAD)动态调整过滤标准。

我现在的习惯是先做一轮硬阈值快速清理,然后用可视化的方式(比如UMI分布在组织切片上的映射)检查过滤效果,再决定是否需要调整参数。

我曾经踩过的坑:在某次分析中,我直接用了其他教程里推荐的“UMI > 1000”这个阈值。结果把肿瘤组织边缘那些真实的过渡区spots全部误删了。后来补做了一轮才把差异分析救回来。所以——永远要根据你自己的数据来调整参数。

1.6 知识体系总览

下面这张图是我梳理的Spot过滤在整个空间转录组分析流程中的位置,以及它内部的核心环节。理解了这个框架,后面各章节学起来会更清晰。

Spot过滤在空间转录组分析中的核心位置 原始计数矩阵 + 空间坐标 Spot过滤 UMI / 基因数 线粒体 / 空间位置 标准化 scTransform / LogNorm 降维与聚类 PCA / UMAP / Leiden 差异表达 FindAllMarkers 空间 分析 💡 为什么过滤很重要? 不经过过滤的低质量 spots 会: 1. 稀释差异表达信号,让真实的 marker 基因被埋没 2. 破坏空间自相关性,导致聚类结果出现假的空间模式

1.7 小结:为什么要重视Spot过滤

这几年我做了不少空间转录组项目,从10x Visium到Slide-seq,从新鲜冷冻到FFPE。说句实在话,数据质量决定了分析的下限,而Spot过滤直接决定了数据质量的起点。

你想想看,如果前面这一步没做好,后面那些漂亮的代码、复杂的模型,都是在垃圾数据上“跳舞”而已。我曾经见过不少同学花了大量的时间在调试聚类参数、优化可视化效果,结果最后发现是过滤这一步没做好,白忙活了一个星期。

嗯,本章的核心就这些。掌握好Spot过滤的理念和基础指标,后面的实战技巧才能发挥真正的价值。