All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
spacing(default0): pixels of blank space between the tree panel and the chart panel.0keeps the two butted together, as before. Distinct fromshift_tree_loc, which moves the tree within its own panel by resizing the label strip. CLI form:--spacing.
- Pin
ruffto>=0.16,<0.17and state the lint rules explicitly with[tool.ruff.lint] select. Ruff's default rule set widened in 0.16, which turned CI red on unchanged code; the selection is now a project decision rather than whatever the installed ruff defaults to. Development-only, no effect on the package.
- With
connect_leader_to_labelon, strain labels were anchored exactly on the tree panel's chart-facing edge, so the text ran up against the chart's frame and the frame line became hard to read. The pad that the label strip already reserved is now applied between the text and the chart, and the leader lines stop where the text begins rather than continuing to the panel edge. The gap ismax(3, strain_label_font_size * 0.2)px, and the tree panel grows by that much, so a hand-tunedshift_tree_locmay want the same adjustment.
prune_chart_to_tree(defaultFalse): when on, chart rows whosechart_strain_fieldvalue isn't a tree tip are filtered out before drawing. CLI form:--prune-chart-to-tree / --no-prune-chart-to-tree. (#6)-his accepted as a short alias for--helpon thetree-annotated-plotCLI.
- Minimum supported Python lowered from 3.13 to 3.11. CI still runs on 3.13.
mark_line,mark_trail, andmark_areanow connect points in tree tip order regardless of other encodings on the chart. Previously, a user chart with an explicit categorical color-scaledomainrendered with crisscrossing line segments because Vega-Lite's default connection-order heuristic ignored the strain-axis sort. The package now attaches acalculatetransform that derives a per-row tip rank and points theorderchannel at that field on these marks. Any user-suppliedorderis left in place.- When
color_tree_byis used together with a user chart that has its owncolorencoding (e.g. a titer plot colored bycell_line), the user chart's marks no longer disappear. The concat container now resolves thecolorscale asindependentso the tree'scolor_value:Nscale (with its tree-specific domain) is not merged with the user chart's color scale.
- Apply tree-tip ordering to chart axes that use untyped Altair
shorthand (
alt.Y("strain")without a:N/:Otype suffix). Previously the sort override was silently skipped, so the chart rendered in data order instead of tree order. - An internal consistency check now raises if the spec-level walk and the live-object walk over the user's chart ever disagree on the number of strain-axis encodings, so silent skips like the one above can't recur in another shape.
connect_leader_to_label(defaultFalse): extends each strain's dashed leader line all the way to its text label. When on, the chart's strain-axis labels are suppressed and replacement labels are rendered alongside the tree on its chart-facing edge.strain_label_font_size(default10),strain_label_font_weight(default"normal"), andshift_tree_loc(default0) for tuning the size, weight, and placement of the connected labels.color_tree_by(defaultNone): color the tree's branches and tip circles by an Auspice node attribute (e.g."subclade") or by the inferred genotype state at one or more sites (e.g."genotype:HA1:158"or"genotype:HA1:158,189"). Colors, category ordering, and the bottom-of-plot legend match the Nextstrain view of the same tree.tree_color_scale(defaultNone): override the default coloring with an explicit{category: color}mapping. Keys must match the tree's categories one-to-one and the legend order follows the user's key order. CLI form:"value1=#hex1,value2=#hex2,...".tree_color_legend_format(defaultNone): pass any subset of Vega-Lite's Legend properties as a dict to style the tree's color legend (orient,direction,columns,padding,labelFontSize,titleFontSize, …). Whenorientis"left"or"right"and the user has not setcolumnsordirection,columns=1is forced so entries stack vertically. CLI form: a JSON object string.tree_color_legend_show(defaultTrue): set toFalseto hide the tree's color legend entirely while still coloring the tree.scale_bar_font_size(default10): font size for the tree's scale bar label.
- Default
tree_line_widthbumped from1.5to2, defaulttree_node_sizefrom28to45. Tree branch lines and tip circles are now drawn at full opacity. The thicker / fuller defaults read better when the tree is colored (the prior values were tuned for unicolor black trees).
Initial release.