Pixel identity¶
PixelIdentity records the identity of one NGFF image or label node. BIOMERO
uses ISCC-BIO's IMAGEWALK method to
read decoded level-0 pixels in a deterministic plane order. This is the right
scope for answering “did the workflow change these image pixels?” because it
is independent of Zarr chunking, compression, added pyramid levels, labels,
and metadata edits.
It is not an ISCC TREEWALK checksum over the complete Zarr store. Such a store checksum changes when labels or attributes are added and therefore cannot decide whether the original image pixels stayed the same.
Field reference¶
| JSON field | Meaning | Used for current equality? |
|---|---|---|
schema |
Version of the BIOMERO PixelIdentity wire record. It is not an NGFF or ISCC version. |
Validates the record |
method |
Identity algorithm family. Schema 1 requires iscc-bio/imagewalk. |
Validates the record |
iscc |
Composite ISCC returned by ISCC-BIO. Useful as a portable content identifier and provenance claim. | No |
dataCode |
ISCC Data-Code component describing data similarity/content. It is retained for identification and future similarity use. | No |
instanceCode |
ISCC Instance-Code over IMAGEWALK's canonical decoded pixel byte stream. This is the exact pixel-code component. | Yes |
toolVersion |
Installed iscc-bio package version that produced the record. |
Diagnostic only |
imagewalkRevision |
Exact IMAGEWALK implementation revision used by the generator. This makes an experimental implementation reproducible and auditable. | Diagnostic only |
nodePath |
Relative path of the image/label group within this Zarr store, for example B/1/0. |
No; paths may change |
role |
Whether this node is an image or label. |
Yes |
shape |
Level-0 array dimensions in axis order. | Yes |
dtype |
Level-0 decoded array data type, for example uint16. |
Yes |
axes |
Ordered semantic axes corresponding one-to-one with shape. |
Yes |
coordinateTransformations |
NGFF coordinate transformations that give the pixels their spatial meaning. | Yes |
The code is a claim until BIOMERO verifies it
An identity embedded in metadata can be copied or left stale by a workflow. At the storage boundary BIOMERO recomputes the returned identity and compares it with the identity it recorded for the exact workflow input. The original is never deleted; only redundant pixels in that new workflow result are omitted after a successful comparison.
Exact comparison predicate¶
In schema 1, two nodes are eligible for BIOMERO's “unchanged pixels” decision only when all of the following values are equal:
iscc, dataCode, and nodePath are deliberately not equality keys. The
first two do not represent the exact comparison BIOMERO needs; the path is a
locator and can legitimately change between input and output stores.
Failure to compute an identity, a missing input match, ambiguity, or any guard mismatch is fail-safe: the returned Zarr remains full.
Example¶
{
"schema": 1,
"method": "iscc-bio/imagewalk",
"iscc": "ISCC:K4ABAOQM5UXJ2LU3VEQWTEUSR4R3KS5WH2RJGEYXM5G5PLCGSUS5D4A",
"dataCode": "ISCC:GADRAOQM5UXJ2LU3VEQWTEUSR4R3K76D3R3JR6DXINBTCTJTQFTX3DY",
"instanceCode": "ISCC:IADUXNR6UKJRGF3HJXL2YRUVEXI7BYADX6Z72BWSUK4QULFHH4U7N2Q",
"toolVersion": "0.1.0",
"imagewalkRevision": "iscc-bio/0.1.0@c536d7699b7d25592bfe5c91c947b749344b6914",
"nodePath": "B/1/0",
"role": "image",
"shape": [2, 2008, 2008],
"dtype": "uint16",
"axes": ["c", "y", "x"],
"coordinateTransformations": [
{"type": "scale", "scale": [1, 0.345, 0.345]}
]
}
Where identities live¶
The contract can appear inside CanonicalZarrSource, Plate image records,
workflow input snapshots, and .biomero-shallow.json. BIOMERO may also index
canonical source records in OMERO MapAnnotations. The schema does not require
mutating a provider's raw source Zarr.
ISCC maintainers recommend attributes.iscc on an NGFF Image group for a
portable embedded claim, as a sibling of attributes.ome. BIOMERO's current
managed-source record is intentionally richer because it also needs semantic
guards and storage provenance. A future stable ISCC-BIO/NGFF convention may
allow this representation to become smaller or more standard.
Experimental points¶
- ISCC-BIO and IMAGEWALK are still young and their implementation metadata may evolve.
- Cross-format identity (for example, a LIF image and its canonical Zarr) is a valuable future capability but is not assumed by shallow normalization.
- Per-label identities are supported by the schema and are needed to distinguish inherited, changed, and new labels during chained workflows.
- BIOMERO records enough generator information to migrate or recompute codes if a future IMAGEWALK revision changes canonicalization.
See the upstream IMAGEWALK specification for algorithm details.