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

时间:2013-04-20 19:25:56

标签: python bioinformatics affinity

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

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

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

我运行了我的代码,集群看起来很合理,我觉得一切都很好......直到我读到这一点,通常通过应用“热内核”从距离矩阵计算亲和度矩阵。那就是我脑子里一切都崩溃了。

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

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

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

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

P.S。我已经尝试过发布到Biostars.org,但我还没有得到答案......

1 个答案:

答案 0 :(得分:2)

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