FigTreeKit: A Python toolkit for programmatic FigTree styling, taxonomy-aware clade auditing, and phylogenetic tree rendering
Zeng, Z.; Wang, Y.
Show abstract
FigTree is a long-standing phylogenetic tree viewer, but its GUI-centered workflow does not itself provide a versioned, batch-replayable record of styling operations. We present FigTreeKit, a Python package that serializes a supported subset of FigTree 1.4.4 annotations (!hilight, !color, and !font), audits taxonomy mappings before topology-gated clade collapse, retains selected BEAST-style metadata in the tested fixtures, and invokes a patched FigTree renderer for headless PNG, PDF, and SVG output. Across 60 independently generated balanced trees with 50-10,000 taxa (10 trees per size, each timed 10 times as technical replicates), the tree-level log-log slope of export time was 0.96 (95% confidence interval [CI], 0.91-1.01), which is compatible with approximately linear scaling over the tested range but does not prove it. The 189,801-taxon GTDB R232 bacterial reference tree was parsed and exported as a large-data scalability demonstration. On the 10,122-taxon GTDB R232 archaeal reference tree, the scripted workflow assessed 179 order-level groups; 142 multi-tip groups produced non-trivial collapses, whereas 37 singleton groups did not alter the display. The software is accompanied by 796 passing tests, a golden conformance corpus that includes acceptance tests against the bundled FigTree JAR, deterministic scenario-based topology checks, and an overall statement coverage of 81%, reported as a descriptive engineering metric. FigTreeKit is released under the GPL-2.0-or-later license as the figtreekit package on PyPI, with source code, documentation, and benchmark data archived on Zenodo.
Matching journals
The top 7 journals account for 50% of the predicted probability mass.
Similar papers in this journal
Similar papers in this journal
Similar papers in this journal
"Similar papers" are the closest papers from that journal in the model's embedding space. They show what the match is built on, but the ranking comes mostly from a classifier over the whole training set, not from these examples alone.