1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
from ete3 import Tree
# Loads 3 independent trees
t1 = Tree('(A,(B,C));')
t2 = Tree('((D,E), (F,G));')
t3 = Tree('(H, ((I,J), (K,L)));')
print("Tree1:", t1)
# /-A
# ---------|
# | /-B
# \--------|
# \-C
print("Tree2:", t2)
# /-D
# /--------|
# | \-E
# ---------|
# | /-F
# \--------|
# \-G
print("Tree3:", t3)
# /-H
# |
# ---------| /-I
# | /--------|
# | | \-J
# \--------|
# | /-K
# \--------|
# \-L
# Locates a terminal node in the first tree
A = t1.search_nodes(name='A')[0]
# and adds the two other trees as children.
A.add_child(t2)
A.add_child(t3)
print("Resulting concatenated tree:", t1)
# /-D
# /--------|
# | \-E
# /--------|
# | | /-F
# | \--------|
# /--------| \-G
# | |
# | | /-H
# | | |
# | \--------| /-I
# | | /--------|
# ---------| | | \-J
# | \--------|
# | | /-K
# | \--------|
# | \-L
# |
# | /-B
# \--------|
# \-C
# But remember!!!You should never do things like:
#
# A.add_child(t1)
#
|