【问题标题】:add taxa manually to phylogenetic tree in R将分类群手动添加到 R 中的系统发育树
【发布时间】:2020-08-05 08:55:35
【问题描述】:

我在 R 中有一个系统发育树,目前变量是分类名称。我想从 data.frame 分配 taxa_names(树基于所述 data.frame)。

 matrix <- data.frame(row.names = c('aa','bb','cc'),aa=c(0,1,1),bb=c(1,1,0),cc=c(0,1,1))
> matrix
   aa bb cc
aa  0  1  0
bb  1  1  1
cc  1  0  1

d.matrix <- dist(matrix)
h.matrix <- hclust(d.matrix) %>% ape::as.phylo(.)

分类群名称是aa,bb,cc。但我想将taxa_names 设置为ta。这些字母来自data.frame dd

dd <- data.frame(row.names = c('aa','bb','cc'),values = c('t','a','a'))
> dd
   values
aa      t
bb      a
cc      a

dd 实际上有更多的列,但我在这里缩短了。

如何在 R 中手动设置树的分类名称?所需的分类名称在 data.frame 中指定

编辑:我尝试了taxa_names &lt;- c()AssignTaxonomy()(来自dada2 包)但没有成功

【问题讨论】:

  • 您想重命名矩阵的列、修改其行名,或者将分类单元名称添加为附加列,还是其他?请提供您想要的输出。 “data.frame d”也应该是“data.frame dd”吗?您是否使用特定的软件包?我猜AssignTaxonomy() 不是基础 R 的一部分...
  • @Limey 我编辑了我的帖子...

标签: r phylogeny


【解决方案1】:

首先,我发现将数据读取为character 而不是factor(data.frames 的默认值)是一种很好的做法。这可以通过使用stringsAsFactors 参数来完成:

dd <- data.frame(row.names = c('aa','bb','cc'),values = c('t','a','a'), stringsAsFactors = FALSE)

然后您可以直接将名称分配给phylo 对象的特定条目(您可以根据需要重新排序):

h.matrix$tip.label = dd$values

了解更多phylo类检查https://www.rdocumentation.org/packages/ape/versions/2.6-3/topics/read.tree

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 2021-01-15
    • 2015-05-14
    • 1970-01-01
    • 2022-11-17
    • 1970-01-01
    相关资源
    最近更新 更多