Skip to content

RFC-4: Clarify subject-local orientation and add layered-tissue vocabulary#528

Open
thewtex wants to merge 4 commits into
ome:mainfrom
thewtex:rfc4-review-3-follow-up
Open

RFC-4: Clarify subject-local orientation and add layered-tissue vocabulary#528
thewtex wants to merge 4 commits into
ome:mainfrom
thewtex:rfc4-review-3-follow-up

Conversation

@thewtex

@thewtex thewtex commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Follow-up to RFC-4 review 3 (Dave Horsfall, Hannifa Lab; added in #435), implementing its two accepted recommendations. The review was generated from a Hannifa Lab discussion spanning wet-lab scientists, clinicians, bioinformaticians, and engineers, and recommended "Accept, with minor changes: explicitly support subject-local orientation and expand the vocabulary to include layered-tissue terms."

What changed

1. New "Subject-Local vs. Patient-Global Orientation" clarification (rfc/4/index.md)

Clarifies that the orientation subject need not be a whole organism — it may be a local anatomical structure such as a tissue biopsy, histology slide, or dissected organ. The existing "roughly aligned to the imaging axes" requirement is reinterpreted to apply to the local tissue structure, and RFC-5 transformations are cited for relating subject-local axes to a patient-global / atlas frame when such a registration is available.

2. Six new controlled-vocabulary terms for layered and polarized tissues (anatomical vocabulary grows 18 → 24 values)

Pair Intended use
superficial-to-deep / deep-to-superficial layered tissues (skin, gut, cortex)
apical-to-basal / basal-to-apical epithelial layers, polarized cell structures
apex-to-base / base-to-apex organs such as the heart or lungs

3. Removed the now-redundant histological: basal/apical future-domain example, since basal/apical are now part of the anatomical vocabulary.

Why

In spatial transcriptomics, histopathology, and high-resolution histology, the imaged subject is frequently a tissue specimen whose global position/orientation on the donor is unknown, but whose internal orientation is well defined — e.g. a skin biopsy's depth axis is superficial-to-deep regardless of where on the body it was taken. The prior wording was geared toward whole-patient imaging; these changes make the orientation field usable by the tissue-profiling community without requiring full patient-to-atlas registration, and supply the layered/polarized-tissue terms that community needs.

Implementation details

  • The six values were added to the LinkML source of truth (rfc/4/orientation.yml) and propagated consistently to every derived artifact — orientation.schema.json, orientation.py, orientation.ts, markdown/AnatomicalOrientationValues.md — and to every representation embedded in index.md (controlled-vocabulary list, permissible-values table, JSON-Schema, Pydantic, and TypeScript snippets). A new "layered and polarized tissues" category was added to the vocabulary list and a 2026-06-03 changelog entry references review 3.
  • Derived files were hand-edited rather than regenerated: the locally available LinkML (metamodel 1.11.0) diverges from the committed output (1.7.0) and regeneration would have introduced unrelated abstract-class/version noise. The updated orientation.yml was nonetheless verified to still generate cleanly through LinkML (all six values present, no errors).
  • The frozen review snapshot under rfc/4/versions/ was intentionally left untouched.

Verification

  • All 24 vocabulary values consistent across every file; identical ordering in .py / .ts / .json; hyphenated values vs. underscored identifiers correct.
  • orientation.schema.json is valid JSON, orientation.yml valid YAML, orientation.py compiles, and the RFC page parses under MyST with no new errors.
  • codespell clean; CodeRabbit review reported 0 findings.

Out of scope

Review 3's third discussion point — a deeper RFC-4 ↔ RFC-5 semantic bridge for programmatic atlas registration — is left for future collaboration, as the reviewer suggested. The RFC's existing "Interaction with RFC-5" section already covers the basic relationship.

Address review 3 (Dave Horsfall / Hannifa Lab, ome#435).

Add a "Subject-Local vs. Patient-Global Orientation" clarification
explaining that the orientation "subject" may be a local tissue
structure (e.g. a biopsy or histology slide) rather than a whole
organism. This makes the field applicable to spatial transcriptomics
and histopathology without requiring whole-organism or atlas
registration.

Expand the anatomical controlled vocabulary with six terms for layered
and polarized tissues:
- superficial-to-deep / deep-to-superficial (skin, gut, cortex)
- apical-to-basal / basal-to-apical (epithelial layers, polarized cells)
- apex-to-base / base-to-apex (organs such as the heart or lungs)

The values are added consistently to the LinkML source
(orientation.yml) and its derived artifacts (orientation.schema.json,
orientation.py, orientation.ts,
markdown/AnatomicalOrientationValues.md) and to every representation
embedded in index.md (vocabulary list, permissible-values table,
JSON-Schema, Pydantic, and TypeScript). The now-redundant
"histological: basal/apical" future-domain example is removed, since
those values are now part of the anatomical vocabulary.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Automated Review URLs

@thewtex thewtex changed the title RFC-4: Clarify subject-local orientation and add layered-tissue terms RFC-4: Clarify subject-local orientation and add layered-tissue vocabulary Jun 4, 2026
@thewtex

thewtex commented Jun 4, 2026

Copy link
Copy Markdown
Contributor Author

@davehorsfall @melonora @dyf please take a look 🙏

@jo-mueller I also added the null / undefined explicit mention as we discussed.

@imagesc-bot

Copy link
Copy Markdown

This pull request has been mentioned on Image.sc Forum. There might be relevant details there:

https://forum.image.sc/t/rfc-4-updates-enhanced-anatomical-orientation-support-for-ome-ngff/115625/10

An axis with no `orientation` field and an axis with an explicit
`"orientation": null` are equivalent: in both cases the orientation is
undefined, with no implicit default. This matches the OME-Zarr
convention that only fields which are present carry meaning, and the
reference implementation's behavior of culling a null orientation
rather than serializing it.

Add the clarification to the "Default Value" section and a changelog
entry referencing fideus-labs/ngff-zarr#523.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@imagesc-bot

Copy link
Copy Markdown

This pull request has been mentioned on Image.sc Forum. There might be relevant details there:

https://forum.image.sc/t/ngff-weekly-dev-update-thread/110810/105

@melonora

melonora commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Just to put it on record, I discussed this with @thewtex on zulip, the idea of local tissue orientation vs orientation of the tissue within the anatomical body can be seen as a primary orientation vs secondary orientation. We discussed this alternative and while there are emerging examples we agree it would be an overkill for now.

Just to clarify by one example, there are labs doing whole body tissue clearing to perform lightsheet microscopy. Afterwards, from regions of interest biopsies are taken and subjected to highly multiplexed protein imaging. While these biopsies have a local orientation, they also have a secondary orientation in the whole body.

@thewtex shall we add this to alternatives discussed?

@d-v-b

d-v-b commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

i think you can make the anatomical direction information robust by framing it as an annotation for a vector, where the only supported vectors right now are vectors that point in the direction of the coordinate axes. If ome-zarr gets formal support for geometrical objects like vectors, then images could use the anatomical direction information to annotate these vectors in ways that make sense for the contents of the image, e.g. an image of multiple organs, or multiple organisms, where anatomical orientation only makes sense locally

thewtex added a commit to thewtex/ngff that referenced this pull request Jun 12, 2026
Per the most recent PR ome#528 discussion, clarify that the orientation
field describes a single, primary (subject-local) orientation and that
additional/secondary orientations (e.g. a biopsy's position within the
whole donor body) are not supported at this time. Note that if a generic
vector data structure is added to OME-Zarr, these orientation
annotations could be applied to such vectors, allowing multiple
orientations where anatomical orientation only makes sense locally.

Record the primary-vs-secondary modeling decision in the alternatives
section and add a changelog entry.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@thewtex

thewtex commented Jun 12, 2026

Copy link
Copy Markdown
Contributor Author

@melonora @d-v-b thanks both — I've captured these points in the RFC text in a follow-up commit:

  • The orientation field describes a single, primary (subject-local) orientation. Additional/secondary orientations — e.g. @melonora's whole-body-clearing
    example where a biopsy has both a local tissue orientation and a secondary orientation within the donor body — are not supported at this time.
  • Per @d-v-b's framing: if OME-Zarr later gains a generic vector / geometrical-object data structure, these orientation annotations could be applied to such vectors, allowing multiple orientations to be expressed where anatomical orientation only makes sense locally (multiple organs or organisms in one image).

Per the most recent PR ome#528 discussion, clarify that the orientation
field describes a single, primary (subject-local) orientation and that
additional/secondary orientations (e.g. a biopsy's position within the
whole donor body) are not supported at this time. Note that if a generic
vector data structure is added to OME-Zarr, these orientation
annotations could be applied to such vectors, allowing multiple
orientations where anatomical orientation only makes sense locally.

Record the primary-vs-secondary modeling decision in the alternatives
section and add a changelog entry.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@thewtex thewtex force-pushed the rfc4-review-3-follow-up branch from bb7addb to 3912bce Compare June 12, 2026 09:18
Comment thread rfc/4/index.md Outdated
Co-authored-by: Wouter-Michiel Vierdag <w-mv@hotmail.com>
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.

5 participants