python - ETE2 - 一个子节点有多个父节点?

标签 python tree phylogeny etetoolkit

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

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()

输出为 here

我是否从根本上反对这里的树的想法? ETE 是否有一种简单的方法来执行我的建议?

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

最佳答案

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

解决方案是有向无环图。这是图形数据结构的变体,它映射“多对多”以继续上面的措辞。

资源:

Graph data structure basics

Python specific graph structures

随着我的进步,我将对此进行编辑。

关于python - ETE2 - 一个子节点有多个父节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31581371/

相关文章:

python - Pyocrypt DES3文件加密,解密缺失部分文本

python - 没有 SciPy 的 PDF 和 CDF

java - 我正在尝试对我的通用树递归地创建一个插入方法,我应该做什么?

python - 系统发育树着色

r - 查找 R 树 newick 格式的提示

python - PyDev 不能再调试了

python - 包 Python3.7 不可用

php - 邻接表与嵌套集模型

javascript - object.key 的跨浏览器

R- 如何在 haploNet haplotyp Networks {pegas} {ape} {adegenet} 中绘制正确的饼图