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