2011-09-16 5 views
4

ツリー(Javaプログラムの出力)をRの樹形図に変換するにはどうすればよいですか?Rをツリーの樹形図に変換するには?

現在、私はhereの提案を使用して、ツリーをNewick形式に変換しています。そして私はNewickのフォーマットのツリーを読み取るためにRにapeパッケージを使用します。

library("ape") 
cPhylo <- read.tree(file = "gc.tree") 

は最後に、私は、樹状図の中に木を変換するために、Rでas.hclustを使用します。

dendrogram <- as.hclust(gcPhylo) 

はしかし、系統樹は必要ですブランチの長さ。私は枝の長さを挿入しますが、私は木がultrametricないというエラーを取得しています:as.hclust.phyloで

エラー(gcPhylo):木は私が推測

ultrametricではありません私はブランチの長さを挿入している間何か間違っています。

私が従うことができる他の方法はありますか?または、ツリーをNewick形式に変換する際に、どのようにブランチ長を挿入できますか?等しいブランチの長さは問題ありません。

+0

あなたはNewickのフォーマットのファイルから系統樹のオブジェクトを読み取るためにDECIPHERパッケージを使用することができます'hclust'です。したがって、あなたのコードは間違いなく動作しません。どのように動作させるかに関しては、私は申し訳ありませんが、私は手がかりを持っていません。 – Andrie

+0

これは、ブランチの長さとは関係がないことを意味します。したがって、as.hclustを使用して変換することはできません。次に別の方法を見つける必要があります。 – Burcu

答えて

2

私の問題は実際にあなたの "gc.tree"は超大型ではないと思います。根元から各先端までの距離が同じであることを確認してください。次のコードは動作します:

library('ape') 
tree <- read.tree(text='(((A:4.2,B:4.2):3.1,C:7.3):6.3,D:13.6);') 
is.ultrametric(tree) 
is.binary.tree(tree) 
is.rooted(tree) 
hc <- as.hclust.phylo(tree) 

が、ツリー非ultrametric(D'sの支店長に注意してください)作る:

tree <- read.tree(text='(((A:4.2,B:4.2):3.1,C:7.3):6.3,D:15);') 

とas.hclust.phyloは、エラーが発生します。

2

これは古い質問ですが、これまでの回答は不十分です。私は同じ問題を抱えていたし、私のgooglefooは答えを見つける問題を抱えていたので、ここに行く:

library("ape") 
cPhylo <- read.tree(file = "gc.tree") 
dendrogram <- chronos(cPhylo) 
4

をこれは古い質問ですが、前回の回答のすべてが変換される前ultrametric行われるためにツリーを必要とデンドログラムオブジェクトに渡します。 ?これが唯一のtwins` `クラスからオブジェクトを変換することができます - ` as.hclust`のヘルプを参照してください

dend <- ReadDendrogram(path_to_newick_file) 
関連する問題