Agent skill

Bio Phylo Tree Visualization

by GPTomics in GPTomics/bioSkills

Draw and export phylogenetic trees with Bio.Phylo plus matplotlib, and route rich figures to ggtree, ETE4, or iTOL.

MITAuto-check passedData & Analytics

Install Bio Phylo Tree Visualization

skills CLI
$ npx skills add GPTomics/bioSkills --skill bio-phylo-tree-visualization -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install GPTomics/bioSkills bio-phylo-tree-visualization --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/phylogenetics/tree-visualization .claude/skills/bio-phylo-tree-visualization && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
bio-phylo-tree-visualization
GitHub stars
1.2k
Used in
1 other repo
Token cost
~5.2k tokens
SKILL.md length
2,486 words
Files
5
Skills in repo
559
Repo updated
First seen
Licence
MIT

At a glance

Draw and export phylogenetic trees with Bio.Phylo plus matplotlib, and route rich figures to ggtree, ETE4, or iTOL.

  • Works in 4 steps: The geometry is a claim about what the… → Ladderization implies a directionality… → Which support is shown, and whether it… → …
  • Choosing a layout
  • SKILL.md covers Version Compatibility, The Single Most Important…, Tool Taxonomy and What Each Layout Reveals and…, plus 6 more sections
  • Runs Python scripts from its folder; calls pip

What it does

Bio Phylo Tree Visualization is an agent skill from GPTomics/bioSkills. Draw and export phylogenetic trees with Bio.Phylo plus matplotlib, and route rich figures to ggtree, ETE4, or iTOL. Covers why a tree figure is an argument not a neutral picture, the cladogram-vs-phylogram-vs-chronogram choice that hides or reveals rate and time, how ladderization manufactures a false arrow of progress, why an unlabeled support number always flatters the result (bootstrap vs posterior vs SH-aLRT vs UFBoot are different scales), why Bio.Phylo silently drops BEAST HPD bars so annotated Bayesian…

Its SKILL.md is about 5.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files (for example `examples/ascii_tree.py`, `examples/basic_tree_plot.py` and `examples/labeled_tree.py`).

It sits in Data & Analytics, covering Data visualization and Bioinformatics. It works with Matplotlib and Python. The repository describes itself as: a set of SKILLS.md for doing bioinformatics with agents like claude code. The licence is MIT.

When your agent uses it

  • Choosing a layout
  • Coloring branches
  • Labeling support
  • Exporting vector figures

Example prompts

  • “/bio-phylo-tree-visualization”

Requirements

  • Python 3

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. The geometry is a claim about what the lengths mean. A cladogram asserts only nesting; a phylogram asserts nesting plus amount of change…
  2. Ladderization implies a directionality that is not there. Sibling subclades are unordered, so any node rotation is the same tree, but the…
  3. Which support is shown, and whether it is labeled, changes the conclusion. Support is not accuracy, and the measures are not…
  4. The drawing tool is decided by the I/O layer, not the surrounding language. If the tree carries BEAST/MrBayes HPD intervals and…

What it can do on your machine

Read from SKILL.md and the folder at commit d91ed3d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • pip

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Bio Phylo Tree Visualization loads about 5.2k tokens when it runs. Until then it costs about 228 tokens; SKILL.md has 2,486 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~228
When it runs · the whole SKILL.md, loaded when a task matches
~5.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from GPTomics/bioSkills at commit d91ed3d, republished under its MIT licence (© GPTomics). 2,486 words, ~5,212 tokens.

