ete3
A Python Environment for (phylogenetic) Tree Exploration
What it is and what it does
ETE3 is a mature Python toolkit for phylogenetic tree work, supporting reconstruction, manipulation, analysis, and visualization of tree-structured data. It is primarily designed for researchers in phylogenetics and genomics, though it can handle any tree-like data structure. The package has been actively maintained since its first release in 2015 and is currently at version 3.1.3, with a repository showing recent activity and a moderate user base.
The toolkit provides both programmatic APIs for tree operations and visualization capabilities, including support for Qt-based graphical output. Installation carries high friction, indicating the presence of compiled dependencies or system-level requirements that may need manual setup. The codebase is mature and stable, and the package is widely used in the bioinformatics community, though users should be aware of the GPLv3 copyleft licensing constraint.
Use it for:
- Reconstruct and manipulate phylogenetic trees from sequence alignment or distance data in genomics research.
- Visualize and compare evolutionary relationships between organisms or genes in publication-quality formats.
- Analyze tree topology, branch lengths, and clustering patterns programmatically in bioinformatics pipelines.
- Convert between tree file formats (Newick, NHX, etc.) and perform tree-to-tree comparisons.
- Build custom tree-based analyses by scripting tree traversal and node manipulation in Python.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
ETE3 reconstructs, manipulates, analyzes, and visualizes phylogenetic trees and other tree-like data structures through a Python API.
Yes, if you work in phylogenetics or genomics and need tree manipulation and visualization. The package is mature, actively maintained, and well-established in its domain. However, be prepared for high installation friction (likely system dependencies), verify Python version compatibility before installing, and ensure GPLv3 licensing aligns with your project's constraints.
Install
ete3 on PyPI
pip
pip install ete3uv
uv add ete3poetry
poetry add ete3Installing ete3
Before you install
Installation friction is high; the package ships as a source tarball and has no declared runtime dependencies, suggesting compiled components or system-level prerequisites may be required during build.
License in practice
GPLv3 copyleft license means any derivative work or distribution must also be open-source under compatible terms; suitable for research and open-source projects but requires careful review before use in proprietary software.
Quickstart
pip install ete3
from ete3 import Tree
t = Tree('(A:1,B:1)C;')
print(t)
High install friction suggests system libraries or build tools may be required; Qt support may require additional X11 or graphical environment setup on some systems.
Verify before relying
- What system libraries or compiled dependencies are needed at build time (the high friction suggests non-trivial prerequisites).
- Whether Qt support (listed in classifiers) is optional or required, and what additional setup it demands.
- Current Python version compatibility (requires_python is unspecified in the metadata).
Package facts
| License | GPLv3 (copyleft) |
| Python support | not specified |
| Install friction | high — source build required |
| Runtime dependencies | none |
| Maintenance | actively maintained — 1,200 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 100,419/month — #12,985 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: ete3-3.1.3.tar.gz
Keywords: tree, tree reconstruction, tree visualization, tree comparison, phylogeny, phylogenetics, phylogenomics
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
biopythonBiopython provides Python tools for…
unclear · top 5,000 on PyPI
dtreevizdtreeviz renders decision trees from…
permissive · top 15,000 on PyPI
ai-edge-model-explorerVisualizes and debugs machine learning model…
permissive · top 15,000 on PyPI
nutreeNutree provides a Python library for creating,…
permissive · top 5,000 on PyPI
pyrangesPyRanges provides efficient querying and…
permissive · top 15,000 on PyPI
scikit-bioscikit-bio provides data structures,…
permissive · top 15,000 on PyPI
py_treespy_trees implements behaviour trees in Python,…
permissive · top 15,000 on PyPI
anytreeProvides a lightweight Python library for…
unclear · top 5,000 on PyPI
open3dOpen3D provides data structures and algorithms…
permissive · top 5,000 on PyPI
asciitreeRenders tree data structures as formatted ASCII…
permissive · top 5,000 on PyPI