2013-04-20 114 views
3

我使用clustal omega得到500个蛋白质序列的距离矩阵(它们彼此是同源的)。从距离矩阵计算亲和力矩阵

我想使用亲和力传播来聚类这些序列。最初,因为我手工观察到距离矩阵只有0和1之间的值,并且0距离= 100%的同一性,我推断我可以采取(1 - distance)来获得亲和力。

我运行了我的代码,并且集群看起来很合理,我认为一切都很好......直到我通常阅读通过应用“热内核”从距离矩阵计算亲和矩阵。那时候我脑子里所有的东西都爆发了。

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

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

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

我很困惑,现在丢掉了所涉及的概念(与实际的编码实现相对),因此非常感谢所有帮助!

P.S.我已经试过张贴到Biostars.org,但我还没有得到一个答案有...

+0

该代码来自哪里,具体是什么? – 2013-04-21 02:09:52

+0

代码来自此页:http://scikit-learn.org/dev/modules/clustering.html – ericmjl 2013-04-22 18:06:09

+0

这有助于@MichaelHoffman! – ericmjl 2013-04-24 04:41:07

回答

2

我认为无论1-距离和EXP(-β*距离)是一个距离转换成相似度有效方法(尽管它们在概率框架中的解释不同)。我会简单地使用提供更好结果的方法。