2011-05-10 57 views
2

我有用Java編寫的集羣代碼,從中我可以創建一個嵌套的樹結構,例如,下面顯示了第一次迭代中聚集了兩個「isRetired」對象的樹的一小部分,並且該組在第五次迭代中與「setIsRequired」聚類。括號中顯示了簇中對象之間的距離。如何使用在別處創建的預集羣數據在R中創建樹狀圖?

|+5 (dist. = 0.0438171125324851) 
    |+1 (dist. = 2.220446049250313E-16) 
     |-isRetired 
     |-isRetired 
    |-setIsRetired 

我寧願出現在更傳統的樹狀圖的風格我的結果,它看起來像R有一些不錯的功能,但因爲我知道關於R非常小,我是如何利用他們不清楚。

是否有可能將Java結構寫入文件,然後用幾行R代碼生成樹形圖?從R計劃,我想這樣做:(?一「hclust」對象)從一個文件

  1. 讀入的數據結構
  2. 轉換數據結構爲樹形圖(使用「作爲-dendrogram情節‘

我想問題歸結爲R是否提供了從文件中讀取並且該字符串輸入轉換成(hclust一種簡單的方法「?)

  • 使用顯示樹形圖’)對象。如果是這樣,輸入文件中的數據應該是什麼樣子?

  • 回答

    3

    我認爲你要找的是phylog。您可以用Newick符號將文件打印在文件中,解析出來並構建一個可輕鬆可視化的phylog對象。網頁的結尾給出了一個如何做到這一點的例子。你也可以考慮phylobase。儘管您不希望這些包提供的全部功能,但您可以搭載它們用於表示樹和其繪圖功能的構造。

    編輯:它看起來像一個類似的問題已經問here之前提供了一個更簡單的解決方案。所以基本上,你需要在這裏編碼的唯一東西就是你的Newick解析器或者你想從Java輸出的任何其他表示的解析器。

    +0

    +1指向其他工具和Newick符號。我希望花費比在R中編寫解析器更少的工作。我希望能夠與hc2Newick(http://ugrad.stat.ubc.ca/R/library/ctc/html/hc2Newick.html)互補。與此同時,Dendroscope(http://ab.inf.uni-tuebingen.de/software/dendroscope/)看起來像是一種有前途的工具,可以用Newick格式繪製樹狀圖。 – kc2001 2011-05-12 00:54:06

    +0

    在仔細觀察之後,我發現phylog和phylobase似乎都使用了ape軟件包,所以它似乎是迄今爲止最「最小」的軟件包(雖然它比*只有樹狀圖更多*)。 – kc2001 2011-05-16 05:00:00

    0

    ape(分析系統發育和進化)軟件包包含樹狀圖繪製功能,並且它能夠讀取Newick format中的樹。因爲它是一個可選包,你需要install它。理論上容易使用,例如以下命令可以生成一個樹狀圖:

    > library("ape") 
    > gcPhylo <- read.tree(file = "gc.tree") 
    > plot(gcPhylo, show.node.label = TRUE) 
    

    Dendrogram produced using APE

    我的主訴迄今的是,很少有診斷信息時,有含在Newick格式樹信息的文件的語法麻煩。我已經成功地用其他工具讀取這些相同的文件(在某些情況下,這可能是因爲這些工具在語法上可以忽略某些錯誤)。

    您還可以使用phylog軟件包生成樹狀圖,如下所示。

    > library(ade4) 
    > newickString <- system("cat gc.tree", intern = TRUE) 
    > gcPhylog <- newick2phylog(newickString) 
    > plot(gcPhylog, clabel.nodes=1) 
    

    Dendrogram produced using Phylog

    既可以在Newick格式樹木工作,都有許多繪圖選項。