Download SKILL.mdSave it as .claude/skills/bio-phylo-tree-visualization/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
bio-phylo-tree-visualization
description
Draw and export phylogenetic trees with Bio.Phylo plus matplotlib, and route rich figures to ggtree, ETE4, or iTOL. Covers why a tree figure is an argument not a neutral picture, the cladogram-vs-phylogram-vs-chronogram choice that hides or reveals rate and time, how ladderization manufactures a false arrow of progress, why an unlabeled support number always flatters the result (bootstrap vs posterior vs SH-aLRT vs UFBoot are different scales), why Bio.Phylo silently drops BEAST HPD bars so annotated Bayesian trees must go through treeio plus ggtree, and the tip-count and raster-vs-vector thresholds for legible publication figures. Use when drawing a tree, choosing a layout, coloring branches, showing or labeling support, exporting vector figures, or deciding a drawing tool. Routes annotation-preserving reads to tree-io, and rooting and ladderizing to tree-manipulation.
tool_type
python
primary_tool
Bio.Phylo
goal_approach_exempt
true

Version Compatibility

Reference examples tested with: BioPython 1.83+, matplotlib 3.8+. Rich-figure alternatives: ggtree 3.12+ / treeio 1.28+ / ggtreeExtra 1.14+ (Bioconductor), ete4 4.x (Python), iTOL v6 (web), FigTree (desktop).

Before using code patterns, verify installed versions match. If versions differ:

  • Python: pip show biopython then help(Phylo.draw) to check signatures
  • R: packageVersion('ggtree') then ?ggtree to verify layout and geom arguments

If code throws ImportError, AttributeError, or TypeError, introspect the installed package and adapt the example to match the actual API rather than retrying.

Bio.Phylo draw() renders rectangular layouts only and parses no BEAST/MrBayes annotation block; circular/fan/unrooted layouts and HPD bars require ggtree, ETE4, or iTOL. The ETE3->ETE4 migration changed APIs; introspect rather than assume ETE3 signatures.

Tree Visualization -- A Figure Is an Argument

"Draw and export my tree figure" -> Render a topology under a chosen layout and branch-length encoding, decide which support to show and how to label it, and export in a format that survives print.

  • Python quick look: Phylo.draw(tree, axes=ax) (Bio.Phylo + matplotlib)
  • Publication with metadata, rich support, or BEAST HPD bars: ggtree + treeio (R)

Scope: drawing, styling, annotating, and exporting tree figures, and choosing the drawing tool. Reading/converting files and preserving [&...] annotations before plotting -> tree-io. Rooting, ladderizing, pruning, collapsing low-support nodes -> tree-manipulation. ggplot2 grammar, themes, and ggsave underlying ggtree -> data-visualization/ggplot2-fundamentals. Composing a tree plus aligned panels into one figure -> data-visualization/multipanel-figures.

The Single Most Important Modern Insight

A phylogenetic tree figure is a rhetorical and modeling artifact, not a neutral picture of the data. A Newick or Nexus file encodes a topology, optionally branch lengths, optionally one node label; it does NOT encode which child is drawn on top, whether the horizontal axis means evolutionary distance or just nesting depth, where the root sits, the aspect ratio, or which of several support measures a bare "95" refers to. Every one of those is supplied by the person drawing the tree, so the figure is the data filtered through a dozen interpretive choices the reader cannot see. Four argument-level decisions dominate, and the same file can be drawn to tell mutually contradictory stories that are all technically correct renderings of one topology:

  1. The geometry is a claim about what the lengths mean. A cladogram asserts only nesting; a phylogram asserts nesting plus amount of change (substitutions per site); a chronogram asserts timing and demands a clock model plus calibrations. Drawing a phylogram as a cladogram erases rate variation, the very signal that flags long-branch attraction; drawing untrusted branch lengths as a phylogram fabricates a quantitative claim.
  2. Ladderization implies a directionality that is not there. Sibling subclades are unordered, so any node rotation is the same tree, but the eye reads top-to-bottom ordering as a march of progress toward the bottom-most tip. Rotation can also bury non-monophyly: a paraphyletic group can be rotated to look contiguous, or a clean clade made to look scattered.
  3. Which support is shown, and whether it is labeled, changes the conclusion. Support is not accuracy, and the measures are not interchangeable: a posterior of 0.95 is generally weaker evidence than a bootstrap of 95 for the same data, and UFBoot 95, SH-aLRT 80, and TBE live on different scales. A bare integer with no legend is the quietest lie because the reader assumes bootstrap and the ambiguity always flatters the result.
  4. The drawing tool is decided by the I/O layer, not the surrounding language. If the tree carries BEAST/MrBayes HPD intervals and posteriors, only a tool whose data model can carry those annotations (treeio + ggtree) can plot them; Bio.Phylo flattens the tree to topology + length + one label and silently drops the uncertainty that was the result.

