Python ETE2-具有多个父节点的一个子节点?

Python ETE2-具有多个父节点的一个子节点?,python,tree,phylogeny,etetoolkit,Python,Tree,Phylogeny,Etetoolkit,我正在尝试使用Python中的ETE2模块创建一个树。我想在两个父节点中添加一个子节点,以便在显示树时它们都连接到子节点。我是ETE的新手,如果这是一个简单的问题,请原谅我。 代码: 输出为 我从根本上反对在这里建树吗?ETE是否有一个简单(r)的方法来实现我的建议 如果您需要更多信息来帮助,请告诉我 我基本上找到了我自己问题的答案:我应该使用的数据结构不是树@boardrider指出,树本质上是一种“一对多”结构,将一个父节点映射到一个或多个子节点 解决方案是一个有向无环图。这是图形数据结构的

我正在尝试使用Python中的ETE2模块创建一个树。我想在两个父节点中添加一个子节点,以便在显示树时它们都连接到子节点。我是ETE的新手,如果这是一个简单的问题,请原谅我。 代码:

输出为

我从根本上反对在这里建树吗?ETE是否有一个简单(r)的方法来实现我的建议


如果您需要更多信息来帮助,请告诉我

我基本上找到了我自己问题的答案:我应该使用的数据结构不是树@boardrider指出,树本质上是一种“一对多”结构,将一个父节点映射到一个或多个子节点

解决方案是一个有向无环图。这是图形数据结构的一种变体,它映射“多对多”以继续使用上面的短语

资源:


我会在进步的过程中编辑这个

我是否从根本上反对在这里建树的想法
:是的。你想要的不是一棵树。有关树的定义,请参阅。@boardrider那么我应该使用什么结构?您可以使用现在使用的结构,只是不要称它为
树。
from ete2 import Tree, TreeNode, TextFace


classes = Tree()

#adding 1
course1 = TreeNode(name="Course 1")
face1 = TextFace(text="Course 1")
course1.add_face(face1, column=1)
classes.add_child(child=course1)

#adding 2
course2 = TreeNode(name="Course 2")
face2 = TextFace(text="Course 2")
course2.add_face(face2, column=1)
course1.add_child(child=course2)

#adding 3
course3 = TreeNode(name="Course 3")
face3 = TextFace(text="Course 3")
course3.add_face(face3, column=1)
#adding course3 to 2 parents
course1.add_child(child=course3)
course2.add_child(child=course3)

classes.show()