第二节 SPOTlight 简介:开发背景、主要特点、应用场景

在我刚接触空间转录组那会儿,手头数据量不多,但问题却很棘手——每个捕获点的基因表达谱看起来都像是一锅乱炖,各种细胞的信号搅和在一起。你没法直接说清楚这个spot里到底是肿瘤细胞多,还是免疫细胞多。当时市面上能用的工具不多,要么是纯统计模型,要么是针对某种特定组织设计的,用起来总觉得隔着一层。

直到 2021 年,SPOTlight 论文发出来。我第一反应是:这名字起得明白。它就是要在空间转录组的「光斑」(spot)上打一束聚光灯,把混合的信号拆解清楚。说白了,这是一个专门为空间转录组设计的细胞类型解卷积工具。

1. 开发背景——这工具是被逼出来的

空间转录组技术,比如 10x Visium,能把你组织的每个位置都标上一个基因表达谱。但问题是,一个 spot 的直径大概 55 微米,通常能捕获 1 到 10 个细胞。你测到的是一个混合信号,不是单个细胞的。

我当时在处理一个肿瘤样本的数据,看到热图上某个区域炎症因子表达很高,但死活分不清是巨噬细胞发出的,还是肿瘤细胞自己分泌的。如果搞不清楚这个,下游的细胞通讯分析基本就是在猜。

传统单细胞解卷积方法有几个硬伤:

  • 分辨率不匹配:很多方法是为 bulk 转录组设计的,分辨率太粗,放到空间数据上根本跑不动。
  • 没有利用空间信息:空间转录组的核心优势就是位置信息,但纯数学模型完全忽略邻居关系。
  • 参考数据质量依赖高:你给一个差的参考单细胞数据,解出来就是一团浆糊。

所以 SPOTlight 的开发者们就想:能不能找一个既尊重算法原理、又能利用好参考数据的方法?他们最后把目光放在了 非负最小二乘回归 上。这个选择我在后来的项目里验证过几次,确实稳。

痛点 传统方法表现 SPOTlight 改进方向
spot 内细胞混合 纯线性模型,抗噪差 非负最小二乘 + 二次正则化
参考数据噪声 直接使用,不稳定 先降维,再构建标记基因特征
缺少空间先验 完全忽略邻居 可选的空间邻域平滑
计算效率 非参数方法慢 基于 NMF + NNLS,可并行

2. 主要特点——我为什么一直用它

SPOTlight 有几个设计我觉得特别实在。

第一,核心算法:非负最小二乘回归。 这个算法说白了就是:我不管你每个细胞类型的表达有多高,反正不能是负的。这个约束太重要了。你想想,生物数据里不会出现「负的基因表达」,如果某个模型算出某个细胞类型占比是负数,那一定是模型错了。NNLS(Non-Negative Least Squares)天然保证输出的比例都是正的,而且加起来还能是 1,特别适合做细胞比例估计。

第二,基于 NMF 的特征提取。 SPOTlight 不是直接把所有基因扔进去。它先用非负矩阵分解,从参考单细胞数据里提取出「主题因子」。每个因子代表一组共表达的基因模块,比如「CD4 T 细胞活化模块」、「成纤维细胞基质重构模块」。这样降维之后,噪声被过滤掉了,计算量也下来了。

第三,它支持空间先验。 这点我特别喜欢。你可以告诉模型:「相邻的 spot 应该有相似的细胞组成」。这种平滑约束让最终的细胞分布图看起来自然很多,不会出现单个 spot 突然冒出一个孤立的细胞类型。

第四,输出格式友好。 SPOTlight 直接返回一个矩阵,行是 spot,列是细胞类型,数值就是比例。你拿来画空间散点图或者做下游聚类,都不需要额外转换。

我的习惯:每次拿到新的空间数据,我都会先用 SPOTlight 跑一遍,看看细胞类型分布的大致格局。虽然不一定最终用它做精细解卷积,但这个「初筛」能帮你快速锁定哪些区域值得深挖。

3. 应用场景——哪些问题最适合用 SPOTlight

我归纳了三个最常见的应用方向。

  • 肿瘤微环境分析:比如你想知道肿瘤边界处的免疫细胞浸润情况。SPOTlight 能告诉你每个 spot 里肿瘤细胞和 T 细胞的比例,画出浸润带。
  • 发育生物学:组织切片里不同区域正在发生不同的分化事件。SPOTlight 帮你把祖细胞和终末分化细胞的空间定位搞清楚。
  • 疾病组织病理:纤维化区域、炎症区域、正常区域,各自有哪些细胞在主导。你甚至可以用 SPOTlight 的输出来做无监督的病理区域分割。

我记得有一个项目,客户想验证某个药物靶点在肿瘤组织里的空间表达模式。他们手头有 Visium 数据,也有单细胞参考数据。我直接用了 SPOTlight 的标准流程,两天就把细胞类型空间分布图给出来了。客户看了第一眼就确认了靶点的富集区域。那感觉,真的挺爽。

4. 工作流程一览

下面这张图就是我根据自己的使用习惯总结的 SPOTlight 核心工作流程。从参考数据到最终的空间分布图,走了三步:预处理、模型训练、空间映射。

SPOTlight 工作流程 参考 scRNA-seq 数据 单细胞表达矩阵 + 细胞类型注释 NMF 主题因子提取 降维 + 识别共表达模块 空间转录组数据 10x Visium / Slide-seq 等 NNLS 非负最小二乘解卷积 每个 spot 估计各类细胞比例 空间邻域平滑(可选) 空间细胞类型分布图 💡 输出格式: spot × cell_type 比例矩阵

这张图里的流程你之后会一步步实践到。我个人建议先从最简单的「默认参数」开始,跑通了再调细节。别一上来就想做定制化,容易卡住。

5. 一个重要的提醒

我曾经踩过的坑:有一次我拿一个低质量的空间数据跑 SPOTlight,结果空白区域(组织外的背景 spot)也给出了细胞比例,而且数值还不低。后来查了半天才发现,是参考单细胞数据里的细胞类型太多太杂,连非生物学相关的「doublet 簇」都没有过滤干净。从那以后,我每次都会先对参考数据做一遍严格的质量控制,去掉低质量细胞和 doublet。

避坑:参考数据的质量直接决定解卷积的准确性。不要偷懒,先 QC 再跑。

小结一下:

  • SPOTlight 专门为空间转录组数据解卷积设计,核心是非负最小二乘回归。
  • 它利用 NMF 做降维特征提取,减少噪声影响。
  • 可选的空间平滑让细胞分布更自然。
  • 应用场景包括肿瘤微环境、发育生物学、组织病理分析。

嗯,说白了,如果你手里有空间转录组数据,有匹配的单细胞参考数据,SPOTlight 是性价比最高的起步方案。