The skill's job is to make these choices conscious and DECLARE them in the caption, not to default into them. Default ladderization plus cladogram-ish rendering plus unlabeled nodes is the path of least resistance, and it is an argument the user did not intend to make.

Tool Taxonomy

The central decision is which drawing tool to reach for, and it is coupled to the I/O decision: a tool that flattens the tree to topology plus one label cannot draw BEAST HPD bars or posteriors it cannot represent. The plotting path through treeio + ggtree is the same I/O choice made in tree-io.

Tool (lang)CitationLayouts and annotation powerWhen to choose
Bio.Phylo + matplotlib (Py)Talevich 2012rectangular phylogram/cladogram only; one label per node via label_func/branch_labels; no circular/unrooted, no BEAST-block parsea fast scripted look inside a Python pipeline; headless/CI rendering of simple trees; NOT publication figures with metadata or HPD bars
ggtree + treeio + ggtreeExtra (R)Yu 2017; Wang 2020; Xu 2021rectangular, slanted, circular, fan, radial/unrooted; %<+% attaches a data.frame, geom_tiplab/geom_nodelab/geom_cladelab, gheatmap, geom_facet (Cartesian) or geom_fruit rings (circular); treeio reads BEAST/MrBayes/IQ-TREE so HPD bars and posterior plot directlythe publication standard whenever a figure integrates metadata, rich/dual support, HPD bars, or aligned panels; the only clean path for BEAST HPD bars and posterior
ETE4 (Py; ETE3 paper)Huerta-Cepas 2016rectangular and circular; programmatic per-node NodeStyle/faces and layout functions; integrated NCBI taxonomystyling thousands of nodes by rule, taxonomy-driven annotation, or rendering many trees headlessly in Python
iTOL v6 (web)Letunic 2024rectangular, circular, unrooted, very large trees; tab-delimited dataset templates for color strips, heatmaps, bars, binary symbols, clade collapse; SVG/PDF/PNG/EPS exportlarge trees and template-based metadata with no code; collaborative web-driven polished figures
FigTree (desktop GUI)Rambaut (software)rectangular, polar, radial; reads BEAST NEXUS node annotations to display HPD bars and posterior on screen; manual rotate/collapse/colorinteractive inspection of a single BEAST/MrBayes tree before scripting the final figure; not reproducible, use for exploration not the pipeline

Decision rule: large tree or no-code web annotation -> iTOL v6. Publication figure with metadata, dual support, HPD bars, or aligned heatmaps -> ggtree + treeio (+ ggtreeExtra for circular rings). Programmatic styling of thousands of nodes or NCBI-taxonomy annotation -> ETE4. Fast topology look from a Python script -> Bio.Phylo. Interactive rooting/inspection of one BEAST tree -> FigTree, then move the reproducible figure to ggtree. The recurring mistake is defaulting to Bio.Phylo because the pipeline is Python, then discovering it cannot draw a circular layout, place a heatmap, or show the BEAST HPD bars that are the whole point.

What Each Layout Reveals and Hides

