☰
空间组学数据深度学习指南:从模型选型到实战避坑
2026/10/18 10:19:20 网站建设 项目流程

1. 空间组学数据的独特形态:为什么传统流程开始不够用

最近我拿到一批空间转录组切片,第一反应是直接套用单细胞那套标准分析流程:标准化、找高变基因、PCA、Leiden聚类。结果聚类图谱一出来就傻眼了——同一片脑组织里,边界区域被切得乱七八糟,一片一片的“椒盐噪声”,解剖学上的皮层分层完全看不出来。换成带空间信息的深度模型重新跑之后,皮层分层、白质边界、脑室区域一下就清晰了。这件事让我意识到:空间组学带来的不是“多了两个坐标”这么简单,它把机器学习问题本身的形态都改了。

1.1 一张切片里的数据长什么样

空间组学技术的核心,是把基因表达量和物理位置绑在一起。不同类型的平台差异很大:基于条形码的原位捕获技术,通常得到的是几十微米直径的捕获点,每个捕获点覆盖几个到几十个细胞,读取的是这个混合点的平均表达;基于成像的技术则能做到接近单细胞分辨率,但基因检测数量往往有限。不管哪种平台,落到数据结构上,都是“表达矩阵 + 空间坐标矩阵 + 可能配一张苏木精伊红染色图像”。

以前我们处理的单细胞数据,好比是“名单加成绩单”,每个细胞是独立一行。空间组学数据则是“名单加座位表加现场照片”——每个捕获点有自己的位置,相邻点位之间天然存在相关性。这种相关性不是噪声,而是生物学本身:组织不是把细胞随机混匀的液体,它是由细胞在空间中按规则排列构成的器官结构。

1.2 传统分析管线在新数据面前的三处脱节

第一处脱节:单细胞聚类算法假设每个细胞是独立样本,但空间点位之间根本不是独立的。同一个组织的两个相邻点位,它们的表达谱天然相似。忽略位置信息的聚类,等于把一张全景照扔进一个处理证件照的流水线,结果自然是把连续的组织结构切成一堆碎片。

第二处脱节:降维方式不匹配。常见单细胞流程里的PCA、UMAP、t-SNE,核心都是找“最能区分细胞”的维度。但空间组学里我们往往还要关心“哪些基因在空间上呈梯度连续变化”“哪些区域构成一个功能模块”,这些信息在线性降维里很容易丢失,或者被噪声掩盖。

第三处脱节是尺度问题。单细胞分析通常只需关心细胞之间异质性,但空间组学面前至少有三个尺度同时存在:单点水平(一个捕获点内部混合信号)、局部邻域水平(相邻点位构成的微环境)、区域水平(一层皮层、一个腺体结构、一个肿瘤生态区)。传统无监督聚类很难同时照顾这三种尺度。

1.3 “空间”带来的三个核心问题:邻域、尺度与噪声

深入看下去,空间组学建模绕不开三个基本难题。

邻域依赖。一个位点的表达状态,不仅在自身内部,还受周围细胞构成的微环境影响。深度学习方法处理这个问题的方式,是把空间关系抽象成图:每个点位是节点,相邻点位连成边,再把节点特征送进图神经网络。这样模型学到的就不是孤立点特征,而是“某个点处在一群什么类型的邻居中间”的上下文特征。

尺度结构。组织内部的生物学结构往往呈层级分布:皮层分六层,每层内部又有不同类型神经元的微柱结构;肿瘤组织里是浸润区、缺氧区、免疫聚集区形成的复杂马赛克。想要区分这些结构,模型既要有局部分辨率,又要能感知区域级模式,这就对模型结构提出了比单细胞聚类高得多的要求。

噪声模型。空间数据里混杂着技术噪声和生物学噪声。捕获点覆盖多细胞的混合信号、RNA捕获效率不均、批次间的测序深度差异、组织切片本身的破损和褶皱,这些在图像处理里属于伪影,但落到表达矩阵里就成了“异常值”。一个不针对空间特性做鲁棒化设计的模型,很容易把伪影学进特征里。

