从距离矩阵计算亲和度矩阵

eri*_*mjl 5 python bioinformatics affinity

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

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

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

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

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

similarity = np.exp(-beta * distance / distance.std())
Run Code Online (Sandbox Code Playgroud)

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

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

PS 我试过在 Biostars.org 上发帖,但我还没有在那里得到答案......

小智 3

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