LayoutRevealsHides or distortsGood forBad for
Rectangular phylogrambranch lengths read directly off a linear axis; honest distance comparisontip labels overplot past a few hundred tips; uses vertical spacethe default when length matters and tip count is moderate (<~150)very large trees
Slanted / triangularcompactness; quick topology readthe diagonal implies a ladder/progression; imprecise length readingquick schematic topology viewsprecise branch-length comparison
Circular / fanhundreds to thousands of tips in one panel; metadata ringsradial distortion -- the same length subtends a larger arc near the rim, so distance is perceptually compressed near the root; near-root structure crampedbig trees where the message is broad structure plus aligned metadataquantitative branch-length comparison
Unrooted / radialhonestly shows NO assumed root or time direction; overall shape and long-branch outliersno time direction; clade membership harder to trace; clusters over-read as cladesexploratory views, "no root committed"directional stories; any "basal/early-diverging" claim
Chronogram (time-tree)node timing on a time axisrequires a clock model and calibrations the reader must trust; without HPD bars timing looks falsely precisedated BEAST/treePL/MCMCtree trees where timing is the messageany tree lacking a clock; never draw without age uncertainty bars

Circular is still a ROOTED tree bent into a ring (center = root = past); unrooted/radial explicitly refuses a root. Presenting an unrooted radial tree and narrating "X is basal" is a contradiction.

Bio.Phylo + matplotlib Recipes

Quick text and ASCII inspection, no figure needed:

python
from Bio import Phylo

tree = Phylo.read('tree.nwk', 'newick')
print(tree)                  # indented text summary
Phylo.draw_ascii(tree)       # ASCII-art diagram, useful in a terminal or log

Draw to a vector file (always pass an axes and do_show=False for headless/scripted use):

python
from Bio import Phylo
import matplotlib.pyplot as plt

tree = Phylo.read('tree.nwk', 'newick')
tree.ladderize()             # legibility only; ordering carries NO phylogenetic meaning -- say so in the caption

fig, ax = plt.subplots(figsize=(10, 8))
Phylo.draw(tree, axes=ax, do_show=False)
ax.set_title('Phylogenetic tree (phylogram, branch length = subs/site)')
fig.savefig('tree.pdf', bbox_inches='tight')   # vector: text and lines stay sharp at any size
plt.close(fig)

Label tips, and show support with its measure named (never a bare integer):

python
def tip_only(clade):
    return clade.name if clade.is_terminal() else ''

def support_label(clade):
    # the measure MUST be stated in the legend/caption; here values are bootstrap percentages
    if not clade.is_terminal() and clade.confidence is not None:
        return f'{clade.confidence:.0f}'
    return ''

fig, ax = plt.subplots(figsize=(12, 10))
Phylo.draw(tree, axes=ax, do_show=False, label_func=tip_only, branch_labels=support_label)
ax.set_title('Bootstrap support shown at internal nodes')
fig.savefig('supported_tree.svg', bbox_inches='tight')
plt.close(fig)

Color branches by group (convert to phyloXML for native color support):

python
from Bio.Phylo.PhyloXML import BranchColor

xtree = tree.as_phyloxml()                     # phyloXML carries branch color through draw()
for clade in xtree.find_clades():
    if clade.name and clade.name.startswith('Homo'):
        clade.color = BranchColor.from_name('red')

fig, ax = plt.subplots(figsize=(10, 8))
Phylo.draw(xtree, axes=ax, do_show=False)
fig.savefig('colored_tree.pdf', bbox_inches='tight')
plt.close(fig)

Scale the panel to tip count so labels stay legible, and drop the axis frame:

python
n_tips = len(tree.get_terminals())
height = max(8, n_tips * 0.25)                  # ~0.25 in/tip keeps ~6-8 pt labels from colliding

fig, ax = plt.subplots(figsize=(10, height))
Phylo.draw(tree, axes=ax, do_show=False)
ax.axis('off')
fig.savefig('scaled_tree.pdf', bbox_inches='tight')
plt.close(fig)

For circular/fan/unrooted layouts, metadata heatmaps, dual support, or BEAST HPD bars, Bio.Phylo cannot help -- route to ggtree + treeio (R), ETE4, or iTOL.

Per-Method Failure Modes

Drawing Meaningless Branch Lengths as a Phylogram

Trigger: Rendering a constraint tree, a supertree, or a tree whose lengths are non-comparable with the horizontal axis proportional to length. Mechanism: The phylogram geometry asserts a quantitative claim about evolutionary distance that the lengths do not support. Symptom: A topology-only or arbitrary-length tree appears to make precise distance statements. Fix: Draw as a cladogram and SAY so (branch.length='none' in ggtree); or, if lengths are real, keep them and state the unit (subs/site vs time) plus a scale bar.

Unlabeled or Mislabeled Support

Trigger: A node shows "98" with no legend, or two measures are printed without saying which is which. Mechanism: The reader defaults to assuming bootstrap, but it may be a posterior (much weaker for the same number), an SH-aLRT (cutoff 80), a UFBoot (cutoff 95, not the BP-70 scale), or a TBE. Symptom: A weakly resolved bush reads as a confident comb because the displayed number is over-read. Fix: Always state the measure(s) and their order (e.g. "SH-aLRT/UFBoot" at each node); collapse nodes below threshold into polytomies rather than drawing fake resolution, since bootstrap, posterior, SH-aLRT, and UFBoot sit on different scales.

Show full SKILL.md (951 more words)Show less
Tip-Label Overplotting on Large Trees

Trigger: A rectangular layout past a few hundred tips. Mechanism: Horizontal labels collide into an unreadable black band; authors then shrink the font to illegibility or silently drop labels. Symptom: Tip labels are unreadable or missing. Fix: Rotate labels, switch to circular/fan with radial labels, collapse uninformative clades, annotate by colored strips/rings (ggtreeExtra, iTOL datasets) instead of text, or move to iTOL which is built for large trees.

Non-Monophyly Hidden by Ladderization or Rotation

Trigger: Rotating nodes to make a paraphyletic or polyphyletic group look contiguous (or a clade look scattered). Mechanism: Node rotation is information-free with respect to the tree, but the eye reads contiguity as a clade and ordering as direction. Symptom: A group that is not monophyletic appears unified, or a directional narrative is implied. Fix: Color by group and let the topology speak; never narrate ordering as meaning; state "tips ladderized for legibility, ordering carries no phylogenetic meaning."

Chronogram Without Age Uncertainty

Trigger: Drawing a BEAST/MrBayes time-tree with point-estimate node ages and no HPD bars. Mechanism: The 95% HPD intervals on node heights ARE the result; omitting them asserts false precision. Symptom: Node ages look known to the day; a reviewer asks where the credible intervals went. Fix: Draw the HPD bars via treeio read.beast() -> ggtree geom_range('height_0.95_HPD') (introspect the column name; it varies by source program and treeio version), or enable node bars in FigTree; never draw an annotated Bayesian tree with Bio.Phylo, which drops the annotations silently.

Raster Export for Publication

Trigger: Saving a tree as a 150-dpi PNG for a paper. Mechanism: Raster pixelates thin branches and small tip labels at print size. Symptom: Fuzzy labels and pixelated branches; journal rejection or blurry print. Fix: Export SVG/PDF/EPS (vector) so text and lines stay sharp at any scale; only if forced to rasterize, do so at final size with >=600 dpi for line art.

Quantitative Thresholds

These are operational defaults for a standard portrait panel with ~6-8 pt labels; adapt to font, page, and journal specs.

