0

您好,我有一棵树,例如:

>>> print(tree)

   /-A
--|
  |   /-B
   \-|
     |   /-C
      \-|
        |   /-D
         \-|
            \-E

 tree=Tree("(A,(B,C,(D,E)));") (ete3 function)

我正在寻找一种方法来查看离特定叶子最近的叶子。

在这里例如与最密切相关的叶子CD和与E. 最密切相关的叶子D是与最密切相关的E 叶子BC, DE.

4

1 回答 1

0

在这种情况下,“最接近”的定义很棘手,但是您所描述的内容可以通过以下代码轻松实现(请注意,您的代码中的树缺少括号):

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']
于 2020-03-29T16:44:31.787 回答