v0.2.2
Highlights
- Breaking:
egt alg-dispersionrenamed toegt alg-dispersal. Update Snakefiles / pipeline scripts. egt decay-pairwiselearns--column-width-mmand--axes-aspectfor publication-grade C+D PDFs at exact column widths.egt phylotreeumapinteractive HTML overhauled (tabbed dashboard, clickable legend, linked-tree leaf hover, custom-taxonomy helper).- New
egt.dispersal_panel_stylehelper module + dispersal-focused test suite. bump-my-versiontooling for one-command releases; CHANGELOG rotates automatically.
Breaking changes
- CLI subcommand renamed:
egt alg-dispersion→egt alg-dispersal. Module file, every internal identifier, output filename, output directory, and plot label has been swept. Update any pipelines that invoke the old subcommand name.
Added
egt decay-pairwise --column-width-mm <int>: emitpanels_CD_<N>mm.pdfat total figure width exactly N mm. Widths too small to fit margins raiseValueError.egt decay-pairwise --axes-aspect <float>: per-panel data-box width/height ratio. Default reproduces the original axes geometry; locks aspect so panels never stretch across column widths.egt.dispersal_panel_stylemodule:density_alpha,rgba_array,apply_rc,style_axes, Okabe-Ito palette, holozoan callout constants, BCnS ALG order.bump-my-versiontooling:[tool.bumpversion]config + dev extra. Future bumps:bump-my-version bump <patch|minor|major> && git push --follow-tags(auto-rotates CHANGELOG, commits, tags).CHANGELOG.mdin Keep-a-Changelog format.- Dispersal test suite + dispersal-panel-style tests.
Changed
egt decay-pairwisetop-row scatter panels now use the Okabe-Ito color palette, density-scaled per-point alpha (counters TimeTree-cluster oversaturation), ±20 Mya x-jitter, and diamond markers for holozoan callouts (Capsaspora, Salpingoeca, Creolimax) at exact divergence times. Holozoan rows pass through unmodified — Creolimaxfraction_conserved = 0is treated as full BCnS scramble, not missing data.- Typography across
decay-pairwisepanels: Helvetica with fallback, embedded TrueType (text editable in Illustrator), thin axes, no minor ticks, no gridlines, no top/right spines, no figure title. "Mya" replaces "MYA"; sentence-case axis labels. egt phylotreeumapinteractive HTML: sticky Active-view banner, tabbed Summary / Legend / Rows readout, structured exploration summary card, clickable legend chips, per-group copy-samples button, linked-tree leaf hover + Hide/Show, custom-taxonomy helper (Myriazoa / Parahoxozoa fake taxids replace Eumetazoa).egt phylotreeumap-plotdfsphyla plot: new layout viapaper_palette.yaml/paper_palette_simple.yaml; clean PDF canvas alignment.- CI:
concurrencyblock cancels stale runs on rapid pushes.
Fixed
egt phylotreeumapBokeh HTML: inject style/script before the real</body>, not the one inside DOMPurify's embedded source.- Theme font stacks: single-quoted family names so they nest cleanly inside HTML
style="". - CustomJS callbacks: extracted the delegated click handler out of
_taxonomy_summary_js()to dodge a raw-string termination trap that broke active-view buttons, lineage search, lasso, and summary/legend/rows updates. - Shadow-DOM click delegation: walk
ev.composedPath()so clicks inside Bokeh 3.x Shadow DOM resolve againstdata-action/data-scope-key/data-legend-colorattributes.
Internal
- Dropped a broken
sys.path.insert("../source")inplot_alg_dispersal.py. - Dispersal-related test file renamed in lockstep with module rename.
Full changelog: https://github.com/conchoecia/egt/blob/v0.2.2/CHANGELOG.md