QuantityThresholdRationale / source
Tips, rectangular horizontal labels comfortable<=~50labels do not collide at legible font
Tips, start rotating/shrinking labels~50-150label height x tip count approaches panel height
Tips, switch to circular/fan or collapse clades~150-500rectangular labels collide; radial labels recover space
Tips, per-tip text impractical; use strips/rings>~500-1000annotate by color/groups (iTOL, ggtreeExtra); iTOL is built for large trees
Publication exportvector (SVG/PDF/EPS)text and lines stay sharp at any scale; the default
Forced raster, line-art/tree>=600 dpi (many journals 600-1200)~300 dpi is the photo floor but too coarse for thin branches and small labels
Scale bar on any phylogrammandatory (subs/site or a time axis)without it the reader cannot recover true distances under aspect-ratio distortion
Bootstrap strong>=95 (>=70 moderate)Hillis-Bull heuristic; state the measure (Felsenstein 1985)
UFBoot strong>=95 (not the BP-70 scale)recalibrated; IQ-TREE joint rule SH-aLRT>=80 AND UFBoot>=95
SH-aLRT strong>=80IQ-TREE recommendation
Posterior probability strong>=0.95, but WEAKER than bootstrap 95PP systematically higher for the same data; do not equate

Lock the branch-length scale; do not let the figure engine non-uniformly stretch a phylogram to fill a fixed panel, which distorts the lengths the figure exists to communicate.

Common Errors

Error / symptomCauseSolution
BEAST HPD bars absent from a Python figuredrew an annotated tree with Bio.Phyloroute through treeio read.beast + ggtree geom_range
Figure not saving / blankdo_show=True opens a window instead of writingpass do_show=False, then fig.savefig(...)
Branch colors not appearingplain Newick tree has no color slotconvert with tree.as_phyloxml() and set clade.color
Labels overlap into a black bandtoo many tips for rectangular layoutincrease panel height, rotate labels, or switch to circular/iTOL
"Basal" claim on a radial treenarrated an unrooted layout as if rootedroot explicitly (tree-manipulation) and show the root before any directional claim
Support number misreadbare integer with no measure statedlabel the measure(s) and order; collapse sub-threshold nodes to polytomies
Phylo.draw has no circular optionBio.Phylo is rectangular-onlyuse ggtree layout='circular', ETE4, or iTOL

References

Talevich E, Invergo BM, Cock PJA, Chapman BA. 2012. Bio.Phylo: a unified toolkit for processing, analyzing and visualizing phylogenetic trees in Biopython. BMC Bioinformatics 13:209. Yu G, Smith DK, Zhu H, Guan Y, Lam TT-Y. 2017. ggtree: an R package for visualization and annotation of phylogenetic trees with their covariates and other associated data. Methods in Ecology and Evolution 8(1):28-36. Yu G. 2020. Using ggtree to visualize data on tree-like structures. Current Protocols in Bioinformatics 69(1):e96. Wang L-G, Lam TT-Y, Xu S, Dai Z, Zhou L, Feng T, Guo P, Dunn CW, Jones BR, Bradley T, Zhu H, Guan Y, Jiang Y, Yu G. 2020. treeio: an R package for phylogenetic tree input and output with richly annotated and associated data. Molecular Biology and Evolution 37(2):599-603. Xu S, Dai Z, Guo P, Fu X, Liu S, Zhou L, Tang W, Feng T, Chen M, Zhan L, Wu T, Hu E, Jiang Y, Bo X, Yu G. 2021. ggtreeExtra: compact visualization of richly annotated phylogenetic data. Molecular Biology and Evolution 38(9):4039-4042. Huerta-Cepas J, Serra F, Bork P. 2016. ETE 3: reconstruction, analysis, and visualization of phylogenomic data. Molecular Biology and Evolution 33(6):1635-1638. Letunic I, Bork P. 2024. Interactive Tree of Life (iTOL) v6: recent updates to the phylogenetic tree display and annotation tool. Nucleic Acids Research 52(W1):W78-W82. Felsenstein J. 1985. Confidence limits on phylogenies: an approach using the bootstrap. Evolution 39(4):783-791.

  • tree-io - parsing and preserving BEAST/MrBayes/IQ-TREE annotations so they survive into the figure; the tightest coupling
  • tree-manipulation - rooting, ladderizing, pruning, and collapsing low-support nodes before drawing
  • data-visualization/ggplot2-fundamentals - the grammar, themes, and ggsave vector export underlying ggtree
  • data-visualization/multipanel-figures - composing a tree plus aligned metadata panels into one figure