这三个问题叠加,传统线性模型和常规聚类流程确实招架不住。“下一代机器学习与深度学习”在空间组学领域,其实就是在解决这三件事:把邻域依赖编码进模型,把多尺度结构建模出来,让模型对空间噪声和批次差异更鲁棒。

2. 下一代模型到底在解决什么问题:三类核心任务的价值拆解

搞清楚数据长什么样之后,第二个关键问题是:这些深层模型到底在解决什么任务?我接触下来,目前空间组学里最成熟、最值得花时间研究的深度学习应用,可以归纳成三大类。

2.1 空间域识别:从“聚类”到“区域分割”

空间域识别是目前论文中出现频率最高、效果也最直观的任务。它把每个捕获点分配到一个离散的“区域标签”,目标不是单纯找表达相似的簇,而是找“在表达和空间上都连贯的组织区域”。

一个很典型的例子是大脑皮层。传统聚类可以分出神经元簇、胶质细胞簇,但很难自动把皮层分成六层,因为皮层各层之间表达差异是渐变的、层与层之间没有绝对边界。深度模型用图注意力机制或者空间平滑先验之后,情况会好很多。BayesSpace这类方法利用隐马尔可夫随机场让相邻点位标签趋向一致,STAGATE这类图网络方法则是让每个节点把邻居特征带进自己的嵌入表示里,效果上都能把连续渐变区域切分成符合解剖学预期的条带状区域。

这里有个关键认知:空间域识别不是“带坐标的聚类”,而是“带上下文信息的语义分割”。如果只是把坐标塞进聚类算法当特征,很容易被局部噪声带偏;如果用图神经网络的邻域汇聚逻辑来平滑特征,效果会稳定很多。

2.2 反卷积与细胞类型定位

空间捕获点很多覆盖几十个细胞,直接做单细胞级别的分析是不现实的。另一个重要任务就是把这种“混合信号”重新拆解到细胞类型层面,叫空间反卷积。目标是给每个捕获点输出一份“细胞类型组成比例”。

传统做法是用非负最小二乘或者NMF这类线性分解。但这种做法最大的问题是:空间中细胞组成本身有强烈的结构依赖,相邻捕获点大概率共享相近的细胞类型比例。线性方法完全没利用这个信息。深度生成模型比如变分自编码器架构,会把“空间相邻性”和“细胞类型共现先验”一起编码进去,输出不光是细胞类型比例,还能给出不确定度。

我实际用下来最大的感受是:反卷积模型对参考单细胞数据的质量极其敏感。参考数据里细胞类型注释错了,反卷积结果会均匀地错;参考数据缺失某个状态(比如某种应激细胞亚群),模型会把它的信号强行分配到相近类型上。所以反卷积的下一步往往不是换更深的模型,而是先把手里的单细胞参考数据整理干净。

2.3 多切片整合与批次效应

处理多个切片样本时,批次效应问题会进一步恶化。不同切片之间,组织处理批次、测序深度、捕获效率都会不同。普通单细胞整合工具假设细胞可以跨样本“互相对齐”,但空间切片之间还多一个约束——同一套组织结构在不同切片上可能有不同的形态、切面和局部破损。

目前解决这个问题的思路主要有两条。一条是把空间坐标当作对齐锚点,用图匹配或者流形对齐的方法把多个切片的组织结构迁回到同一个空间框架里;另一条是让模型学会区分“样本特异信号”和“组织共享结构”。GraphST这类对比学习方法会把同一组织的不同切片作为正样本对,逼迫模型在嵌入空间里把组织结构信息提取出来、把批次差异丢掉。

这条线目前远没有解决彻底。手术刀之下没有两张完全一样的切片,我见过不少在单张切片上效果惊艳的模型,一到多切片联合分析就垮掉。这个领域离“开箱即用”还有一段距离。

2.4 下游扩展:空间通讯、空间模式与病理预测

再往下,深度学习还会用于更复杂的衍生任务:基于邻域细胞类型共现推断配体受体间的空间通讯关系;用局部细胞组成模式做疾病亚型分类或预后预测;把基因表达的空间模式与组织学图像关联起来。这些任务目前更多是单点突破,方法与空间域识别和反卷积在底层嵌入上高度共享。理解了上面两类核心任务,这些下游扩展基本就是换个输出头的事。

