Review: DendroPy: A Python Library for Phylogenetic Computing¶
Citation
- Sukumaran, J., & Holder, M. T. (2010). DendroPy: a Python library for phylogenetic computing. Bioinformatics, 26(12), 1569–1571.
- DOI
Abstract¶
DendroPy is a Python library providing classes and utilities for reading, writing, and manipulating phylogenetic trees and character matrices in a range of formats including Newick, NEXUS, NeXML, and PHYLIP. The library is designed for rapid development of phylogenetic analysis pipelines in Python.
DendroPy is the standard Python library for working with phylogenetic data in scripts and pipelines. It provides:
- Tree objects with full manipulation (rerooting, pruning, grafting, ladderizing)
- Character matrix objects (DNA, RNA, protein, standard) with taxon namespace management
- File I/O in Newick, NEXUS, NeXML, PHYLIP, and other formats
- Pairwise tree distance metrics including RF distance and symmetric-difference metrics
- Coalescent simulation and tree comparisons
Hifuku uses DendroPy in two places. The global taxon table (taxa.py) is backed
by a DendroPy TaxonNamespace, so every species name has a persistent integer
index shared across alignments and trees. That shared index is what makes fields
from different genes comparable across the multi-gene framework.
The neighbor-joining anchor trees (nj.py) are built with DendroPy's
PhylogeneticDistanceMatrix: Hifuku computes the corrected pairwise distances,
loads them into the matrix, and calls its neighbor-joining routine.
The demonstration data generator distributed with Hifuku also uses DendroPy to build and NNI-perturb the synthetic source trees.