Skip to content

Deepen semantic rendering seams across all plotter families#22

Merged
michael-denyer merged 4 commits into
mainfrom
architecture/rendering-seam
Jul 20, 2026
Merged

Deepen semantic rendering seams across all plotter families#22
michael-denyer merged 4 commits into
mainfrom
architecture/rendering-seam

Conversation

@michael-denyer

@michael-denyer michael-denyer commented Jul 20, 2026

Copy link
Copy Markdown
Owner

Summary

Reworks every plotter family around explicit composition seams instead of one big method per plot doing data intake, layout, and rendering inline.

  • _data.py owns p-value intake and the shared P_VALUE_FLOOR. Coloc transforms two p-value columns at once, so it keeps its own -log10 step but clips to the same floor rather than a bare 1e-300.
  • _rendering.py and _family_renderers.py hold the per-family draw logic; _regional.py composes the association panel shared by single and stacked regional plots.
  • Backends expose capability flags (e.g. supports_secondary_axis) through the base protocol, so the composer branches on a flag instead of knowing which backend it holds.
  • The migration's compatibility adapters on LocusZoomPlotter are gone. Callers hit RegionalPlotComposer directly, so there is no shim layer to keep in sync.

Families covered

  • Manhattan and QQ
  • Miami
  • PheWAS and forest
  • Colocalization
  • LD heatmaps
  • Regional association, stacked panels, and gene/eQTL/finemapping/heatmap composition

Verification

  • uv run --extra dev pytest — 1111 passed, 1 skipped
  • uv run --extra dev ruff check .
  • uv run --extra dev ruff format --check .

…poser

The seam migration left adapter methods on LocusZoomPlotter that just
forwarded to RegionalPlotComposer. Remove them and call the composer
directly so there is no shim layer to keep in sync.

- Drop _plot_association, _create_figure_with_heatmap, _render_heatmap_panel,
  _highlight_heatmap_snp, and _add_recombination_overlay from LocusZoomPlotter.
- render_association_panel calls render_association_scatter itself; drop the
  draw_scatter callback and the AssociationScatter type alias.
- ColocPlotter clips to the shared P_VALUE_FLOOR instead of a bare 1e-300, and
  loses the unused effect-legend adapters on ColocRenderer/ColocPlotter.
- Tests patch composer.render_association_scatter, not the removed method.
@michael-denyer
michael-denyer merged commit 395b81d into main Jul 20, 2026
6 checks passed
@michael-denyer
michael-denyer deleted the architecture/rendering-seam branch July 21, 2026 15:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant