Vizualizare Arbori Filogenetici cu Matplotlib
You will learn how to visualize phylogenetic trees using Matplotlib and Biopython.
The Problem
Arborii filogenetici necesita o reprezentare grafica clara care sa arate relatiile evolutive intre secvente. Un arbore prost desenat ascunde topologia si distantele evolutive.
The Wrong Way
Trasarea manuala a arborelui fara a utiliza layout-ul corespunzator:
import matplotlib.pyplot as plt
from Bio import Phylo
tree = Phylo.read('arbore.nwk', 'newick')
Phylo.draw(tree) # layout default care poate fi suboptimal
Ce se intampla: Layout-ul implicit poate fi gresit scalat, cu etichete suprapuse si distante neclare.
The Right Way
Configureaza corect layout-ul si stilul arborelui:
from Bio import Phylo
import matplotlib.pyplot as plt
tree = Phylo.read('arbore.nwk', 'newick')
fig, ax = plt.subplots(1, 1, figsize=(10, 8))
Phylo.draw(tree, axes=ax, do_show=False,
branch_labels=lambda c: f"{c.branch_length:.2f}",
label_colors={'Root': 'red'})
ax.set_title('Arbore Filogenetic - Maximum Likelihood')
plt.tight_layout()
plt.show()
Rezultat asteptat: Un arbore clar, cu etichete lizibile, distante afisate si radacina evidentiata.
Step-by-Step Fix
1. Incarca arborele
from Bio import Phylo
tree = Phylo.read('aliniere.nwk', 'newick')
2. Configureaza vizualizarea
fig, ax = plt.subplots(figsize=(12, 8))
Phylo.draw(tree, axes=ax, do_show=False,
label_func=lambda x: x.name if x.name else '',
branch_labels=lambda x: f"{x.branch_length:.2f}"
if x.branch_length and x.branch_length > 0.01 else '')
3. Stilizeaza arborele
import matplotlib.lines as mlines
for line in ax.lines:
line.set_linewidth(1.5)
line.set_color('darkblue')
4. Pentru cladograma (fara distante)
tree.ladderize() # ordoneaza descendentii
Phylo.draw_graphviz(tree, prog='dot') # layout alternativ
Prevention Tips
- Foloseste ladderize pentru a ordona frunzele si a imbunatati lizibilitatea
- Afiseaza distantele pe ramuri doar cand sunt relevante
- Coloreaza cladele pentru a evidentia grupuri monofiletice
- Rotește etichetele la 45° daca sunt multe frunze
- Alege raportul de aspect in functie de numarul de taxoni
Common Mistakes
- Foloseste layout default care nu scaleaza corect arborele
- Nu afișeaza Bootstrap/suport -- increderea in ramuri este necunoscuta
- Etichetele se suprapun -- nu ajusteaza dimensiunea figurii la numarul de taxoni
- Ignora distantele pe ramuri -- lungimea ramurilor fara sens biologic
- Nu marcheaza radacina sau outgroup-ul -- polaritatea arborelui este neclara
Practice Exercise
Incarca un arbore Newick cu 20 de secvente, coloreaza 3 clade distincte si salveaza vizualizarea ca SVG pentru publicare.
FAQ
Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro. DodaTech tools integrate seamlessly with Python Data Science workflows for enhanced productivity and security.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro