-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add idr0101 images, one with translation #13
Conversation
Thanks @will-moore. Is this staging anywhere otherwise I believe we should get this merged. Interestingly what is missing at the moment is the fact the transformation for Two related thoughts:
|
See also discussion at ome/ngff#139 (comment)
Echoing Norman's question, I definitely feel that either the translation should be factorized at the |
I don't disagree, but playing devil's advocate... I wonder if this exposes an expectation of the spec that each dataset dict has the same list of Probably in this case, we really should be applying the cc @bogovicj |
@sbesson I've added |
% curl https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.4/idr0101A/13457537.zarr/.zattrs
{
"_creator": {
"name": "omero-zarr",
"version": "0.1.dev314+g33e42b1"
},
"multiscales": [
{
"axes": [
{
"name": "t",
"type": "time"
},
{
"name": "c",
"type": "channel"
},
{
"name": "z",
"type": "space",
"units": "micrometer"
},
{
"name": "y",
"type": "space",
"units": "micrometer"
},
{
"name": "x",
"type": "space",
"units": "micrometer"
}
],
"datasets": [
{
"coordinateTransformations": [
{
"scale": [
1.0,
1.0,
0.4,
0.108335,
0.108335
],
"type": "scale"
},
{
"translation": [
0,
0,
1.2,
52.109135,
60.88427
],
"type": "translation"
}
],
"path": "0"
},
{
"coordinateTransformations": [
{
"scale": [
1.0,
1.0,
0.4,
0.21667,
0.21667
],
"type": "scale"
},
{
"translation": [
0,
0,
1.2,
52.109135,
60.88427
],
"type": "translation"
}
],
"path": "1"
},
{
"coordinateTransformations": [
{
"scale": [
1.0,
1.0,
0.4,
0.43334,
0.43334
],
"type": "scale"
},
{
"translation": [
0,
0,
1.2,
52.109135,
60.88427
],
"type": "translation"
}
],
"path": "2"
}
],
"version": "0.4"
}
],
"omero": {
"channels": [
{
"active": true,
"coefficient": 1.0,
"color": "FFFFFF",
"family": "linear",
"inverted": false,
"label": "cy 1",
"window": {
"end": 1200.0,
"max": 65535.0,
"min": 0.0,
"start": 0.0
}
},
{
"active": true,
"coefficient": 1.0,
"color": "FFFFFF",
"family": "linear",
"inverted": false,
"label": "cy 2",
"window": {
"end": 1200.0,
"max": 65535.0,
"min": 0.0,
"start": 0.0
}
},
{
"active": true,
"coefficient": 1.0,
"color": "FFFFFF",
"family": "linear",
"inverted": false,
"label": "cy 3",
"window": {
"end": 1200.0,
"max": 65535.0,
"min": 0.0,
"start": 0.0
}
},
{
"active": true,
"coefficient": 1.0,
"color": "FFFFFF",
"family": "linear",
"inverted": false,
"label": "cy 4",
"window": {
"end": 1200.0,
"max": 65535.0,
"min": 0.0,
"start": 0.0
}
},
{
"active": true,
"coefficient": 1.0,
"color": "0000FF",
"family": "linear",
"inverted": false,
"label": "DAPI",
"window": {
"end": 5000.0,
"max": 65535.0,
"min": 0.0,
"start": 0.0
}
},
{
"active": true,
"coefficient": 1.0,
"color": "FF0000",
"family": "linear",
"inverted": false,
"label": "Hyb probe",
"window": {
"end": 100.0,
"max": 65535.0,
"min": 0.0,
"start": 0.0
}
}
],
"id": 1,
"rdefs": {
"defaultT": 0,
"defaultZ": 9,
"model": "color"
},
"version": "0.4"
}
} and % curl https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.4/idr0101A/13457539.zarr/.zattrs
{
"_creator": {
"name": "omero-zarr",
"version": "0.1.dev314+g33e42b1"
},
"multiscales": [
{
"axes": [
{
"name": "t",
"type": "time"
},
{
"name": "c",
"type": "channel"
},
{
"name": "z",
"type": "space",
"units": "micrometer"
},
{
"name": "y",
"type": "space",
"units": "micrometer"
},
{
"name": "x",
"type": "space",
"units": "micrometer"
}
],
"coordinateTransformations": [
{
"scale": [
1,
1,
1,
1,
1
],
"type": "scale"
},
{
"translation": [
0,
0,
1.2,
161.59,
176.44
],
"type": "translation"
}
],
"datasets": [
{
"coordinateTransformations": [
{
"scale": [
1.0,
1.0,
0.4,
0.108335,
0.108335
],
"type": "scale"
}
],
"path": "0"
},
{
"coordinateTransformations": [
{
"scale": [
1.0,
1.0,
0.4,
0.21667,
0.21667
],
"type": "scale"
}
],
"path": "1"
}
],
"version": "0.4"
}
],
"omero": {
"channels": [
{
"active": true,
"coefficient": 1.0,
"color": "FFFFFF",
"family": "linear",
"inverted": false,
"label": "cy 1",
"window": {
"end": 1200.0,
"max": 65535.0,
"min": 0.0,
"start": 0.0
}
},
{
"active": true,
"coefficient": 1.0,
"color": "FFFFFF",
"family": "linear",
"inverted": false,
"label": "cy 2",
"window": {
"end": 1200.0,
"max": 65535.0,
"min": 0.0,
"start": 0.0
}
},
{
"active": true,
"coefficient": 1.0,
"color": "FFFFFF",
"family": "linear",
"inverted": false,
"label": "cy 3",
"window": {
"end": 1200.0,
"max": 65535.0,
"min": 0.0,
"start": 0.0
}
},
{
"active": true,
"coefficient": 1.0,
"color": "FFFFFF",
"family": "linear",
"inverted": false,
"label": "cy 4",
"window": {
"end": 1200.0,
"max": 65535.0,
"min": 0.0,
"start": 0.0
}
},
{
"active": true,
"coefficient": 1.0,
"color": "0000FF",
"family": "linear",
"inverted": false,
"label": "DAPI",
"window": {
"end": 5000.0,
"max": 65535.0,
"min": 0.0,
"start": 0.0
}
},
{
"active": true,
"coefficient": 1.0,
"color": "FF0000",
"family": "linear",
"inverted": false,
"label": "Hyb probe",
"window": {
"end": 100.0,
"max": 65535.0,
"min": 0.0,
"start": 0.0
}
}
],
"id": 1,
"rdefs": {
"defaultT": 0,
"defaultZ": 9,
"model": "color"
},
"version": "0.4"
}
}
Thanks @will-moore. Very useful to have representative samples capturing the different variants of the
Interesting. I had forgotten about this requirement and also confused at first as well. I suspect it comes the from strict semantics in https://ngff.openmicroscopy.org/0.4/#trafo-md that mandates that Rather than using the no-op
and then the scale of the different datasets could be simply expressed as |
I agree - that's also how I would do it. But also think one should be allowed to put the translation in every dataset in the multiscales if that's what they want.
One common case where different levels should really have different translations is if the downsampling simply averages adjacent pixels. Numbers indicate the coordinate of the center of the pixel, then averaging pixels with coordinates 0 and 1 gives a pixel with center 0.5.
This is also a good point, I'd consider adding the restriction : different multiscale levels must be related to each other only through |
@sbesson Fixed https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.4/idr0101A/13457539.zarr/.zattrs to have datasets scale of |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://ome.github.io/ome-ngff-validator/?source=https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.4/idr0101A/13457227.zarr/
https://ome.github.io/ome-ngff-validator/?source=https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.4/idr0101A/13457537.zarr/
https://ome.github.io/ome-ngff-validator/?source=https://uk1s3.embassy.ebi.ac.uk/idr/zarr/v0.4/idr0101A/13457539.zarr/
@sbesson Could you merge this if you're happy with it, thanks. |
Adds 2 images from ome/napari-ome-zarr#32
This is the first example of coordinateTransforms
translate
, at the dataset level. Added this to keywords.