In [1]:
from ete3 import Tree, TreeStyle, NodeStyle
import sys
In [2]:
treeFile = "FAM023481.orig_reconciliation.lean.nhx"
In [3]:
def readNHXTreeFromFile(file):
try:
f=open(file, 'r')
except IOError:
print ("Unknown file: "+file)
sys.exit()
line = ""
for l in f:
line += l.strip()
f.close()
t = Tree( line )
return t
nhxTree = readNHXTreeFromFile(treeFile)
In [4]:
print(nhxTree)
/-GHM2|m.34692
|
| /-PKK|m.35404
| |
| /-| /-PHeZ|m.25367
| | | |
| | \-| /-PPvN2|m.31660
| | | |
| | | | /-PCoB|m.26315
| | \-| /-|
| | | | | /-PCoZa5|m.30389
| | | | \-|
| | \-| | /-PCoCd9|m.27842
| | | \-|
| | | \-PCoAx5_loss
| | |
| | \-PPrS_loss
| |
| | /-PCoiP|m.33044
| | |
| | /-| /-ancestral_loss
| | | | |
| | | \-| /-ancestral_loss
| | | | |
| | | | | /-PStB|m.40623
| | | \-| /-|
| | | | | \-PStN|m.28765
| | | | |
| | | | | /-PCG6|m.37499
| | | \-| /-|
| | | | | \-PCBo_loss
| | | | /-|
| | | | | | /-PCBF|m.34700
| | /-| | | \-|
| /-| | | \-| \-PCMt5|m.64600
| | | | | |
| | | | | | /-PCBo|m.38533
| | | | | | /-|
| | | | | \-| \-PCG6_loss
| | | | | |
| | | | | \-ancestral_loss
| | | | |
| | | | | /-PCoiP_loss
| | | | | |
| | | | | | /-ISPB|m.25523
| | | | | | /-|
| | | | \-| | \-PspVi|m.33243
| | | | | |
| | | /-| | | /-PWRo5|m.37307
| | | | | | | |
| | | | | \-| | /-PWM5|m.26654
| | | | | | /-| /-|
| | | | | | | | | | /-PWVi6|m.35610
| | | | | | | | | \-|
| | | | | | | \-| \-PWH13_loss
| | | | | | | |
| | | | | \-| | /-PWM5_loss
| | | | | | \-|
| | | | | | | /-PWH13|m.40687
| | | | | | \-|
| | | | | | \-PWVi6_loss
| | | | | |
| | | | | \-ancestral_loss
| | | | |
| | \-| \-PSloP5_loss
--| | |
| | | /-ancestral_loss
| | | |
| | | | /-PGC|m.33862
| | | | /-|
| | | | | | /-POJ_loss
| | | | | \-|
| | | | | | /-PCanC|m.48198
| | | | | \-|
| | | | | \-PEF_loss
| | | | |
| | | | | /-PArE|m.26113
| | | | | /-|
| | | | | | \-PSSE|m.24570
| | | | | |
| | \-| | /-| /-ancestral_loss
| | | | | | |
| | | | | | | /-PIbB_loss
| | | | | \-| /-|
| | | | | | | | /-PAtL_loss
| | | | | | | \-|
| | | | | \-| | /-PAsA|m.17393
| | | | /-| | \-|
| | | | | | | \-PRuE_loss
| | | | | | |
| | | | | | \-ancestral_loss
| | | | | |
| /-| | | | | /-ancestral_loss
| | | | | | | |
| | | | | | \-| /-ancestral_loss
| | | \-| | | |
| | | | | | | /-ancestral_loss
| | | | | \-| |
| | | | | | | /-PRBe_loss
| | | | | | | |
| | | | | \-| /-| /-PBtS|m.34411
| | | | | | | | /-|
| | | | | | | | | \-PJJ|m.24955
| | | | | | | \-|
| | | | /-| | | | /-PEcD|m.36208
| | | | | | \-| \-|
| | | | | | | | /-PGrP|m.36371
| | | | | | | \-|
| | | | | | | \-PSoG|m.21561
| | | | | | |
| | | | | | | /-PMaF_loss
| | | | | | \-|
| | | | | | | /-PMC_loss
| | | | | | \-|
| | | | | | | /-PMLL_loss
| | | | | | \-|
| | | | | | | /-PMB|m.48981
| | | | | | \-|
| | | | | | \-PMAx_loss
| | | | | |
| | | | | | /-ancestral_loss
| | | | | | |
| | | \-| \-| /-PIsS|m.52893
| | | | | /-|
| | | | | | \-PMiM|m.34542
| | | | \-|
| | | | | /-ancestral_loss
| | | | \-|
| | | | | /-ancestral_loss
| | | | \-|
\-| | | | /-PMaF_loss
| | | \-|
| | | | /-PMC|m.57482
| | | \-|
| | | | /-PMLL|m.39896
| | | \-|
| | | \-ancestral_loss
| | |
| | | /-ancestral_loss
| | | |
| | \-| /-ancestral_loss
| | | |
| | \-| /-PIbB|m.27259
| | | /-|
| | \-| \-ancestral_loss
| | |
| | \-ancestral_loss
| |
| | /-PBF5|m.35929
| | /-|
| \-| \-PSlRo11|m.26045
| |
| \-PBS4_loss
|
| /-BMoV|m.31229
| /-|
| | | /-BFA_loss
| | \-|
| | | /-BPM|m.26069
| | \-|
| /-| \-BCoP_loss
| | |
| | | /-BMoV_loss
| | | |
| | | | /-BFA|m.48628
| | \-| /-|
| | | | | /-BPM|m.25963
| | | | \-|
\-| \-| \-BCoP_loss
| |
| | /-BFA_loss
| \-|
| | /-BCoP|m.69168
| \-|
| \-BPM_loss
|
\-SyspA_loss
In [5]:
# Now we remove "loss" tips.
toKeep = []
for leaf in nhxTree.traverse():
if "loss" not in leaf.name and leaf.name != "":
toKeep.append(leaf.name)
print(toKeep)
['GHM2|m.34692', 'PKK|m.35404', 'PBF5|m.35929', 'PSlRo11|m.26045', 'BMoV|m.31229', 'PHeZ|m.25367', 'PPvN2|m.31660', 'BPM|m.26069', 'BFA|m.48628', 'PCoiP|m.33044', 'PGC|m.33862', 'BPM|m.25963', 'BCoP|m.69168', 'PCoB|m.26315', 'PCoZa5|m.30389', 'ISPB|m.25523', 'PspVi|m.33243', 'PCanC|m.48198', 'PCoCd9|m.27842', 'PWRo5|m.37307', 'PStB|m.40623', 'PStN|m.28765', 'PArE|m.26113', 'PSSE|m.24570', 'PIsS|m.52893', 'PMiM|m.34542', 'PIbB|m.27259', 'PWM5|m.26654', 'PCG6|m.37499', 'PCBF|m.34700', 'PCMt5|m.64600', 'PCBo|m.38533', 'PWVi6|m.35610', 'PWH13|m.40687', 'PMC|m.57482', 'PAsA|m.17393', 'PMLL|m.39896', 'PBtS|m.34411', 'PJJ|m.24955', 'PEcD|m.36208', 'PGrP|m.36371', 'PSoG|m.21561', 'PMB|m.48981']
In [6]:
nhxTree.prune(toKeep)
print(nhxTree)
/-GHM2|m.34692
|
| /-PKK|m.35404
| /-|
| | | /-PHeZ|m.25367
| | \-|
| | | /-PPvN2|m.31660
| | \-|
| | | /-PCoB|m.26315
| | \-|
| | | /-PCoZa5|m.30389
| | \-|
| | \-PCoCd9|m.27842
| |
| | /-PCoiP|m.33044
| | |
| | | /-PStB|m.40623
| | /-| /-|
| | | | | \-PStN|m.28765
| | | | |
| /-| | \-| /-PCBF|m.34700
| | | | | /-|
| | | | | /-| \-PCMt5|m.64600
| | | | | | |
| | | /-| \-| \-PCG6|m.37499
| | | | | |
| | | | | \-PCBo|m.38533
| | | | |
| | | | | /-ISPB|m.25523
| | | | | /-|
| | | | | | \-PspVi|m.33243
--| | | | \-|
| | | | | /-PWRo5|m.37307
| | | | | |
| | | | \-| /-PWM5|m.26654
| | | | | /-|
| | | | \-| \-PWVi6|m.35610
| | | | |
| | \-| \-PWH13|m.40687
| | |
| | | /-PGC|m.33862
| | | /-|
| | | | \-PCanC|m.48198
| | | |
| | | | /-PArE|m.26113
| | | | /-|
| /-| | | /-| \-PSSE|m.24570
| | | | | | |
| | | | | | \-PAsA|m.17393
| | | | | |
| | | | | | /-PBtS|m.34411
| | | | | /-| /-|
| | | \-| | | | \-PJJ|m.24955
| | | | | | /-|
| | | | | | | | /-PEcD|m.36208
| | | | | | | \-|
| | | | | \-| | /-PGrP|m.36371
| | | | | | \-|
| | | | /-| | \-PSoG|m.21561
| | | | | | |
| | | | | | \-PMB|m.48981
| | | | | |
\-| | | | | /-PIsS|m.52893
| | | | | /-|
| | \-| | | \-PMiM|m.34542
| | | \-|
| | | | /-PMC|m.57482
| | | \-|
| | | \-PMLL|m.39896
| | |
| | \-PIbB|m.27259
| |
| | /-PBF5|m.35929
| \-|
| \-PSlRo11|m.26045
|
| /-BMoV|m.31229
| /-|
| | \-BPM|m.26069
\-|
| /-BFA|m.48628
| /-|
\-| \-BPM|m.25963
|
\-BCoP|m.69168
In [7]:
print (nhxTree.write(features=[]))
(GHM2|m.34692:1[&&NHX:D=N:ND=0:S=GHM2:dist=1.0:name=GHM2|m.34692:support=1.0],((((PKK|m.35404:1[&&NHX:D=N:ND=1:S=PKK:dist=1.0:name=PKK|m.35404:support=1.0],(PHeZ|m.25367:1[&&NHX:D=N:ND=2:S=PHeZ:dist=1.0:name=PHeZ|m.25367:support=1.0],(PPvN2|m.31660:1[&&NHX:D=N:ND=3:S=PPvN2:dist=1.0:name=PPvN2|m.31660:support=1.0],(PCoB|m.26315:1[&&NHX:D=N:ND=4:S=PCoB:dist=1.0:name=PCoB|m.26315:support=1.0],(PCoZa5|m.30389:1[&&NHX:D=N:ND=5:S=PCoZa5:dist=1.0:name=PCoZa5|m.30389:support=1.0],PCoCd9|m.27842:1[&&NHX:D=N:ND=6:S=PCoCd9:dist=1.0:name=PCoCd9|m.27842:support=1.0])1:1[&&NHX:D=N:ND=9:S=10:dist=1.0:name=:support=1.0])1:1[&&NHX:D=N:ND=10:S=11:dist=1.0:name=:support=1.0])1:1[&&NHX:D=N:ND=13:S=13:dist=1.0:name=:support=1.0])1:1[&&NHX:D=N:ND=14:S=14:dist=1.0:name=:support=1.0])1:1[&&NHX:D=N:ND=15:S=15:dist=1.0:name=:support=1.0],(((PCoiP|m.33044:1[&&NHX:D=N:ND=16:S=PCoiP:dist=1.0:name=PCoiP|m.33044:support=1.0],((PStB|m.40623:1[&&NHX:D=N:ND=19:S=PStB:dist=1.0:name=PStB|m.40623:support=1.0],PStN|m.28765:1[&&NHX:D=N:ND=20:S=PStN:dist=1.0:name=PStN|m.28765:support=1.0])1:1[&&NHX:D=N:ND=21:S=20:dist=1.0:name=:support=1.0],(((PCBF|m.34700:1[&&NHX:D=N:ND=25:S=PCBF:dist=1.0:name=PCBF|m.34700:support=1.0],PCMt5|m.64600:1[&&NHX:D=N:ND=26:S=PCMt5:dist=1.0:name=PCMt5|m.64600:support=1.0])1:1[&&NHX:D=N:ND=27:S=22:dist=1.0:name=:support=1.0],PCG6|m.37499:1[&&NHX:D=N:ND=22:S=PCG6:dist=1.0:name=PCG6|m.37499:support=1.0])1:1[&&NHX:D=N:ND=28:S=23:dist=1.0:name=:support=1.0],PCBo|m.38533:1[&&NHX:D=N:ND=29:S=PCBo:dist=1.0:name=PCBo|m.38533:support=1.0])1:1[&&NHX:D=Y:ND=34:S=23:dist=1.0:name=:support=1.0])1:1[&&NHX:D=N:ND=35:S=24:dist=1.0:name=:support=1.0])1:1[&&NHX:D=N:ND=38:S=27:dist=1.0:name=:support=1.0],((ISPB|m.25523:1[&&NHX:D=N:ND=40:S=ISPB:dist=1.0:name=ISPB|m.25523:support=1.0],PspVi|m.33243:1[&&NHX:D=N:ND=41:S=PspVi:dist=1.0:name=PspVi|m.33243:support=1.0])1:1[&&NHX:D=N:ND=42:S=16:dist=1.0:name=:support=1.0],(PWRo5|m.37307:1[&&NHX:D=N:ND=43:S=PWRo5:dist=1.0:name=PWRo5|m.37307:support=1.0],((PWM5|m.26654:1[&&NHX:D=N:ND=44:S=PWM5:dist=1.0:name=PWM5|m.26654:support=1.0],PWVi6|m.35610:1[&&NHX:D=N:ND=45:S=PWVi6:dist=1.0:name=PWVi6|m.35610:support=1.0])1:1[&&NHX:D=N:ND=48:S=18:dist=1.0:name=:support=1.0],PWH13|m.40687:1[&&NHX:D=N:ND=50:S=PWH13:dist=1.0:name=PWH13|m.40687:support=1.0])1:1[&&NHX:D=Y:ND=54:S=18:dist=1.0:name=:support=1.0])1:1[&&NHX:D=N:ND=55:S=19:dist=1.0:name=:support=1.0])1:1[&&NHX:D=N:ND=58:S=26:dist=1.0:name=:support=1.0])1:1[&&NHX:D=Y:ND=60:S=27:dist=1.0:name=:support=1.0],((PGC|m.33862:1[&&NHX:D=N:ND=64:S=PGC:dist=1.0:name=PGC|m.33862:support=1.0],PCanC|m.48198:1[&&NHX:D=N:ND=66:S=PCanC:dist=1.0:name=PCanC|m.48198:support=1.0])1:1[&&NHX:D=N:ND=70:S=32:dist=1.0:name=:support=1.0],(((((PArE|m.26113:1[&&NHX:D=N:ND=71:S=PArE:dist=1.0:name=PArE|m.26113:support=1.0],PSSE|m.24570:1[&&NHX:D=N:ND=72:S=PSSE:dist=1.0:name=PSSE|m.24570:support=1.0])1:1[&&NHX:D=N:ND=73:S=33:dist=1.0:name=:support=1.0],PAsA|m.17393:1[&&NHX:D=N:ND=77:S=PAsA:dist=1.0:name=PAsA|m.17393:support=1.0])1:1[&&NHX:D=N:ND=85:S=50:dist=1.0:name=:support=1.0],(((PBtS|m.34411:1[&&NHX:D=N:ND=90:S=PBtS:dist=1.0:name=PBtS|m.34411:support=1.0],PJJ|m.24955:1[&&NHX:D=N:ND=91:S=PJJ:dist=1.0:name=PJJ|m.24955:support=1.0])1:1[&&NHX:D=N:ND=92:S=38:dist=1.0:name=:support=1.0],(PEcD|m.36208:1[&&NHX:D=N:ND=93:S=PEcD:dist=1.0:name=PEcD|m.36208:support=1.0],(PGrP|m.36371:1[&&NHX:D=N:ND=94:S=PGrP:dist=1.0:name=PGrP|m.36371:support=1.0],PSoG|m.21561:1[&&NHX:D=N:ND=95:S=PSoG:dist=1.0:name=PSoG|m.21561:support=1.0])1:1[&&NHX:D=N:ND=96:S=39:dist=1.0:name=:support=1.0])1:1[&&NHX:D=N:ND=97:S=40:dist=1.0:name=:support=1.0])1:1[&&NHX:D=N:ND=98:S=41:dist=1.0:name=:support=1.0],PMB|m.48981:1[&&NHX:D=N:ND=103:S=PMB:dist=1.0:name=PMB|m.48981:support=1.0])1:1[&&NHX:D=N:ND=109:S=47:dist=1.0:name=:support=1.0])1:1[&&NHX:D=Y:ND=113:S=50:dist=1.0:name=:support=1.0],((PIsS|m.52893:1[&&NHX:D=N:ND=115:S=PIsS:dist=1.0:name=PIsS|m.52893:support=1.0],PMiM|m.34542:1[&&NHX:D=N:ND=116:S=PMiM:dist=1.0:name=PMiM|m.34542:support=1.0])1:1[&&NHX:D=N:ND=117:S=34:dist=1.0:name=:support=1.0],(PMC|m.57482:1[&&NHX:D=N:ND=121:S=PMC:dist=1.0:name=PMC|m.57482:support=1.0],PMLL|m.39896:1[&&NHX:D=N:ND=122:S=PMLL:dist=1.0:name=PMLL|m.39896:support=1.0])1:1[&&NHX:D=N:ND=125:S=45:dist=1.0:name=:support=1.0])1:1[&&NHX:D=N:ND=129:S=49:dist=1.0:name=:support=1.0])1:1[&&NHX:D=Y:ND=131:S=50:dist=1.0:name=:support=1.0],PIbB|m.27259:1[&&NHX:D=N:ND=134:S=PIbB:dist=1.0:name=PIbB|m.27259:support=1.0])1:1[&&NHX:D=Y:ND=141:S=50:dist=1.0:name=:support=1.0])1:1[&&NHX:D=N:ND=142:S=51:dist=1.0:name=:support=1.0])1:1[&&NHX:D=N:ND=144:S=53:dist=1.0:name=:support=1.0])1:1[&&NHX:D=N:ND=145:S=54:dist=1.0:name=:support=1.0],(PBF5|m.35929:1[&&NHX:D=N:ND=146:S=PBF5:dist=1.0:name=PBF5|m.35929:support=1.0],PSlRo11|m.26045:1[&&NHX:D=N:ND=147:S=PSlRo11:dist=1.0:name=PSlRo11|m.26045:support=1.0])1:1[&&NHX:D=N:ND=148:S=7:dist=1.0:name=:support=1.0])1:1[&&NHX:D=N:ND=151:S=55:dist=1.0:name=:support=1.0],((BMoV|m.31229:1[&&NHX:D=N:ND=152:S=BMoV:dist=1.0:name=BMoV|m.31229:support=1.0],BPM|m.26069:1[&&NHX:D=N:ND=154:S=BPM:dist=1.0:name=BPM|m.26069:support=1.0])1:1[&&NHX:D=N:ND=158:S=5:dist=1.0:name=:support=1.0],((BFA|m.48628:1[&&NHX:D=N:ND=160:S=BFA:dist=1.0:name=BFA|m.48628:support=1.0],BPM|m.25963:1[&&NHX:D=N:ND=161:S=BPM:dist=1.0:name=BPM|m.25963:support=1.0])1:1[&&NHX:D=N:ND=164:S=4:dist=1.0:name=:support=1.0],BCoP|m.69168:1[&&NHX:D=N:ND=166:S=BCoP:dist=1.0:name=BCoP|m.69168:support=1.0])1:1[&&NHX:D=Y:ND=170:S=4:dist=1.0:name=:support=1.0])1:1[&&NHX:D=Y:ND=172:S=5:dist=1.0:name=:support=1.0])1:1[&&NHX:D=N:ND=175:S=56:dist=1.0:name=:support=1.0]);
In [ ]:
Content source: Boussau/Notebooks
Similar notebooks: