4. 两种算法核心假设对比分析归纳总结
说实话,选算法前,你得先弄明白它们各自的“底牌”。BayesSpace和SpaGCN,一个是从贝叶斯派出来的,一个是图神经网络拥趸,核心假设完全不同。我在项目里吃过这个亏——照搬参数跑SpaGCN,结果空间连续性很差;换BayesSpace一跑,反而更贴切片形态。今天我就把这两套假设拆开揉碎了讲。
4.1 空间依赖性的建模方式
这是最根本的分歧点。
BayesSpace 假设:空间上相邻的spot(或细胞),其表达模式应该相似。它用一个马尔可夫随机场(MRF)先验来模拟这种依赖。你想想看,每个spot的隐藏状态,只取决于它周围紧邻的几个邻居。这种“近邻影响”假设,在组织切片上确实很自然——细胞组团嘛,功能相似的细胞通常待在一块。
SpaGCN 则用了图卷积网络(GCN)。它把每个spot看成图上的节点,根据物理距离或表达相似性构建边。然后通过多层图卷积,聚合邻居节点的特征信息。它没有显式假设“只受邻居影响”,而是通过注意力机制或固定权重,学到邻居贡献的权重。
我个人的习惯是:如果切片结构清晰(比如大脑皮层分层),BayesSpace的MRF假设更稳;如果组织边界模糊、或者你想捕捉长距离的空间交流,SpaGCN的图结构更灵活。
| 维度 | BayesSpace | SpaGCN |
|---|---|---|
| 空间依赖形式 | 马尔可夫随机场(MRF) | 图卷积网络(GCN) |
| 邻居定义 | 固定半径内的K个近邻 | 可学习或预定义的图边 |
| 参数共享方式 | 所有邻居共享相同平滑参数 | 不同边可以学习不同权重 |
| 空间范围 | 局部(仅直接邻域) | 可通过多层图卷积捕获更大范围 |
4.2 先验分布与概率解释
BayesSpace是纯正的贝叶斯路子。它对每个聚类标签和空间平滑参数都设置了先验分布,然后通过MCMC抽样得到后验分布。说白了,它能告诉你“这个spot属于该聚类的置信度”,而不仅仅是一个硬分类。
SpaGCN没有显式的先验。它把空间关系编码在图结构中,通过优化一个交叉熵损失来学习聚类分配。它的输出是softmax概率,但那个概率不是后验,只是神经网络最后一层的激活值。我遇到过学生问“为什么SpaGCN的概率比BayesSpace高?”,其实是因为BayesSpace的MCMC会给不确定性留空间,概率通常更“保守”。
4.3 图像与空间坐标的利用
BayesSpace有个很妙的假设:它认为组织切片上H&E图像的亮度或染色密度,也能反映空间结构。它引入了一个比例因子,将图像特征转化为空间权重。如果某个spot周围图像亮度突变,BayesSpace会认为那里可能是一个组织边界,从而降低空间平滑强度。
SpaGCN就纯粹多了,只吃空间坐标(x,y)和基因表达矩阵。它不碰任何图像信息。这种做法让SpaGCN更“干净”,不受图像染色质量的影响,但同时也丢失了组织形态学信息。在我处理肿瘤异质性样本时,图像信息其实非常重要——坏死区、纤维区在图像上一眼就能看出来,BayesSpace能利用这点,SpaGCN则完全依赖坐标距离。
4.4 数据预处理与归一化策略
这部分有坑,我掉进去过好几次。
BayesSpace 默认要求数据经过log-transformation 和缩放,因为它假设表达值符合泊松或负二项分布,但实际代码里为了简化,用了对数归一化后的高斯似然。如果你的原始数据没有归一化,bayesSpace会报奇怪的错误。
SpaGCN 对数据预处理容忍度更高。它内部会自己做一个简单的标准化(按spot的总count缩放),然后还能接受原始counts作为输入。我建议:如果数据量很小(比如只有1000个spot),保留原始counts用SpaGCN,能避免很多归一化带来的伪信号。
· BayesSpace:需要log-normalized counts,推荐使用Seurat或SCTransform预处理。
· SpaGCN:可直接使用raw counts,但建议结合scale_factor参数调整。
4.5 一个简单的选择决策图
下面这张图,是我自己动手画的,帮你理清两种算法各自的假设路径。注意,这张图只反映核心假设差异,不是完整的算法流程图。
4.6 归纳总结:什么时候选谁
我做了张对比表,把两个算法的核心假设和适用场景彻底列清楚。你在项目立项时,先花5分钟对照这张表,就能避掉80%的坑。
| 决策维度 | 偏好BayesSpace | 偏好SpaGCN |
|---|---|---|
| 数据规模 | 单样本切片(1万~5万spot) | 多样本合并或大规模(>10万spot) |
| 组织形态清晰度 | 有H&E图像,并且染色质量好 | 只依赖坐标,不在乎图像 |
| 需要的输出类型 | 聚类好需要不确定性度量 | 只要求硬聚类,不关心后验 |
| 计算资源 | 可接受MCMC耗时(30min+) | GPU加速,通常几分钟完成 |
| 空间连续性要求 | 组织边界明显,希望分割清晰 | 无严格边界,追求全局分组 |