我已经对齐了类中的序列phyDat
。这是一个最小的例子:
library(seqinr)
seqs <- DNAMultipleAlignment( c(a1 = "------ATGTTCATTAACCGCTGACTATTCTCAACCA",
a2 = "------ATGTTCACCGACCGCTGACTATTCTCTACAA",
a3 = "---GTGACCTTCATCAACCGATGATTATTCTCAA---",
a4 = "---TCAGTCGTCACCAGGCGTTG-CAGGACCCGAC--",
a5 = "ATGGGGGTCTTCCTCA-TCGCCGTCGCCGCGT-----"))
library(phangorn)
phyDat_seqs <- as.phyDat(seqs)
我按照phangorn 包的手册构建了系统发育树。(下面我写了一个简化的代码,不用查手册,直接运行代码即可。)
dm <- dist.ml(phyDat_seqs)
treeNJ <- NJ(dm)
fit <- pml(treeNJ, data=phyDat_seqs)
fitGTR <- optim.pml(fit, model="GTR")
bs <- bootstrap.pml(fitGTR, bs=5, optNni=TRUE)
我可以简单地绘制这棵树plotBS
:
plotBS(fitGTR$tree, bs, type="p")
到目前为止没有问题。我的问题从这一点开始。
我想通过使用ggtree
包来自定义这棵树,但我不知道该怎么做。当我使用ggtree(fitGTR$tree)
时,它给了我一棵不同的树。
plotBS
以某种方式使用bs
值来更改树分支。如果你比较plot(fitGTR$tree, type="p")
和plotBS(fitGTR$tree, bs, type="p")
差异很容易看出。ggtree()
并 plot()
构建相同的树,但不是我要自定义的树。
我尝试了不同的方法,例如使用write.tree
或write.nexus
函数保存树并使用包函数再次调用文件,ggtree
但我无法保存plotBS
树的版本。如何获得plotBS
树的输出?
先感谢您。