Beautify phylogenetic trees with taxonomy color blocks, bootstrap values, and timelines. Accepts Newick format and outputs PNG, PDF, or SVG.
78
73%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./scientific-skills/Data analysis/phylogenetic-tree-styler/SKILL.mdBeautify phylogenetic trees, add taxonomy color blocks, Bootstrap values, and timelines. Accepts standard Newick format input.
This skill accepts: Newick format phylogenetic tree files (.nwk, .newick) and optional taxonomy CSV annotation files, for the purpose of generating beautified tree visualizations.
If the user's request does not involve phylogenetic tree visualization — for example, asking to build a phylogenetic tree from sequences, run alignment, or perform evolutionary analysis — do not proceed with the workflow. Instead respond:
"phylogenetic-tree-styler is designed to beautify existing phylogenetic trees in Newick format. It does not build trees from sequences. Your request appears to be outside this scope. Please provide a Newick tree file, or use a more appropriate tool for your task."
Do not continue the workflow when the request is out of scope, missing the required -i input file, or would require unsupported assumptions. For missing inputs, state exactly which fields are missing.
python -m py_compile scripts/main.py
python scripts/main.py --help
python scripts/main.py -i tree.nwk -o tree_styled.pngComposability: Output PNG/PDF/SVG files can be consumed by multi-panel-figure-assembler or graphical-abstract-wizard for composite figure assembly.
python3 scripts/main.py --input <input_tree.nwk> --output <output.png> [options]| Parameter | Description | Default |
|---|---|---|
-i, --input | Input Newick format phylogenetic tree file | Required |
-o, --output | Output image file path | tree_styled.png |
-f, --format | Output format: png, pdf, svg | png |
-w, --width | Image width (pixels) | 1200 |
-h, --height | Image height (pixels) | 800 |
--show-bootstrap | Show Bootstrap values | False |
--bootstrap-threshold | Only show Bootstrap values above this threshold | 50 |
--taxonomy-file | Species taxonomy CSV (name,domain,phylum,class,order,family,genus) | None |
--show-timeline | Show timeline | False |
--root-age | Root node age (million years ago) | None |
--branch-color | Branch color | black |
--leaf-color | Leaf node label color | black |
python3 scripts/main.py -i tree.nwk -o tree_basic.pngpython3 scripts/main.py -i tree.nwk -o tree_bootstrap.png --show-bootstrap --bootstrap-threshold 70python3 scripts/main.py -i tree.nwk -o tree_taxonomy.png --taxonomy-file taxonomy.csvpython3 scripts/main.py -i tree.nwk -o tree_timeline.png --show-timeline --root-age 500((A:0.1,B:0.2)95:0.3,(C:0.4,D:0.5)88:0.6);Bootstrap values can be placed at node label positions (e.g., 95, 88 above).
Supported format: Standard Newick only. Extended Newick variants (NHX, NEXUS) are not supported. If your file uses NHX or NEXUS format, convert to standard Newick first (e.g., using FigTree or Dendropy).
name,domain,phylum,class
Species_A,Bacteria,Proteobacteria,Gammaproteobacteria
Species_B,Bacteria,Firmicutes,Bacilli
Species_C,Archaea,Euryarchaeota,Methanobacteriapip install ete3 matplotlib numpy pandasIf scripts/main.py fails or required inputs are incomplete:
No module named 'ete3', instruct: pip install ete3 matplotlib numpy pandas then retry with: python3 scripts/main.py -i tree.nwk -o out.pngpython3 scripts/main.py -i tree.nwk -o out.png.Every final response must make these items explicit when relevant:
scripts/main.py fails, report the failure point, summarize what still can be completed safely, and provide a manual fallback.Use the following fixed structure for non-trivial requests:
pip install -r requirements.txtca9aaa4
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.