2013-04-20 321 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(-β*距離)是一個距離轉換成相似度有效方法(儘管它們在概率框架中的解釋不同)。我會簡單地使用提供更好結果的方法。