バイオインフォマティクス複数のNewick形式の系統樹から樹形が同じものを抽出する必要に駆られたので備忘録を兼ねたまとめです。当たり前ですが、((A,B),(C,D));((C,D),(A,B));の2つのNewick形式は同じ樹形を表しており、((A,B),(C,D))((A,C),(B,D));の2つのNewick形式は異なる樹形を表しています。問題は、文字列としては異なる2つのNewick形式で樹形が同一かを判定しなければならない点にあります。枝長を無視して判定したいような場合には、さらに処理がややこしくなります。この辺りで頭が痛くなってきました。いう訳で既存のコードを探します。調べた結果、Rのapeパッケージにシンプルに樹形比較をしてくれる関数があるようなのでこれを利用します。インストール方法はごく普通です。install.packages("ape")使い方もシンプルです。apeのread.tree関数でNewick形式を読み込んで、all.equal.phylo関数で樹形が同じかを判定します。今回は文字列をそのまま読み込ませていますが、ファイルのパスを渡すこともできます。FALSE枝長を無視して樹形比較を行いたい場合は、use.edge.length引数をFALSEにします。デフォルトではTRUEになっています。以上をまとめて今回作った、Newick形式の系統樹ファイルを2つ受け取って、樹形が同じかを表示するプログラムを下に載せました。cat("different\n")}本当はPythonで作りたかったんですけどね。Rも勉強しないといけないってことですかね。Toolkitでノードに通し番号を付ける他人に説明するときなどに、系統樹のノードに番号が付いている...2018-10-26FastTreeの使い方まとめFastTreeは近似最尤法による系統樹推定プログラムです。大規模...2018-10-21IQ-Treeの使い方まとめIQ-Treeは最尤法による系統樹作成プログラムです。»プロフィール取り留めのないブログですがお役に立てれば幸いです。(7)月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。