3. 选型实录:几类主流算法与它们的真实使用体验

很多刚入门的朋友会问我:“到底该用哪个模型?”说实话,这个问题没有标准答案,但确实有分析路径。我把这两年用过、看过、复现过的算法归成几类,说说各自适合什么场景、有什么坑。

3.1 图神经网络类:STAGATE、GraphST这类模型的口味与习惯

STAGATE这类图注意力模型是目前使用最广的空间域识别方法之一。它的做法是先拿标准化后的表达矩阵做PCA降到几十维,在每个捕获点周围用K最近邻方式构建邻域图,然后把节点特征送进图注意力层,让每个点位按注意力权重聚合邻居信息,最终得到带有空间上下文的嵌入表示,再聚类。

它最值得注意的操作是邻域图构建。K值一般取10到20,太大太小都会影响结果。K太小时图太稀疏,每个点只能看到极近的邻居,区域边缘形不成完整结构;K太大时信息过度平滑,会把本来应当分离的微环境糊在一起。我通常的做法是分别跑K=10、15、20,比较聚类结果与解剖学注释的对应情况再定。

GraphST则是走对比学习的路子,把同一个切片的嵌入表示与“加了扰动”的表示拉近,同时把不同切片的表示推远,借此丢弃切片特异的批次效应。实测下来,在多切片样本上它确实比纯图注意力模型稳定;但对比学习这类技法训练不稳定,随机种子对结果影响大,跑的时候一定要固定随机种子并多次重复。

3.2 Transformer与长程依赖:并非越深越好

空间组织里有些结构关系是远距离的,比如肿瘤反应性浸润区域可能散布在多个互不相邻的生态位中,彼此靠细胞通讯呼应。这类长程相关性图神经网络往往捕捉不好——图卷积更新几次之后,信息在长距离传播时会被稀释或过度平滑。

Transformer类方法通过自注意力机制让任意两个位置直接交互,理论上能解决长程依赖。SpaceFlow这类方法把位置信息编码成位置嵌入,再与表达特征一起送进注意力模块。实际效果是:在组织结构比较规整的数据上(比如脑切片),Transformer未必比精心调参的GNN强太多;但在结构高度破碎、局部区域穿插复杂的数据上(比如肿瘤微环境),长程依赖建模确实能带来明显优势。

代价也很明显:计算量大,显存占用高,调参维度更多。1024个点左右的小组织样本还好,几万点的高分辨率数据就要认真考虑显存了。我的建议是:数据规模小、结构规整,先试GNN类;结构复杂或者切片面积大,再考虑Transformer类。

3.3 概率生成模型与分解类:反卷积任务的真正主力

空间反卷积任务目前的主力模型,比如Cell2location、DestVI这类变分推断模型,背后都是生成式建模思路。它们假设每个捕获点的混合表达由一个潜在细胞类型组成比例生成,通过变分推断拟合后验分布。相比经典NMF,好处是能处理稀疏表达和过离散性,而且能给每个混合点输出不确定性区间。

这类模型还有一个惊喜的副产品:由于它们明确建模了“比例”,所以天然就有一个定量解释——某个捕获点里巨噬细胞占百分之几。这在临床样本里特别有价值,因为病理医生习惯的就是“这个区域里淋巴细胞浸润比例高不高”这种表达方式。不过这类模型收敛较慢,跑一个中等规模数据集用GPU也要几十分钟到数小时,使用时要有耐心。

SpatialPCA这类概率PCA方法则是介于线性方法与深度模型之间的位置:它们把空间相关性写进概率模型里再做降维,速度和稳定性都不错,在空间域识别任务上也是值得一试的基线。

3.4 模型选型速查:一张表看懂主要差异

模型类别代表方法主要任务输入要求计算开销稳定性
图注意力STAGATE空间域识别表达矩阵+坐标低,CPU可跑较稳定
对比学习+GNNGraphST多切片对齐、空间域多切片表达+坐标中,建议GPU依赖随机种子
TransformerSpaceFlow空间嵌入、长程模式表达+坐标高,需要GPU需仔细调参
贝叶斯平滑BayesSpace空间域识别log规范化表达低稳定
变分生成模型Cell2location、DestVI空间反卷积表达+参考单细胞高,需要GPU较稳定
概率PCASpatialPCA空间域识别、降维表达+坐标低稳定

