首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ETE3:如何在.get_topology生成的树上获取不同的属性

ETE3:如何在.get_topology生成的树上获取不同的属性
EN

Stack Overflow用户
提问于 2016-09-16 02:35:55
回答 1查看 322关注 0票数 0

我在列表上使用.get_topology创建了一个系统树,但我不能将科学名称和排名添加到节点上。具体地说:

代码语言:javascript
复制
from ete3 import NCBITaxa, Tree, TreeStyle, NodeStyle

Ltax = [561863, 333367, 518636, 1262999, 657322, 550540, 44012, 748224, 518636, 1309411]
ncbi = NCBITaxa()
t = ncbi.get_topology(Ltax, intermediate_nodes=False)

我尝试使用:

代码语言:javascript
复制
tax2names, tax2lineages, tax2rank = t.annotate_ncbi_taxa()
ncbi.annotate_tree(t, taxid_attr='name', tax2name=tax2names, tax2track=tax2lineages, tax2rank=tax2rank)

但它返回的是空字典。我希望节点在相应的属性下有它们的等级、sci名称和税务ids。我做错了什么?

谢谢,阿拉什

EN

回答 1

Stack Overflow用户

发布于 2016-09-16 18:30:53

好的,我通过试错找到了答案。从ete3导入NCBITaxa,树

代码语言:javascript
复制
Ltax = [561863, 333367, 518636, 1262999, 657322, 550540, 44012, 748224, 518636, 1309411]
ncbi = NCBITaxa()
t = ncbi.get_topology(Ltax, intermediate_nodes=False)
ncbi.annotate_tree(t, taxid_attr='name')

这将注解树,您可以通过遍历节点来检查注解:

代码语言:javascript
复制
 for node in t.iter_descendants("postorder"):

    #print(node.name)
    #print(node.species)
    #print(node.named_lineage)
    #print(node.lineage)
    #print(node.sci_name)
    print(node.rank)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39518133

复制
相关文章

相似问题

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