上一篇总结了Spatial Shrunken Centroids Segmentation的基本算法原理,其中涉及到Spatially aware & Spatially aware structure-adaptive clustering这两个聚类算法。算法来自一篇2013年bioinformatics上的文章 Efficient spatial segmentation of large imaging mass spectrometry datasets with spatially aware clustering。这里简单总结一下,以免忘太快了。
算法是用来进行质谱数据的聚类的,其创新点是在聚类时使用了Spatially aware distance。和普通计算两个点相似度不同,该方法考虑到了两个点半径为r内所有点的综合距离。具体计算方法如下所示:
简单来说就是计算了两个像素所有对应的近邻的距离,然后计算加权平均。对于SA,权重
α
i
j
\alpha_{ij}
αij是普通的高斯加权,离中心点越远,权重越小;SASA是自适应加权,相比于SA,它还计算了近邻和中心的相似度,越不相似权重越小,以避免过度平滑。
但问题是这样计算,需要的空间复杂度太高了。因为每一个点都要计算加权之后和另外一个点的距离。所以本文就用了如下方法来降低空间复杂度 (参见下图)
1)假设r=1,则每一个像素需要考虑9个像素的intensity向量;
2)这九个像素的intensity向量本来是个
3
∗
3
∗
d
3*3*d
3∗3∗d的三维立方矩阵,加权之后把它展开,拼接成一个
1
∗
(
3
∗
3
∗
d
)
1*(3*3*d)
1∗(3∗3∗d)的一维向量;
3)所以对于所有n个像素,变换之后,可以得到一个
n
∗
(
3
∗
3
∗
d
)
n*(3*3*d)
n∗(3∗3∗d)矩阵,每一行都存放着加权的近邻intensity
4)但是这样带来的问题是,这维度也太高了。所以本文就用Fastmap进行了降维,将特征空间从
(
3
∗
3
∗
d
)
(3*3*d)
(3∗3∗d)维降到q维,然后k-means聚类;
整个算法过程如下图所示。如果看懂了上面的步骤,下图应该很容易理解、
Reference
- Alexandrov, T., & Kobarg, J. H. (2011). Efficient spatial segmentation of large imaging mass spectrometry datasets with spatially aware clustering. Bioinformatics, 27(13), i230-i238. doi:10.1093/bioinformatics/btr246
- Efficient spatial segmentation of large imaging mass spectrometry data sets with spatially-aware clustering - Theodore Alexandrov - ISMB/ECCB 2011 https://www.youtube.com/watch?v=_3U2Elt5CTI