这个表不是要你照着选,而是提醒一件事:每个模型都有各自的“脾气”,选型时先看任务类型,再看数据规模,最后看自己手里的计算资源。

4. 真正跑起来之后的预处理与参数问题:我踩过的坑

模型选好了,预处理却没做对,结果照样一团糟。这节是实操环节,我把最容易导致失败的几个细节单独拎出来说。

4.1 输入是count还是log规范化?模型之间的口味差异很大

每个模型对输入表达矩阵的期望不一样,这是新手最容易忽略的地方。STAGATE官方流程是先做normalize_total后做log1p变换,再筛高变基因,然后PCA得到低维嵌入作为输入特征;BayesSpace明确要求输入log规范化后的表达,并且它对低表达基因的处理方式有默认假设;Cell2location则对输入做了更复杂的标准化,还要求提供参考单细胞数据。

我的经验是:拿到一个新模型,第一件事看官方示例代码里对输入数据是怎么处理的,是直接读原始计数矩阵还是先处理过的数据。千万不要拿着自己习惯的那套标准化流程套所有模型。有时候模型的“效果差异”根本不是模型本身的问题,而是输入预处理不符合模型的建模假设。

4.2 邻域图与超参数:K值、SVG和前几个主成分都有讲究

构建图的时候,用的特征空间会直接影响邻域关系。常见做法是拿前几十个主成分做KNN,但主成分数量选多少也有讲究:PCA维度太少,会丢掉稀有的空间模式;维度太多,会把噪声装进邻居计算里。

另一个被低估的因素是SVG(空间可变基因)的选择。很多流程默认选高变基因,但高变基因和空间可变基因并不是一回事:有些基因整体表达量稳定但呈显著空间梯度,比如大脑皮层里很多层标志基因,恰恰是这种“空间梯度型”基因,对空间域识别至关重要。所以在做与空间结构相关的分析时,我建议先从Moran‘s I或SpatialDE这类方法里选出一批空间可变基因,再用于后续下游分析。

4.3 切片质量对模型的打击是灾难级的

我踩过最狠的一个坑,是一张边缘破损严重、还带大块气泡的切片。直接跑图神经网络,结果破损边缘的点位因为邻居缺失,形成了假的“边界区域”,后续所有分析全被带偏。

解决思路并不复杂但很关键:先做严格的质量控制,把低质量点位过滤掉。判断标准包括:总UMI数过低或过高的点位、线粒体基因占比异常的点位、离组织边缘太近的点位。质量控制之后一定要把坐标矩阵里的无效点删除,不然图构建阶段会把空洞点当作普通邻居,给模型喂入错误连接。我在处理完一张明显有切片褶皱的数据之后,聚类结果的沙盘轮廓瞬间正常了,这个步骤真的不能省。

4.4 算力实测:GPU显存不够怎么办

很多人觉得空间转录组数据就那么几千个点,用CPU跑也快。但一旦涉及图神经网络或Transformer,情况完全不一样。邻域图构建时,如果点位规模到数万,边数量轻松涨到几十万,图卷积的计算复杂度会快速上升。

实测经验是:GraphST在2万点左右的数据上,用一张常见消费级显卡需要十几分钟到半小时;Transformer类方法在同样规模下,显存占用明显偏高,我的机器跑起来经常爆显存。如果资源紧张,可以先降到更小的捕获点分辨率运行,验证流程跑通后再放大;或者优先选择SpatialPCA、BayesSpace这类轻量方法垫底。

5. 验证与比较:怎么判断一个模型真的更好

模型跑完之后,最尴尬的事情是什么?就是指标上看着很漂亮,但拿到生物学验证里完全站不住脚。这一节专门讲模型验证的实操方法论。

5.1 ARI和NMI不是全部:很多标签本身就不可靠

