2

我用 mothur 建了一棵树,它生成了一个 newick 格式文件,这里是树文件:

(((X32:0.077342,(X13:0.030507,X5:0.032193):0.081108):0.009719,((((((((((X7:0.011658,X16:0.020922):0.004990,X9:0.011395):0.026780,X23:0.044775):0.091180,X100:0.154611):0.041705,((((X8:0.020255,X42:0.008695):0.029872,(X19:0.025754,X61:0.020516):0.036208):0.084498,X218:0.111857):0.022793,X239:0.176169):0.011033):0.063911,(X18:0.070163,X146:0.072237):0.050456):0.014607,(X24:0.065513,X78:0.067187):0.052101):0.010160,X25:0.105835):0.011914,X45:0.130995):0.009387,((X10:0.021955,(X4:0.016382,X1236:0.016838):0.004625):0.036976,X128:0.056704):0.033204):0.006892),(((X6:0.020583,X11:0.012977):0.062459,(X1:0.030791,X22:0.025639):0.033446):0.009294,(X49:0.049533,X3:0.048877):0.011889):0.010353);

当我尝试使用 import_mothur {phyloseq} 将其导入 R 时,它给了我错误

Error in `taxa_names<-`(`*tmp*`, value = c("X32", "X13", "X5", "X7", "X16",  : 
  taxa_names<-: You are attempting to assign duplicated taxa_names

我查看了这个树文件,找不到任何重复的名称。我在 mothur 中使用了不同的数据集(序列数据),但使用了相同的方法,这很有效。我只是不明白这个文件有什么问题?

谢谢!!!!

4

2 回答 2

3

我自己也遇到了这个错误。对我有用的解决方案是使用 phytools 包中的 read.newick() 命令将树文件读入 R。从那里您可以使用 phy_tree() 和 merge_phyloseq 将树导入 phyloseq。出于某种原因,ape 中的 read.tree 命令不喜欢清晰格式化的 newick 文件。

xtree <- read.newick("test.tree") phy_xtree <- phy_tree(xtree) # Constructor for phy_tree object physeq_merged <- merge_phyloseq(physeq, phy_xtree) # Merge tree into phyloseq object

于 2016-03-30T20:58:52.170 回答
1

该文件实际上是read.treeape包中读取的。由于某种原因,它不喜欢这个文件的格式。我承认我不熟悉这种文件格式,但如果你用

xtree <- read.tree("test.tree")
plot(xtree)

在此处输入图像描述

您会看到有一些未命名的提示。这些是造成问题的原因。read.table 函数将这些分配给 NODE 值而不是 TIP 值。import_mothur您可以“修复”树并获得与使用相同的结果

xtree$tip.label[c(26,28,30)]<-paste0("X", c(6,1,49))
phyloseq(xtree)

所以我猜你的 newick 格式文件有问题,或者ape::read.tree函数中存在错误。

于 2014-12-12T06:27:30.070 回答