Skip to content

Developer Notes

These notes document the architecture, design decisions, and implementation details of UELer. They are intended for contributors and advanced users who want to understand how the viewer works internally.


Topic Summaries

Topic Description
Packaging & Project Package structure, release process, CI, PyPI
Plugin Development Writing a plugin: discovery, lifecycle hooks, cross-plugin communication
Viewer Runtime & UI FOV load cycle, plugin discovery, downsampling, channel controls
Mask Rendering & Coloring The three overlay layers, compositing order, the cell-colour registry
Map Mode Internals Stitched rendering, the tile budget, coordinate translation
Export Pipeline Batch export, scale bar, overlay snapshots
ROI Workflows ROI manager, the CSV schema, view vs. shape ROIs, gallery paging
Heatmap & Cell Annotation FlowSOM clustering, heatmap adapter, annotation checkpoints
OME-TIFF Loading OME-TIFF ingestion, level selection, rendering

Start here to extend UELer

Plugin Development is the entry point for adding a feature. Almost every tool a user interacts with is a plugin, so it is usually the only page you need.


Source Notes

Detailed source-level notes are kept in the dev_note/ directory of the repository. The topic summaries above consolidate those notes for quicker navigation, and each page links its source note at the top.

These pages are checked against the code, not just spell-checked. tools/check_docs_consistency.py — run by make check-docs, by tests/test_docs_consistency.py, and in the docs workflow — fails the build when a page names a module, symbol, extra, Make target, environment variable or plugin label that no longer exists. Prose still has to be kept honest by hand; the factual scaffolding is enforced.