您好,我有一棵树,例如:
>>> print(tree)
/-A
--|
| /-B
\-|
| /-C
\-|
| /-D
\-|
\-E
tree=Tree("(A,(B,C,(D,E)));") (ete3 function)我正在寻找一种方法来查看与特定叶子最接近的叶子。
例如,这里与C关系最密切的叶子是D和E.,与D关系最密切的叶子是E,与B关系最密切的叶子是C, D和E.
发布于 2020-03-30 00:44:32
在这种情况下,“最接近”的定义很棘手,但您所描述的内容可以通过以下代码轻松实现(请注意,代码中的树缺少一个括号):
In [1]: from ete3 import Tree
...:
...: tree=Tree("(A,(B,(C,(D,E))));")
...: c_node = tree & 'C'
...: for sister_node in c_node.get_sisters(): # there might be multifurcations therefore the loop
...: print(sister_node.get_leaf_names())
...:
['D', 'E']https://stackoverflow.com/questions/60453697
复制相似问题