做空间域识别的时候,最常用的评估指标是ARI和NMI,计算模型聚类结果与人工注释之间的对齐程度。但有一个前提:人工注释本身是可信的。现实情况是,不同病理学家或神经解剖学家对同一张切片的注释边界常有分歧,尤其是过渡区域的标签。

有些模型在挑战公开数据集的基准上ARI低一些,但细看聚类结果更符合连续梯度结构,这种情况下我反而认为它更可信。我的建议是:评估一个模型时不能只看某个指标,至少要同时看空间聚类图谱、解剖学对应关系、区域边界连续程度,最好再结合标志基因验证——比如确定的空间域里是否富集已知的细胞类型标志基因。

5.2 组织学信息是否参与建模,是效果的分水岭

很多空间组学数据同时配有苏木精伊红染色图像。有些模型只依赖表达矩阵和坐标信息,有些模型会把染色图像特征也当作输入。区别在哪里?染色图像提供的是形态学信息,比如组织边界、细胞密度、坏死区域和免疫细胞聚集灶,这些形态特征帮助模型区分不同组织区域。

我观察到,在组织边界清晰的数据上,引入组织学信息能让聚类边界与可视解剖结构精确对齐;在边界模糊的过渡区域,组织学信息反而可能把模型往错误方向拉。不同方法处理组织学信息的粒度差异很大,有些只在输入层拼接深度图像特征,有些则在训练过程中反复与形态损失对齐。选择时,纯表达模型适合批量处理历史数据(很多老数据集没有染色图信息),而图像增强模型适合有清晰病理图像的新数据。

5.3 跨切片泛化:训练在A切片,用在B切片会发生什么

一个模型如果只能在某一张切片上表现好,那它实际价值要打折扣。我测试过好几个模型:在训练切片上ARI能到0.8以上,换一张全新的切片,直接掉到0.4左右。跨切片泛化能力差的原因主要是模型记住了训练切片的特异性结构,比如某些组织区域的绝对表达水平、某些区域的形态特征,而不是学到通用的组织层结构规则。

目前实用性的对策是:多个切片时尽量做联合训练;如果只有一张训练切片,就尽量在该切片的多个不同区域做交叉验证;实在不可行,则宁可选择更简单的模型——简单模型通常对数据特异性的过拟合程度更低。

6. 下一步值得关注的方向与我的个人体会

空间组学配深度学习的赛道发展很快,热点走马灯似的换。作为实际使用者,我关注的不是哪篇论文多惊艳,而是哪些方向会真正改善我的日常分析效率和数据结果质量。

6.1 多组学空间整合已经摆上台面

空间转录组正在和空间蛋白组学、染色质可及性数据结合。未来的深度学习模型不能只吃一个表达矩阵,而是要学习“不同组学层面在空间上的联合结构”。这个方向对模型架构提出了新挑战:数据自带不同的噪声模型、分辨率尺度不一致、覆盖范围不同。现阶段我判断还处于方法探索期,但一旦成熟,对疾病微环境的理解会是质变。

6.2 空间基础模型:预训练再微调的风向

单细胞领域已经出现了大规模预训练基础模型,空间组学迟早也会跟上。想象一下:先在大量公开切片数据上做自监督预训练,让模型学到“组织结构的一般规律”,然后拿到你自己数据集上做轻量微调。这样做的好处是,小样本数据也能获得稳定的空间嵌入,不用每次从头调参。目前该方向还比较初步,但值得保持关注。

6.3 给正在入门的人一个务实建议

我个人的建议是:不要一开始就追求最新最深的模型。先把数据质量控制做扎实,把一个轻量模型(比如BayesSpace或SpatialPCA)跑透;再用GNN类方法横向对比;等任务需求明确到“确实需要分析复杂空间模式”时,再转向更重的Transformer或生成模型。“从简单起步、逐步加深”的路径,比一上来就跑大模型靠谱得多,也更容易排掉数据本身的坑。

选择什么模型,最终还是取决于你的科学问题和数据特性。深度学习和空间组学的结合,本质上是用更强的表示能力去换对组织结构的更深理解。对普通分析用户来说,真正重要的是理解任务需求、把预处理和验证做扎实,然后在适当的场景里拥抱这些新工具。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询