首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重复提示标签去除:在R中导入系统发生树以供比较

重复提示标签去除:在R中导入系统发生树以供比较
EN

Stack Overflow用户
提问于 2018-07-10 09:13:23
回答 3查看 1.9K关注 0票数 2

问题:

我正在尝试导入newick格式的系统发育树,我以前已经这样做过,(一棵以同样的方式制作的树,所以代码工作!)然而,这棵树似乎是问题所在。我收到了一个重复的提示标签错误。如果是这样的话,有没有一种方法可以很容易地删除R中的重复提示呢?

当前代码:

代码语言:javascript
复制
library(ape)
library(geiger)
library(caper)


taxatree <- read.tree("test2.tre")
sumdata <- read.csv("ogtprop.csv")
    sumdataPGLS <-data.frame(A=sumdata$A,OGT=sumdata$OGT, Species=sumdata$Species)


sumdataPGLS$Species<-gsub(" ", "_", sumdata$Species)
#this line inserts an underscore between species and genus in my dataframe, (as the tree is formatted like this)

comp.dat <- comparative.data(taxatree, sumdataPGLS, "Species")

在最后一行之后,我得到了以下错误:

代码语言:javascript
复制
Error in comparative.data(taxatree, sumdataPGLS, "Species") : 
  Duplicate tip labels present in phylogeny 

这表明问题纯粹在于系统发育,而不是数据。

期望的结果:

一种删除R中重复提示标签的方法

输入数据:

不幸的是,树太大了,我不能把它全部放在这里,但是这里有一个数据子集(注意,这本身不起作用),我在这里介绍它,以防系统错误对其他人来说是显而易见的:

代码语言:javascript
复制
(((('Acidilobus_saccharovorans':4,'Caldisphaera_lagunensis':4)Acidilobales:4,
('Sulfurisphaera_tokodaii':4,('Metallosphaera_hakonensis':4,
'Metallosphaera_sedula':4)Metallosphaera:4,('Acidianus_sulfidivorans':4,
'Acidianus_brierleyi':4)Acidianus:4,('Sulfolobus_metallicus':4,
'Sulfolobus_solfataricus':4,'Sulfolobus_acidocaldarius':4)Sulfolobus:4)
Sulfolobaceae:4,(('Pyrolobus_fumarii':4,'Hyperthermus_butylicus':4,
'Pyrodictium_occultum':4)Pyrodictiaceae:4,('Aeropyrum_camini':4,
('Ignicoccus_hospitalis':4,'Ignicoccus_islandicus':4)Ignicoccus:4,   
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-07-10 14:22:46

一个可能的解决方案,因为问题似乎是输入到'phylo‘类的树的格式,在本例中,内部节点有名称,其中一些名称与属相同。

“清理”树的一种方法是格式化它,我找到的一种方法就是通过python包: ete3 (http://etetoolkit.org/)。

代码语言:javascript
复制
from ete3 import Tree
import sys

t = Tree(sys.argv[1], format=1)

t.write(format=5, outfile="test4.tre")

有用的函数是t.write(format=5,format = 5,意味着它以一种可以接受的类型写入,在这种情况下,在R中使用的是comparitive.data函数,没有内部节点名。

票数 1
EN

Stack Overflow用户

发布于 2020-08-15 23:53:46

我的比较数据也遇到了同样的问题。我有:

代码语言:javascript
复制
maxillariinae <- comparative.data(tree_gs, data.000, spp_code, vcv=TRUE, vcv.dim=3)
>Error in comparative.data(tree_gs, data.000, spp_code, vcv = TRUE, vcv.dim = 3) : 
>Labels duplicated between tips and nodes in phylogeny

我用一种非常简单的方式解决了这个问题:

代码语言:javascript
复制
# Removing node labels:
tree_gs$node.label<-NULL

然后当我尝试设置比较数据时,它只是起作用了。我接下来做的pgls也起作用了。我希望它对你有用。

票数 2
EN

Stack Overflow用户

发布于 2019-04-10 01:45:59

我遇到了同样的问题,因为除了距离之外,我的Newick树还包含了引导支持值。在删除支持值之后,>comparative.data工作得很好。(引导值为0.97.-0.99.)这里是原始的和修改过的树木:

原创

代码语言:javascript
复制
((Alligator:0.09129139,(Turtle:0.12361699,(Lizard:0.18330984,
((TasmDevil:0.02519765,Opossum:0.01841396)0.998733:0.03121792,
(Armadillo:0.05330751,((Cow:0.12244558,Dog:0.07483858)0.983085:0.02485452,
(Mouse:0.14438626,GuineaPig:0.03974587)0.972224:0.02107559)0.889194:0.01974521)
0.99985:0.03529365)0.99985:0.18024398)0.988266:0.074151)0.974215:0.11888747)
:1.0964437,Frog:1.0964437):0.0;

已修订

代码语言:javascript
复制
((Alligator:0.09129139,(Turtle:0.12361699,(Lizard:0.18330984,
((TasmDevil:0.02519765,Opossum:0.01841396):0.03121792,
(Armadillo:0.05330751,((Cow:0.12244558,Dog:0.07483858):0.02485452,
(Mouse:0.14438626,GuineaPig:0.03974587):0.02107559):0.01974521):0.03529365)
:0.18024398):0.074151):0.11888747):1.0964437,Frog:1.0964437):0.0;
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51261388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档