5

我使用 clustal omega 获得了 500 个蛋白质序列的距离矩阵(它们彼此同源)。

我想使用亲和力传播来聚类这些序列。

最初,因为我用手观察到距离矩阵只有 0 和 1 之间的值,0 距离 = 100% 的同一性,所以我推断我可以采取(1 - distance)获得亲和力。

我运行了我的代码,集群看起来很合理,我认为一切都很好......直到我读到通常,亲和力矩阵是通过应用“热核”从距离矩阵计算出来的。就在那时,我脑海中的一切都乱了套。

我是否得到了不正确的亲和矩阵的概念?有没有一种简单的方法来计算亲和矩阵?scikit-learn 提供以下公式:

similarity = np.exp(-beta * distance / distance.std())

但什么是贝塔?我知道 distance.std() 是距离的标准偏差。

我现在对所涉及的概念(而不是实际的编码实现)感到非常困惑和迷失,所以非常感谢任何帮助!

PS 我已经尝试在 Biostars.org 上发帖,但我还没有得到答案......

4

1 回答 1

3

我认为 1-distance 和 exp(-beta * distance) 都是将距离转换为相似度的有效方法(尽管它们在概率框架中的解释不同)。我会简单地使用能带来更好结果的东西。

于 2014-02-13T19:58:22.613 回答