© GPTomics, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files in phylogenetics/tree-visualization of GPTomics/bioSkills.

  • SKILL.md
  • examples/ascii_tree.py
  • examples/basic_tree_plot.py
  • examples/labeled_tree.py
  • usage-guide.md

Open the folder on GitHubat commit d91ed3d

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in GPTomics/bioSkills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Bio Phylo Tree Visualization next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Bio Phylo Tree Visualization compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Bio Phylo Tree Visualization this skillGPTomics/bioSkills1.2k1 repos~5.2kAutomated safety check: PassMIT
Bio Metagenomics VisualizationFreedomIntelligence/OpenClaw-Medical-Skills3.1k1 repos~1.8kAutomated safety check: PassNone
Bio Copy Number Cnv VisualizationFreedomIntelligence/OpenClaw-Medical-Skills3.1k—~2.6kAutomated safety check: PassNone
Scientific Figure MakingChenLiu-1996/figures4papers8.3k—~557Automated safety check: PassCustom licence
Plot From ImageTrae1ounG/paper-plot-skills8691 repos~868Automated safety check: PassNone
Python Executorcortega26/chile-hub1132 repos~1.5kAutomated safety check: PassMIT

Similar skills

  • Bio Metagenomics Visualization

    FreedomIntelligence/OpenClaw-Medical-Skills

    Visualize metagenomic profiles using R (phyloseq, microbiome) and Python (matplotlib, seaborn).

    3.1k GitHub starsUsed in 1 repo~1.8k tokens
    Data & AnalyticsAuto-check passed
  • Bio Copy Number Cnv Visualization

    FreedomIntelligence/OpenClaw-Medical-Skills

    Visualize copy number profiles, segments, and compare across samples.

    3.1k GitHub stars~2.6k tokensUpdated 2 mo ago
    Data & AnalyticsAuto-check passed
  • Scientific Figure Making

    ChenLiu-1996/figures4papers

    Covers publication-ready matplotlib figures for academic papers, slides, and reports—bars, trends, scatter, heatmaps, and multi-panel layouts—with this…

    8.3k GitHub stars~557 tokensUpdated 3 days ago
    Data & AnalyticsAuto-check passed
  • Plot From Image

    Trae1ounG/paper-plot-skills

    Reproduce any academic paper figure from an uploaded image using accumulated style experience.

    869 GitHub starsUsed in 1 repo~868 tokens
    Data & AnalyticsAuto-check passed
  • Python Executor

    cortega26/chile-hub

    Execute Python code in a safe sandboxed environment via [inference.sh](https://inference.sh).

    113 GitHub starsUsed in 2 repos~1.5k tokens
    Data & AnalyticsAuto-check passed
  • Redraws your data as a matplotlib figure in the visual style of a reference paper figure, using a drawer and reviewer loop.

    523 GitHub stars~2.1k tokensUpdated 8 days ago
    Data & AnalyticsAuto-check passed

More from GPTomics/bioSkills

All 559 skills in this repo
  • Bio Alignment Io

    GPTomics/bioSkills

    Read, write, and convert multiple sequence alignment files using Biopython Bio.AlignIO.

    1.2k GitHub starsUsed in 3 repos~4.9k tokens
    Auto-check passed
  • bioSkills Installer

    GPTomics/bioSkills

    Installs the bioSkills collection of 425 bioinformatics skills in one step, or only chosen categories, so sequencing, RNA-seq, single-cell and variant tasks get specialized help.

    1.2k GitHub starsUsed in 1 repo~789 tokens
    Auto-check passed
  • Bio Write Sequences

    GPTomics/bioSkills

    Write biological sequences to files (FASTA, FASTQ, GenBank, EMBL) using Biopython Bio.SeqIO.

    1.2k GitHub starsUsed in 3 repos~2.1k tokens
    Auto-check passed
  • Amplicon Primer Clipping

    GPTomics/bioSkills

    Soft- or hard-clips PCR primer footprints from aligned amplicon BAMs so primer bases stop masquerading as confirmed reference sequence.

    1.2k GitHub starsUsed in 2 repos~2.2k tokens
    Auto-check passed
  • Filters BAM alignments by FLAG bits, mapping quality and regions with samtools view or pysam, with recipes for common keep and drop cases.

    1.2k GitHub starsUsed in 2 repos~3.6k tokens
    Auto-check passed
  • Bio Alignment Indexing

    GPTomics/bioSkills

    Create and use BAI/CSI indices for BAM/CRAM files using samtools and pysam.

    1.2k GitHub starsUsed in 2 repos~2.4k tokens
    Auto-check passed

Questions about Bio Phylo Tree Visualization

What does Bio Phylo Tree Visualization do?

Draw and export phylogenetic trees with Bio.Phylo plus matplotlib, and route rich figures to ggtree, ETE4, or iTOL. Bio Phylo Tree Visualization is an agent skill from GPTomics/bioSkills.Phylo plus matplotlib, and route rich figures to ggtree, ETE4, or iTOL.

When should I use Bio Phylo Tree Visualization?

Bio Phylo Tree Visualization fits situations like: choosing a layout; coloring branches; labeling support; exporting vector figures.

How do I install Bio Phylo Tree Visualization in Claude Code?

Run `npx skills add GPTomics/bioSkills --skill bio-phylo-tree-visualization -a claude-code`. Or copy the skill folder (phylogenetics/tree-visualization in GPTomics/bioSkills) into .claude/skills/bio-phylo-tree-visualization in your project. Claude Code loads it when a task matches its description.

How do I install Bio Phylo Tree Visualization in Codex?

Run `npx skills add GPTomics/bioSkills --skill bio-phylo-tree-visualization -a codex`. Or copy the skill folder (phylogenetics/tree-visualization in GPTomics/bioSkills) into .agents/skills/bio-phylo-tree-visualization in your project. Codex loads it when a task matches its description.

Can I use Bio Phylo Tree Visualization in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add GPTomics/bioSkills --skill bio-phylo-tree-visualization -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/bio-phylo-tree-visualization, .gemini/skills/bio-phylo-tree-visualization, .github/skills/bio-phylo-tree-visualization and .opencode/skills/bio-phylo-tree-visualization in your project.

What does Bio Phylo Tree Visualization need to run?

Going by SKILL.md and its folder, Bio Phylo Tree Visualization needs Python for the scripts in its folder and the command-line tools its instructions call (pip). Our summary lists: Python 3.

Does Bio Phylo Tree Visualization access the network?

SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Bio Phylo Tree Visualization safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Bio Phylo Tree Visualization use?

Bio Phylo Tree Visualization is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Bio Phylo Tree Visualization use?

About 5.2k tokens (SKILL.md is roughly 21k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Bio Phylo Tree Visualization?

Skills that share tags, products or a category with Bio Phylo Tree Visualization: Bio Metagenomics Visualization (FreedomIntelligence/OpenClaw-Medical-Skills, 3.1k stars), Bio Copy Number Cnv Visualization (FreedomIntelligence/OpenClaw-Medical-Skills, 3.1k stars), Scientific Figure Making (ChenLiu-1996/figures4papers, 8.3k stars) and Plot From Image (Trae1ounG/paper-plot-skills, 869 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Bio Phylo Tree Visualization?

GPTomics (a GitHub organization) maintains it in GPTomics/bioSkills, which has 1,217 GitHub stars. The repository holds 559 skills in this directory. The repository was last updated on August 15, 2026.

Source: GPTomics/bioSkills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.