docs(example-images): optional channel_combos panel metadata#67
Open
VBaratham wants to merge 6 commits into
Open
docs(example-images): optional channel_combos panel metadata#67VBaratham wants to merge 6 commits into
VBaratham wants to merge 6 commits into
Conversation
Define an OPTIONAL `channel_combos` array on the examples.zarr root group `zarr.json`: per channel combination, the representative `primary_channel` and a display `priority`. Lets viewers render one channel per panel and order panels without opening a leaf. `primary_channel` MUST be a label present in every leaf of its combination, since a combination may aggregate crops from multiple source screens with differing channel sets. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
d6e2605 to
a28d718
Compare
This was referenced Jun 17, 2026
…ry_channel) Generalize per-combo display metadata from a single primary_channel to an ordered display_channels list; omit ⇒ all channels (default). Each listed label must be present in every leaf of the combo. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
tfrcarvalho
approved these changes
Jul 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds an OPTIONAL
channel_combosarray to theexamples.zarrroot group'szarr.json(attributes.channel_combos). Per channel combination it declares:name— the{channel_combo}subdirectoryprimary_channel— the representative channel label for that panelpriority(optional) — display orderThis lets viewers render one representative channel per panel (e.g. the multi-panel OPS image grid, one column per combination) and order panels — without opening a leaf to guess.
If
channel_combosis omitted, the default is today's behavior of showing all channels.Why
The CxS frontend currently hardcodes the combo→primary-channel choice in a baked, dataset-specific JSON (
altairComboChannelMap.json) generated from an off-repo Bruno YAML. This moves that knowledge into the data itself, schema-validated, so it flowsschema → ingest → DB → API → FEwith no baked files.Key design point —
primary_channelmust be common to the panelA single combination can aggregate crops from multiple source screens with differing channel sets (verified against the public altair
examples.zarr: e.g. thePhase2Dcombo spans 8+ screens, each with a different fluorescence channel, but all sharePhase2D_labelfree). Soprimary_channelMUST be a label present in every leaf of its combination — otherwise a consumer filtering crops by that label silently drops crops from screens that lack it. The validator (separate PR) will enforce this.Scope
main. Relies on main's existing framing ofexamples.zarras a Zarr group with the "validators MUST NOT apply OME-NGFF HCS checks" carve-out.rlim/port-dca-zarr-validator-2.examples.zarras the (Zarr-group) container name — itsexamples.zarr → examples/reframing was reverted so this metadata has a home.🤖 Generated with Claude Code