Skip to content
Back to skills

Alterlab Etetoolkit

ASecurity

Manipulate, annotate, and render phylogenetic trees programmatically with the ETE Toolkit (ete3) — parse and edit Newick/NHX, detect duplication/speciation events, infer orthology and paralogy, query NCBI taxonomy, and export PDF/SVG figures. Use when traversing or reformatting tree files, doing phylogenomic comparative analysis, or producing publication tree graphics in Python. Part of the AlterLab Academic Skills suite.

  • 68 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added May 27, 2026
data-aipythongobashangularnodeapidatabase

Works with

  • api

Security analysis

A100/100

Pro scans all 6 files and shows the line behind each finding

Scanned September 23, 2026

npx -y skills add AlterLab-IEU/AlterLab-Academic-Skills --skill alterlab-etetoolkit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Alterlab Etetoolkit?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Alterlab Etetoolkit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/alterlab-ieu-alterlab-etetoolkit/badge)](https://www.skillsdirectory.com/skills/alterlab-ieu-alterlab-etetoolkit)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: alterlab-etetoolkit
description: Manipulate, annotate, and render phylogenetic trees programmatically with the ETE Toolkit (ete3) — parse and edit Newick/NHX, detect duplication/speciation events, infer orthology and paralogy, query NCBI taxonomy, and export PDF/SVG figures. Use when traversing or reformatting tree files, doing phylogenomic comparative analysis, or producing publication tree graphics in Python. Part of the AlterLab Academic Skills suite.
license: GPL-3.0
allowed-tools: Read Write Edit Bash(python:*) Bash(uv:*)
compatibility: "Self-contained — runs under `uv run python`. Examples target **ete3 3.1.3** (the last ete3 release, May 2023); `Tree.render()`/`show()` additionally need PyQt5. The maintained line is **ete4 4.4.0**, whose API differs (see the version note in the body). NCBITaxa downloads a ~300MB taxonomy database on first use. No API key or account required."
metadata:
    skill-author: AlterLab
    version: "1.1.0"
    last_updated: "2026-09-23"
---

# ETE Toolkit Skill

## Overview

ETE (Environment for Tree Exploration) is a toolkit for phylogenetic and hierarchical
tree analysis. Manipulate trees, analyze evolutionary events, visualize results, and
integrate with biological databases for phylogenomic research and clustering analysis.

## ete3 or ete4?

The examples in this skill and its references are written for **ete3 3.1.3**, which is
still what most published pipelines import — but ete3 has had no release since May 2023,
and **ete4 (4.4.0, Sept 2025)** is the maintained line. Port deliberately: the ete4 API is
not drop-in.

| ete3 | ete4 |
|------|------|
| `from ete3 import Tree` | `from ete4 import Tree` |
| `Tree("t.nw", format=1)` | `Tree(open("t.nw"), parser=1)` — the keyword is `parser` |
| `tree.iter_leaves()` / `get_leaves()` | `tree.leaves()` |
| custom features via `node.add_feature()` | `node.props[...]` dictionary |
| Qt-based `show()` / `render()` (needs PyQt5) | browser-based `explore()` with adaptive zoom, plus GTDB taxonomy support |

Check which one is installed before writing code (`python -c "import ete4"`), and say which
you targeted in the methods.

## When to Use

- Parsing, traversing, or reformatting tree files (Newick / NHX / PhyloXML / NeXML)
- Pruning, rooting, collapsing, or resolving polytomies in a tree
- Detecting duplication/speciation events and inferring orthologs/paralogs from gene trees
- Querying NCBI Taxonomy (taxid/name translation, lineages, taxonomy trees)
- Producing publication-quality PDF/SVG/PNG tree figures
- Comparing trees (Robinson-Foulds) or analyzing clustering dendrograms

## Core Capabilities

ETE exposes six capability areas. Each has detailed, copy-ready code in the references
(see Index below).

1. **Tree manipulation** — I/O across formats, traversal (pre/post/levelorder), topology
   edits (prune, root, collapse), distances, RF tree comparison.
2. **Phylogenetic analysis** — alignment linkage, species naming, duplication/speciation
   detection (Species Overlap or reconciliation), orthology/paralogy.
3. **NCBI Taxonomy** — local cached DB, taxid↔name translation, lineage retrieval,
   taxonomy-tree building, tree annotation.
4. **Visualization** — PNG/PDF/SVG export, rectangular/circular layouts, `NodeStyle`,
   `Face` objects, layout functions, interactive GUI.
5. **Clustering analysis** — `ClusterTree`, data-matrix linking, silhouette/Dunn metrics,
   heatmap views.
6. **Tree comparison** — Robinson-Foulds (raw + normalized), partition/bipartition analysis,
   batch pairwise distance matrices.

## Core Workflow

The canonical minimal pattern — load, edit, save:

```python
from ete3 import Tree

# Load tree from file (format 1 = with internal node names)
tree = Tree("tree.nw", format=1)

# Prune to taxa of interest, preserving branch lengths
tree.prune(["species1", "species2", "species3"], preserve_branch_length=True)

# Midpoint root
tree.set_outgroup(tree.get_midpoint_outgroup())

# Save
tree.write(outfile="rooted_tree.nw")
```

For class selection: use `Tree`/`TreeNode` for generic topology work, `PhyloTree` for gene
trees and evolutionary analysis, `ClusterTree` for dendrograms with data matrices, and
`NCBITaxa` for taxonomy queries.

### Does NOT Trigger

| Scenario | Use Instead |
|----------|-------------|
| Build a tree from unaligned sequences (align + model selection + ML inference) | `alterlab-phylogenetics` |
| Distance matrices, diversity metrics, or ordination from alignments | `alterlab-scikit-bio` |
| Tree I/O inside a broader Biopython pipeline (`Bio.Phylo`) | `alterlab-biopython` |
| Generic graph algorithms on a non-tree network | `alterlab-networkx` |
| Taxonomic classification of amplicon reads | `alterlab-qiime2-amplicon` |

## Command-Line Scripts

- `scripts/tree_operations.py` — stats, format conversion, rerooting, pruning, ASCII view.
  Example: `python scripts/tree_operations.py reroot tree.nw rooted.nw --midpoint`
- `scripts/quick_visualize.py` — rapid PDF/PNG rendering with circular layout, support
  coloring, and DPI control. Example:
  `python scripts/quick_visualize.py tree.nw out.pdf --mode c --color-by-support`

## Reference Index

Load the relevant file when detailed information is needed:

- **`references/api_reference.md`** — Complete API for all ETE classes/methods (`Tree`,
  `PhyloTree`, `ClusterTree`, `NCBITaxa`): parameters, return types, code examples.
- **`references/workflows.md`** — Per-task workflow patterns (tree operations, phylogenetic
  analysis, comparison, taxonomy integration, clustering).
- **`references/visualization.md`** — Full visualization guide: `TreeStyle`, `NodeStyle`,
  `Face`s, layout functions, advanced rendering.
- **`references/use_cases.md`** — End-to-end worked use cases (phylogenomic pipeline, batch
  preprocessing, publication figures, automated multi-tree analysis).
- **`references/setup_and_troubleshooting.md`** — Installation, NCBI Taxonomy first-run
  setup, and troubleshooting (imports, Qt rendering, memory, DB corruption).
- **`references/newick_and_best_practices.md`** — Newick/NHX format specifications (0-100)
  and best-practice checklist.

Part of the AlterLab Academic Skills suite.

Files in this skill

  • SKILL.md17.5 KB
  • references/api_reference.md12.4 KB
  • references/visualization.md19.1 KB
  • references/workflows.md18.5 KB
  • scripts/quick_visualize.py7 KB
  • scripts/tree_operations.py8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…