无法 save/write 树数据 plotBS() 结果
Unable to save/write tree data that plotBS() results
我在 phyDat
的 class 中对齐了序列。这是一个最小的例子:
library(seqinr)
seqs <- DNAMultipleAlignment( c(a1 = "------ATGTTCATTAACCGCTGACTATTCTCAACCA",
a2 = "------ATGTTCACCGACCGCTGACTATTCTCTACAA",
a3 = "---GTGACCTTCATCAACCGATGATTATTCTCAA---",
a4 = "---TCAGTCGTCACCAGGCGTTG-CAGGACCCGAC--",
a5 = "ATGGGGGTCTTCCTCA-TCGCCGTCGCCGCGT-----"))
library(phangorn)
phyDat_seqs <- as.phyDat(seqs)
我按照manual of phangorn package构建了系统发育树。 (下面我写了一个简化代码,不用看说明书,直接运行代码即可)
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
树的输出?
提前谢谢你。
出现问题是因为我误读了文档。我在这一行中犯了一个错误:
plotBS(fitGTR$tree, bs, type="p")
必须通过midpoint()
函数构造树。因此,当我将行更改为:
plotBS(midpoint(fitGTR$tree), bs, type="p")
没有出现问题。我可以使用 ggtree
并且我可以 save/write 树数据没有问题。
即使我无法弄清楚 midpoint()
函数对树的实际作用(您可以对此发表评论),问题也已解决。
我在 phyDat
的 class 中对齐了序列。这是一个最小的例子:
library(seqinr)
seqs <- DNAMultipleAlignment( c(a1 = "------ATGTTCATTAACCGCTGACTATTCTCAACCA",
a2 = "------ATGTTCACCGACCGCTGACTATTCTCTACAA",
a3 = "---GTGACCTTCATCAACCGATGATTATTCTCAA---",
a4 = "---TCAGTCGTCACCAGGCGTTG-CAGGACCCGAC--",
a5 = "ATGGGGGTCTTCCTCA-TCGCCGTCGCCGCGT-----"))
library(phangorn)
phyDat_seqs <- as.phyDat(seqs)
我按照manual of phangorn package构建了系统发育树。 (下面我写了一个简化代码,不用看说明书,直接运行代码即可)
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
树的输出?
提前谢谢你。
出现问题是因为我误读了文档。我在这一行中犯了一个错误:
plotBS(fitGTR$tree, bs, type="p")
必须通过midpoint()
函数构造树。因此,当我将行更改为:
plotBS(midpoint(fitGTR$tree), bs, type="p")
没有出现问题。我可以使用 ggtree
并且我可以 save/write 树数据没有问题。
即使我无法弄清楚 midpoint()
函数对树的实际作用(您可以对此发表评论),问题也已解决。