Summary: An optional, explicit field for
Brief description of status, including, e.g., WIP | In-Review | Approved | Withdrawn | Obsolete
.
Name | GitHub Handle | Institution | Date | Status |
---|---|---|---|---|
David Feng | dyf | Allen Institute for Neural Dynamics | 2023-07-26 | Author |
Matthew McCormick | thewtex | Kitware | 2024-07-27 | Author |
This RFC proposes the addition of an optional anatomicalOrientation
field to the OME-NGFF axis description.
This field will provide explicit metadata about the anatomical orientation in an image using a
controlled vocabulary. The goal is to preserve essential biological information and eliminate assumptions
about orientation which can lead to errors in downstream analysis and alignment to anatomical atlases.
In the current OME-Zarr draft, canonical axis names are identified, e.g. x
, y
, z
anatomical orientation of a subject is not specified. This omission forces tools to make assumptions about orientation, which can result in wasted time and erroneous analysis.
Anatomical symmetry, such as in the brain, makes it impossible to retroactively determine the orientation of acquired data. By explicitly defining anatomical orientation in the specification, we can ensure consistency and accuracy in data analysis and interpretation.
Existing standards provide some prior art for this proposal:
- The Insight Toolkit (ITK) ecosystem uses three-letter acronyms (e.g.,
RAS
for Right-Anterior-Superior) to describe anatomical orientation, but these acronyms are often ambiguous and require users to look up their meanings frequently. - Nifti’s coordinate transforms assume data maps into
RAS
, but this relies on users being familiar with and adhering to the Nifti specification. - The Brain Image Library uses a more explicit controlled vocabulary, asking submitters to choose orientation for each axis (e.g.,
left-to-right
,anterior-to-posterior
). This approach is used at the Allen Institute for Neural Dynamics and has been discussed in community forums. - The open Metadata Initiative for Neuroscience Data Structures (openMINDS) Metadata Initiative defines
anatomicalAxesOrientation
to record this information in tuples likeRAS
. - The Digital Imaging and Communications in Medicine (DICOM) standard explicitly specifies anatomical orientation for bipeds as x-axis is increasing to the left hand side of the patient, the y-axis is increasing to the posterior side of the patient, and the z-axis is increasing toward the head of the patient and has a similar dorsal, cranial, rostral, proximal, and distal for quadrupeds.
We propose adding an OPTIONAL anatomicalOrientation
field to the axes
metadata in the OME-Zarr specification. This field will use a controlled vocabulary to explicitly define the anatomical orientation of the image.
This metadata data MUST only be used in cases where there is a single subject in the acquired volume or extracted image region-of-interest and the subject is roughly aligned to the imaging axes.
The controlled vocabulary for the anatomicalOrientation
field will include:
-
left-to-right
-
right-to-left
-
anterior-to-posterior
-
posterior-to-anterior
-
inferior-to-superior
-
superior-to-inferior
-
dorsal-to-ventral
-
ventral-to-dorsal
-
rostral-to-caudal
-
caudal-to-rostral
A set of NGFF axes
MUST only have one of the set { "left-to-right", "right-to-left" }
or { "anterior-to-posterior", "posterior-to-anterior" }
or the remaining values.
For images of biped or quadruped subjects, anatomicalOrientation
SHOULD be explicitly specified.
If no orientation is specified, the implicit default value will be
"axes": [
{ "name": "z", "type": "space", "unit": "micrometer", "anatomicalOrientation": "inferior-to-superior" },
{ "name": "y", "type": "space", "unit": "micrometer", "anatomicalOrientation": "posterior-to-anterior" },
{ "name": "x", "type": "space", "unit": "micrometer", "anatomicalOrientation": "left-to-right" }
]
To maintain consistency with the Nifti standard.
We define the LinkML encoding scheme to enumerate the possible values and provides their descriptions:
Anatomical orientation refers to the specific arrangement and directional alignment of anatomical structures within an imaging dataset. It is crucial for ensuring accurate alignment and comparison of images to anatomical atlases, facilitating consistent analysis and interpretation of biological data.
Text | Description | Meaning | Other Information |
---|---|---|---|
left-to-right | Describes the directional orientation from the left side to the right side of an anatomical structure or body. | ||
right-to-left | Describes the directional orientation from the right side to the left side of an anatomical structure or body. | ||
anterior-to-posterior | Describes the directional orientation from the front (anterior) to the back (posterior) of an anatomical structure or body. | ||
posterior-to-anterior | Describes the directional orientation from the back (posterior) to the front (anterior) of an anatomical structure or body. | ||
inferior-to-superior | Describes the directional orientation from the lower (inferior) to the upper (superior) part of an anatomical structure or body. | ||
superior-to-inferior | Describes the directional orientation from the upper (superior) to the lower (inferior) part of an anatomical structure or body. | ||
dorsal-to-ventral | Describes the directional orientation from the back (dorsal) to the front (ventral) of an anatomical structure or body. | ||
ventral-to-dorsal | Describes the directional orientation from the front (ventral) to the back (dorsal) of an anatomical structure or body. | ||
rostral-to-caudal | Describes the directional orientation from the front (rostral) to the back (caudal) end of an anatomical structure, typically used in reference to the central nervous system. | ||
caudal-to-rostral | Describes the directional orientation from the back (caudal) to the front (rostral) end of an anatomical structure, typically used in reference to the central nervous system. |
Which coorresponds to the following JSON Schema,
For the problem(s) solved by this RFC, what constrains the possible solutions? List other RFCs, or standards (ISO, etc.) which are applicable. It is suggested that the following text SHOULD be used in all RFCs:
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in IETF RFC 2119
Who has a stake in whether this RFC is accepted?
- Facilitator:
- Josh Moore (German Bioimaging)
- Reviewers:
- Andras Lasso (Queens University)
- Sharmishtaa Seshamani (Allen Institute for Neural Dynamics)
- Lydia Ng (Allen Institute for Brain Science)
- Consulted:
- Yaël Balbastre (University College London)
- Davis Bennett
- John Bogovic (Janelia Research)
- Steve Pieper (Isomics)
- David Clunie (PixelMed)
- Nick Tustison (University of Virginia)
- Nick Lusk (Allen Institute for Neural Dynamics)
- Cai McCann
- Camilo Laiton
- Alan Watson (University of Pittsburgh)
- Dzenan Zukic (Kitware)
- Satra Ghosh (MIT)
- Niles Grattis (Cahal Neuro)
- Wouter-Michiel Vierdag (EMBL)
- Luca Marconato (EMBL)
- Socialization:
- Discussed at the Get Your Brain Together HCK02
- ome/ngff GitHub Issue #208
- Discussed at the Get Your Brain Together HKC03
The implementation will involve adding the orientation
field to the axes
metadata
in the NGFF schema. The field will use the controlled vocabulary specified above.
In JSON-Schema:
{
"$defs": {
"Orientation": {
"description": "Anatomical orientation refers to the specific arrangement and directional alignment of anatomical structures within an imaging dataset. It is crucial for ensuring accurate alignment and comparison of images to anatomical atlases, facilitating consistent analysis and interpretation of biological data.",
"enum": [
"left-to-right",
"right-to-left",
"anterior-to-posterior",
"posterior-to-anterior",
"inferior-to-superior",
"superior-to-inferior",
"dorsal-to-ventral",
"ventral-to-dorsal",
"rostral-to-caudal",
"caudal-to-rostral"
],
"title": "Orientation",
"type": "string"
}
},
"$id": "https://w3id.org/ome/ngff",
"$schema": "https://json-schema.org/draft/2019-09/schema",
"additionalProperties": true,
"metamodel_version": "1.7.0",
"title": "orientation",
"type": "object",
"version": "0.1.0"
}
In Pydantic:
from enum import Enum
class Orientation(str, Enum):
"""
Anatomical orientation refers to the specific arrangement and directional alignment of anatomical structures within an imaging dataset. It is crucial for ensuring accurate alignment and comparison of images to anatomical atlases, facilitating consistent analysis and interpretation of biological data.
"""
# Describes the directional orientation from the left side to the right side of an anatomical structure or body.
left_to_right = "left-to-right"
# Describes the directional orientation from the right side to the left side of an anatomical structure or body.
right_to_left = "right-to-left"
# Describes the directional orientation from the front (anterior) to the back (posterior) of an anatomical structure or body.
anterior_to_posterior = "anterior-to-posterior"
# Describes the directional orientation from the back (posterior) to the front (anterior) of an anatomical structure or body.
posterior_to_anterior = "posterior-to-anterior"
# Describes the directional orientation from the lower (inferior) to the upper (superior) part of an anatomical structure or body.
inferior_to_superior = "inferior-to-superior"
# Describes the directional orientation from the upper (superior) to the lower (inferior) part of an anatomical structure or body.
superior_to_inferior = "superior-to-inferior"
# Describes the directional orientation from the back (dorsal) to the front (ventral) of an anatomical structure or body.
dorsal_to_ventral = "dorsal-to-ventral"
# Describes the directional orientation from the front (ventral) to the back (dorsal) of an anatomical structure or body.
ventral_to_dorsal = "ventral-to-dorsal"
# Describes the directional orientation from the front (rostral) to the back (caudal) end of an anatomical structure, typically used in reference to the central nervous system.
rostral_to_caudal = "rostral-to-caudal"
# Describes the directional orientation from the back (caudal) to the front (rostral) end of an anatomical structure, typically used in reference to the central nervous system.
caudal_to_rostral = "caudal-to-rostral"
TypeScript:
/**
* Anatomical orientation refers to the specific arrangement and directional alignment of anatomical structures within an imaging dataset. It is crucial for ensuring accurate alignment and comparison of images to anatomical atlases, facilitating consistent analysis and interpretation of biological data.
*/
export enum Orientation {
/** Describes the directional orientation from the left side to the right side of an anatomical structure or body. */
left_to_right = "left-to-right",
/** Describes the directional orientation from the right side to the left side of an anatomical structure or body. */
right_to_left = "right-to-left",
/** Describes the directional orientation from the front (anterior) to the back (posterior) of an anatomical structure or body. */
anterior_to_posterior = "anterior-to-posterior",
/** Describes the directional orientation from the back (posterior) to the front (anterior) of an anatomical structure or body. */
posterior_to_anterior = "posterior-to-anterior",
/** Describes the directional orientation from the lower (inferior) to the upper (superior) part of an anatomical structure or body. */
inferior_to_superior = "inferior-to-superior",
/** Describes the directional orientation from the upper (superior) to the lower (inferior) part of an anatomical structure or body. */
superior_to_inferior = "superior-to-inferior",
/** Describes the directional orientation from the back (dorsal) to the front (ventral) of an anatomical structure or body. */
dorsal_to_ventral = "dorsal-to-ventral",
/** Describes the directional orientation from the front (ventral) to the back (dorsal) of an anatomical structure or body. */
ventral_to_dorsal = "ventral-to-dorsal",
/** Describes the directional orientation from the front (rostral) to the back (caudal) end of an anatomical structure, typically used in reference to the central nervous system. */
rostral_to_caudal = "rostral-to-caudal",
/** Describes the directional orientation from the back (caudal) to the front (rostral) end of an anatomical structure, typically used in reference to the central nervous system. */
caudal_to_rostral = "caudal-to-rostral",
};
- Costs: This will add another field to the axes metadata. While some implementers do not deal with anatomical orientation, this field is optional.
- Risks: Incorrect implementation or interpretation of the new field could lead to data misalignment.
- Alternatives: Continue using existing methods with assumed or undefined orientations, which is error-prone.
Use three-letter encoding, which is common in other implementations, e.g. RAS
.
However, these acronyms are not immediately decipherable for those who do not routinely
encounter anatomical information. Second, there is ambiguity in whether R
refers to
"starting from the right" or "going to the right". Third, since NGFF axes are encoded
separately, it is most natural to encode each axis direction separately.
A free-form value in anatomicalOrientation
or long_name
fields was considered, but
an consistently understood controlled vocabuary is desired.
Defining only a default implicit orientation was considered, but this did not meet the needs of real-world acquisitions.
- ITK Coordinate Systems
- Nifti Orientation
- Allen Institute Data Schema
- Get Your Brain Together Hackathon Notes
- 3D Slicer Coordinate Systems documentation
- Human Brain Project openMINDS anatomicalAxesOrientation
- DICOM Image Position and Image Orientation C7.6.2.1.1
Related and complementary is the Nifti-Zarr draft standard, whose goal is to enhance OME-Zarr with Nifti metadata.
However, this only implicitly allows an RAS
orientation whereas this proposal enables explicit encoding with other orientation options.
For simplicity and to address the most common use cases, only instances where a single organism are present in the image are support.
Future work may include expanding the controlled vocabulary based on community feedback and evolving requirements.
Explicitly defining anatomical orientation is expected to improve the accuracy and efficiency of downstream analysis, but specific performance metrics will need to be defined and evaluated.
The proposed change is backwards compatible, as it introduces a new optional field without altering existing fields.
Testing will include validating the presence and correctness of the anatomicalOrientation
field in the metadata and ensuring compatibility with existing tools and workflows.
End-users applications SHOULD display the encoded information.
TODO
Note: This document is based on the RFC template from Hashicorp (TODO: license requested).