A standalone Python library for storing and accessing annotated phylogenetic trees. SQLite-backed, single-file, schema-versioned.
The format extension is .ete. The library is the single source of
truth for the .ete v1 format and is designed to be consumed by ETE4,
PhyloCloud, treeprof, and any other tool that needs efficient access
to large annotated trees.
Status: v0.1.0 scaffold — schema initialization works; reads and writes are stubbed pending the next implementation phase. See
BUILD_SPEC.mdandtask-log.mdfor the build plan.
pip install -e .
# Optional: array dtype support
pip install -e .[arrays]
# Optional: sparse-array dtype support
pip install -e .[sparse]
# Optional: ete4 bridge (from_ete4/to_ete4)
pip install -e .[ete4]
# Optional: full developer environment
pip install -e .[dev]Python 3.10+ required.
from etestore import TreeStore
# Create a new .ete file at the latest schema version.
store = TreeStore.create("example.ete")
print(store.schema_version) # 1
store.close()
# Open read-only.
with TreeStore("example.ete", mode="r") as store:
print(store.newick())
print(store.list_properties())The full API surface lives in etestore.api. See docs/api.md for
the reference and docs/format-v1.md for the on-disk schema.
etestore/
src/etestore/ # Package source
tests/ # Unit, integration, benchmark
docs/ # Schema spec, API, codecs, performance
BUILD_SPEC.md # Build specification (single source of truth)
CLAUDE.md # Workflow, style, commit policy
task-log.md # Append-only decision log
The build follows the multi-phase workflow defined in CLAUDE.md:
- Specification (planner)
- Technical design (software-engineer)
- Implementation (coder)
- Review (code-reviewer)
- Validation (tester)
- Documentation (documenter)
Every decision lands in task-log.md. Read CLAUDE.md before opening
a PR.
MIT — see LICENSE.