如何从R内存中提取树?

时间:2015-05-27 20:09:41

标签: r phylogeny

我使用" sim.bd.taxa.age"创建了一个系统发育树。我只是想知道如何以newick格式导出树,因为它目前不是一个系统对象!

library(TreeSim)
Tree <- sim.bd.taxa.age(n=300, numbsim=1, lambda=2, mu=0.5, frac = 1, age=250, mrca = FALSE)

1 个答案:

答案 0 :(得分:0)

如果你看一下Tree的结构,

str(Tree)
List of 1
 $ :List of 5
  ..$ edge       : int [1:598, 1:2] 301 301 302 302 305 305 307 307 303 303 ...
  .. ..- attr(*, "dimnames")=List of 2
  .. .. ..$ : chr [1:598] "" "" "" "" ...
  .. .. ..$ : NULL
  ..$ tip.label  : chr [1:300] "t116" "t42" "t124" "t47" ...
  ..$ edge.length: num [1:598] 0.431 2.182 2.292 1.42 1.055 ...
  ..$ Nnode      : int 299
  ..$ root.edge  : num 245
  ..- attr(*, "class")= chr "phylo"

我们看到它返回一个长度为1的列表,其中包含类phylo的元素。据推测,它会为您请求的每个模拟返回一个树(numbsim)。要提取树,只需执行

Tree[[1]]

所以你可以用

写出三个
write.tree(Tree[[1]], "newtreefile.txt")

默认情况下将以Newick格式写出。