[英]python root two trees on the same root node
我写了一个程序来计算两棵树之间的距离。 树木已经扎根。
我想确保树木植根于同一根或外群。
据我所知,在ete2中,一个树只能设置根,而不能找到该树的根,而另一棵树也可以在同一棵树上建立根。
我想在一棵树中找到根,并在另一棵树中设置相同的根。 因此树木以相同的方式扎根。
#>>> print t1
#
# /-aaaaaaaaad
# /-|
# /-| \-aaaaaaaaae
# | |
#--| \-aaaaaaaaaa
# |
# | /-aaaaaaaaab
# \-|
# \-aaaaaaaaac
#>>> print t2
#
# /-aaaaaaaaaa
# /-|
# | | /-aaaaaaaaab
# | \-|
#--| \-aaaaaaaaac
# |
# | /-aaaaaaaaad
# \-|
# \-aaaaaaaaae
#
因此,在t1中,树的根源是以b和c结尾的外群。 我想将此outgroup和root t2放在同一组中。
有谁知道是否有可能确保树木植根相同? 还是其他软件包中包含这种方法?
etetoolkit提供了用于生根树的set_outgroup
方法。 如果只想在两棵树中具有相同的根以进行拓扑比较,则最简单的方法是选择与两棵树中的根相同的提示名称。
from ete2 import Tree
# generate 2 random trees
t1 = Tree()
t2 = Tree()
t1.populate(5)
t2.populate(5)
# root both to the same tip name
root = t1.get_leaf_names()[0]
t1.set_outgroup(root)
t2.set_outgroup(root)
print t1
print t2
#
# /-aaaaaaaaaa
#-|
# | /-aaaaaaaaab
# \-|
# | /-aaaaaaaaac
# \-|
# | /-aaaaaaaaad
# \-|
# \-aaaaaaaaae
#
# /-aaaaaaaaaa
# |
#-| /-aaaaaaaaad
# | /-|
# | | \-aaaaaaaaae
# \-|
# | /-aaaaaaaaab
# \-|
# \-aaaaaaaaac
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.