首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ete3获取祖先节点编号

使用ete3获取祖先节点编号
EN

Stack Overflow用户
提问于 2020-11-20 00:35:13
回答 1查看 108关注 0票数 1

我需要在ete3中获取树中的节点号。

下面是一个树的示例:

代码语言:javascript
复制
rooted_tree = Tree( "((A,B),(C,D));" )

print rooted_tree
#
#          /-A
#     /---|
#    |     \-B
#----|
#    |     /-C
#     \---|
#          \-D

假设我想要AB的祖先的节点号,我如何获得它?我只知道这么做:

代码语言:javascript
复制
ancestor = tree.get_common_ancestor("A","B")

但是像ancestor.node_numberancestor.num这样的东西不起作用..。

EN

回答 1

Stack Overflow用户

发布于 2021-01-10 22:39:03

ete树中的所有节点都是对象,它们没有编号,但它们有一个标记为拓扑透视的哈希ID

您可以通过以下方式访问这些拓扑id

代码语言:javascript
复制
ancestor = tree.get_common_ancestor("A","B")
print(ancestor.get_topology_id())

引用自ete3文档:

get_topology_id(attr='name') 2.3版中的新功能。

返回表示当前树的拓扑的唯一ID。具有相同拓扑的两个树将产生相同的id。如果树是无根的,请确保根节点不是二进制的,或者在生成拓扑id之前使用tree.unroot()函数。

这对于检测一组树上的独特拓扑的数量很有用,而不需要全距离方法。

缺省情况下,id是根据终端节点的名称计算的。可以使用任何其他节点属性来代替。

进一步参考:http://etetoolkit.org/docs/latest/reference/reference_tree.html#get_topology_id

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64916000

复制
相关文章

相似问题

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