Python 树上最接近的叶子(ete3软件包)

Python 树上最接近的叶子(ete3软件包),python,python-3.x,phylogeny,ete3,Python,Python 3.x,Phylogeny,Ete3,你好,我有一棵树,比如: >>> print(tree) /-A --| | /-B \-| | /-C \-| | /-D \-| \-E tree=Tree("(A,(B,C,(D,E)));") (ete3 function) 我正在寻找一种方法来观察离某片叶子最近的叶子 例如,与C关系最密切的叶子是D和E. 与D关系最密切的叶子是E 与B关系最密切的叶子是

你好,我有一棵树,比如:

>>> 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.

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

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']