Publication-quality bioinformatics figures - phylogenetic trees, genome browsers, iTOL datasets, and data presentation
npx claudepluginhub joshuarweaver/cascade-ai-ml-engineering --plugin delphine-l-claude-globalThis skill is limited to using the following tools:
---
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
DATASET_BINARY (Recommended for markers/symbols):
Format example:
DATASET_BINARY
SEPARATOR TAB
DATASET_LABEL CLR Technology
COLOR #ff0000
LEGEND_TITLE Sequencing Technology
LEGEND_SHAPES 2
LEGEND_COLORS #ff0000
LEGEND_LABELS CLR (PacBio)
FIELD_SHAPES 2
FIELD_COLORS #ff0000
FIELD_LABELS CLR
DATA
Species_name_1 1
Species_name_2 0
Species_name_3 1
DATASET_SYMBOL (Less reliable):
DATASET_COLORSTRIP (Good for gradients):
Error: "Unknown variable 'SYMBOL_SHAPE'"
Error: "Invalid color '1' for node X"
species<tab>0_or_1Symbols not appearing on tree:
Critical: Species names must match exactly between tree and annotation files
Common issues:
Fix for case sensitivity:
# Convert scientific names to tree format with case normalization
df['species_tree'] = df['scientific_name'].str.replace(' ', '_')
# Fix uppercase after underscore (Alca_Torda -> Alca_torda)
df['species_tree'] = df['species_tree'].str.replace(
r'_([A-Z])',
lambda m: '_' + m.group(1).lower(),
regex=True
)
Validation pattern:
# Always validate species compatibility
import re
# Extract species from tree
with open('tree.nwk') as f:
tree_content = f.read()
tree_species = set(re.findall(r'([A-Z][a-z]+_[a-z]+)', tree_content))
# Check config species
config_species = set(df['species_tree'])
missing = config_species - tree_species
if missing:
print(f"Species in config but not in tree: {missing}")
Effective color schemes:
Temporal progression (old → new):
#ffffcc (2019) → #b10026 (2025)Avoid:
ColorBrewer palettes for sequential data: