私はBioconductorのggtree
パッケージを使用して2つの系統樹をプロットしています。基本的にはggplot2のように機能し、外部のCSVファイルで設定されたクラスに合わせてtipラベルの美しさを変更したいと考えています。系統樹に外部データを注釈しますか?
私は、同じ50遺伝子の2つの異なるクラスタリングを含むmultiPhyloオブジェクトを持っています(この例では6つのふりをします)。私がmultitree[[1]]$tip.label
とmultitree[[2]]$tip.label
を評価するとき、彼らは私に同じ順序で同じリストを与えるので、プロットが異なって表示されている間に、遺伝子は同じ順序で保存されます。
library(ggtree)
library(ape)
mat <- as.dist(matrix(data = rexp(200, rate = 10), nrow = 6, ncol = 6))
nj.tree <- nj(mat) ### Package ape
hclust.tree <- as.phylo(hclust(mat))
multitree <- c(nj.tree, hclust.tree)
Iは、これらのツリーをプロットした後、それらは既存の文献に記載されている5つのクラス(A、B、C、D、及びE)のどちらに基づいて外部データとそれらを注釈します。
write.csv(multitree[[1]]$tip.label, "Genes.csv")
このコマンドを使用して、各遺伝子の正しい順番でCSVファイルを作成しました(該当するかどうかはわかりません)。私は手動で各遺伝子に隣接する列に対応するクラスレターを手動で入力しました。これは次のようになります。
Gene Class
1 A
2 A
3 D
4 C
5 B
6 E
などです。
外部CSVテーブルで定義されている色に対応するように、ツリー上のチップラベルの色に注釈を付ける必要があります。私はそれがgeom_tiplab(aes(color=something something something))
のように見えるだろうと知っていますが、それは私のCSV内のデータを読み取るようにする方法を知らないで、multitree
のデータではありません。私のggtreeコマンドの外観は次のとおりです
myTree <- ggtree(multitree[[i]], aes(x, y)) +
ggtitle(names(multitree)[i]) +
geom_tiplab() + ### What I want to annotate with color
theme_tree2() +
coord_fixed(ratio = 0.5)
print(myTree) ###Occurs within a for loop, forces ggplot output to display
CSVファイルサンプル(Gene、Class)の値は、 'multitree [$ 1] $ tip.label'の値にどのように対応していますか?それらの間に一致する値はありません。 – eipi10
CSVファイルの遺伝子名はtip.labelの名前から直接出力されます。つまり、彼らは名前の順序と同じ名前を持っていることを意味します。各遺伝子がどのクラスに属しているかに関する情報を外部に追加することができる他の方法はありますか? –
あなたの例では 'multitree [[1]] $ tip.label'は1から50までの値を持っています。CSVの例ではそのような値はありませんので、' tip.label'がどの行をCSVファイル?また、5つまたは6つのチップラベルを作成し、「tip.label」と「Class」をマッチさせた(CSVファイルに類似した)データフレームを作成した場合に役立ちます – eipi10