Bio Metagenomics Visualization
FreedomIntelligence/OpenClaw-Medical-Skills
Visualize metagenomic profiles using R (phyloseq, microbiome) and Python (matplotlib, seaborn).
Draw and export phylogenetic trees with Bio.Phylo plus matplotlib, and route rich figures to ggtree, ETE4, or iTOL.
$ npx skills add GPTomics/bioSkills --skill bio-phylo-tree-visualization -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install GPTomics/bioSkills bio-phylo-tree-visualization --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "bio-phylo-tree-visualization" agent skill from https://github.com/GPTomics/bioSkills/tree/main/phylogenetics/tree-visualization into .claude/skills/bio-phylo-tree-visualization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-phylo-tree-visualization", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/GPTomics/bioSkills/tree/main/phylogenetics/tree-visualizationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add GPTomics/bioSkills --skill bio-phylo-tree-visualization -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install GPTomics/bioSkills bio-phylo-tree-visualization --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/phylogenetics/tree-visualization .agents/skills/bio-phylo-tree-visualization && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "bio-phylo-tree-visualization" agent skill from https://github.com/GPTomics/bioSkills/tree/main/phylogenetics/tree-visualization into .agents/skills/bio-phylo-tree-visualization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-phylo-tree-visualization", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add GPTomics/bioSkills --skill bio-phylo-tree-visualization -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install GPTomics/bioSkills bio-phylo-tree-visualization --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/phylogenetics/tree-visualization .cursor/skills/bio-phylo-tree-visualization && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "bio-phylo-tree-visualization" agent skill from https://github.com/GPTomics/bioSkills/tree/main/phylogenetics/tree-visualization into .cursor/skills/bio-phylo-tree-visualization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-phylo-tree-visualization", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/GPTomics/bioSkills.git --path phylogenetics/tree-visualization--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add GPTomics/bioSkills --skill bio-phylo-tree-visualization -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install GPTomics/bioSkills bio-phylo-tree-visualization --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/phylogenetics/tree-visualization .gemini/skills/bio-phylo-tree-visualization && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "bio-phylo-tree-visualization" agent skill from https://github.com/GPTomics/bioSkills/tree/main/phylogenetics/tree-visualization into .gemini/skills/bio-phylo-tree-visualization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-phylo-tree-visualization", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install GPTomics/bioSkills bio-phylo-tree-visualizationInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add GPTomics/bioSkills --skill bio-phylo-tree-visualization -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .github/skills && cp -r skills-src/phylogenetics/tree-visualization .github/skills/bio-phylo-tree-visualization && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "bio-phylo-tree-visualization" agent skill from https://github.com/GPTomics/bioSkills/tree/main/phylogenetics/tree-visualization into .github/skills/bio-phylo-tree-visualization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-phylo-tree-visualization", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add GPTomics/bioSkills --skill bio-phylo-tree-visualization -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install GPTomics/bioSkills bio-phylo-tree-visualization --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/phylogenetics/tree-visualization .opencode/skills/bio-phylo-tree-visualization && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "bio-phylo-tree-visualization" agent skill from https://github.com/GPTomics/bioSkills/tree/main/phylogenetics/tree-visualization into .opencode/skills/bio-phylo-tree-visualization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-phylo-tree-visualization", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
bio-phylo-tree-visualizationDraw 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. 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.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit d91ed3d. It shows what the files ask for, not the result of running them.
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.
Ships script files (Python), which the agent can run.
Shell commands in SKILL.md call:
pipFrom the folder's file list and the shell code blocks in SKILL.md.
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.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from GPTomics/bioSkills at commit d91ed3d, republished under its MIT licence (© GPTomics). 2,486 words, ~5,212 tokens.
.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.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:
pip show biopython then help(Phylo.draw) to check signaturespackageVersion('ggtree') then ?ggtree to verify layout and geom argumentsIf 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.
"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.
Phylo.draw(tree, axes=ax) (Bio.Phylo + matplotlib)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.
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:
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.
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) | Citation | Layouts and annotation power | When to choose |
|---|---|---|---|
| Bio.Phylo + matplotlib (Py) | Talevich 2012 | rectangular phylogram/cladogram only; one label per node via label_func/branch_labels; no circular/unrooted, no BEAST-block parse | a 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 2021 | rectangular, 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 directly | the 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 2016 | rectangular and circular; programmatic per-node NodeStyle/faces and layout functions; integrated NCBI taxonomy | styling thousands of nodes by rule, taxonomy-driven annotation, or rendering many trees headlessly in Python |
| iTOL v6 (web) | Letunic 2024 | rectangular, circular, unrooted, very large trees; tab-delimited dataset templates for color strips, heatmaps, bars, binary symbols, clade collapse; SVG/PDF/PNG/EPS export | large 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/color | interactive 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.
| Layout | Reveals | Hides or distorts | Good for | Bad for |
|---|---|---|---|---|
| Rectangular phylogram | branch lengths read directly off a linear axis; honest distance comparison | tip labels overplot past a few hundred tips; uses vertical space | the default when length matters and tip count is moderate (<~150) | very large trees |
| Slanted / triangular | compactness; quick topology read | the diagonal implies a ladder/progression; imprecise length reading | quick schematic topology views | precise branch-length comparison |
| Circular / fan | hundreds to thousands of tips in one panel; metadata rings | radial distortion -- the same length subtends a larger arc near the rim, so distance is perceptually compressed near the root; near-root structure cramped | big trees where the message is broad structure plus aligned metadata | quantitative branch-length comparison |
| Unrooted / radial | honestly shows NO assumed root or time direction; overall shape and long-branch outliers | no time direction; clade membership harder to trace; clusters over-read as clades | exploratory views, "no root committed" | directional stories; any "basal/early-diverging" claim |
| Chronogram (time-tree) | node timing on a time axis | requires a clock model and calibrations the reader must trust; without HPD bars timing looks falsely precise | dated BEAST/treePL/MCMCtree trees where timing is the message | any 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.
Quick text and ASCII inspection, no figure needed:
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 logDraw to a vector file (always pass an axes and do_show=False for headless/scripted use):
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):
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):
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:
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.
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.
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.
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.
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."
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.
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.
These are operational defaults for a standard portrait panel with ~6-8 pt labels; adapt to font, page, and journal specs.
| Quantity | Threshold | Rationale / source |
|---|---|---|
| Tips, rectangular horizontal labels comfortable | <=~50 | labels do not collide at legible font |
| Tips, start rotating/shrinking labels | ~50-150 | label height x tip count approaches panel height |
| Tips, switch to circular/fan or collapse clades | ~150-500 | rectangular labels collide; radial labels recover space |
| Tips, per-tip text impractical; use strips/rings | >~500-1000 | annotate by color/groups (iTOL, ggtreeExtra); iTOL is built for large trees |
| Publication export | vector (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 phylogram | mandatory (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 | >=80 | IQ-TREE recommendation |
| Posterior probability strong | >=0.95, but WEAKER than bootstrap 95 | PP 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.
| Error / symptom | Cause | Solution |
|---|---|---|
| BEAST HPD bars absent from a Python figure | drew an annotated tree with Bio.Phylo | route through treeio read.beast + ggtree geom_range |
| Figure not saving / blank | do_show=True opens a window instead of writing | pass do_show=False, then fig.savefig(...) |
| Branch colors not appearing | plain Newick tree has no color slot | convert with tree.as_phyloxml() and set clade.color |
| Labels overlap into a black band | too many tips for rectangular layout | increase panel height, rotate labels, or switch to circular/iTOL |
| "Basal" claim on a radial tree | narrated an unrooted layout as if rooted | root explicitly (tree-manipulation) and show the root before any directional claim |
| Support number misread | bare integer with no measure stated | label the measure(s) and order; collapse sub-threshold nodes to polytomies |
Phylo.draw has no circular option | Bio.Phylo is rectangular-only | use ggtree layout='circular', ETE4, or iTOL |
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.
© GPTomics, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files in phylogenetics/tree-visualization of GPTomics/bioSkills.
Open the folder on GitHubat commit d91ed3d
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.
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Bio Phylo Tree Visualization this skillGPTomics/bioSkills | 1.2k | 1 repos | ~5.2k | Automated safety check: Pass | MIT | |
| Bio Metagenomics VisualizationFreedomIntelligence/OpenClaw-Medical-Skills | 3.1k | 1 repos | ~1.8k | Automated safety check: Pass | None | |
| Bio Copy Number Cnv VisualizationFreedomIntelligence/OpenClaw-Medical-Skills | 3.1k | — | ~2.6k | Automated safety check: Pass | None | |
| Scientific Figure MakingChenLiu-1996/figures4papers | 8.3k | — | ~557 | Automated safety check: Pass | Custom licence | |
| Plot From ImageTrae1ounG/paper-plot-skills | 869 | 1 repos | ~868 | Automated safety check: Pass | None | |
| Python Executorcortega26/chile-hub | 113 | 2 repos | ~1.5k | Automated safety check: Pass | MIT |
FreedomIntelligence/OpenClaw-Medical-Skills
Visualize metagenomic profiles using R (phyloseq, microbiome) and Python (matplotlib, seaborn).
FreedomIntelligence/OpenClaw-Medical-Skills
Visualize copy number profiles, segments, and compare across samples.
ChenLiu-1996/figures4papers
Covers publication-ready matplotlib figures for academic papers, slides, and reports—bars, trends, scatter, heatmaps, and multi-panel layouts—with this…
Trae1ounG/paper-plot-skills
Reproduce any academic paper figure from an uploaded image using accumulated style experience.
cortega26/chile-hub
Execute Python code in a safe sandboxed environment via [inference.sh](https://inference.sh).
VILA-Lab/FigMirror
Redraws your data as a matplotlib figure in the visual style of a reference paper figure, using a drawer and reviewer loop.
GPTomics/bioSkills
Read, write, and convert multiple sequence alignment files using Biopython Bio.AlignIO.
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.
GPTomics/bioSkills
Write biological sequences to files (FASTA, FASTQ, GenBank, EMBL) using Biopython Bio.SeqIO.
GPTomics/bioSkills
Soft- or hard-clips PCR primer footprints from aligned amplicon BAMs so primer bases stop masquerading as confirmed reference sequence.
GPTomics/bioSkills
Filters BAM alignments by FLAG bits, mapping quality and regions with samtools view or pysam, with recipes for common keep and drop cases.
GPTomics/bioSkills
Create and use BAI/CSI indices for BAM/CRAM files using samtools and pysam.
Works with
Categories
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.
Bio Phylo Tree Visualization fits situations like: choosing a layout; coloring branches; labeling support; exporting vector figures.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.