Open talonchandler opened 1 year ago
@mattersoflight, @edyoshikun, and I just discussed this issue offline, and we agreed that scale information for the P, T, Z, Y, and X dimensions would be extremely valuable for iohub.
@ziw-liu, you brought up some technical issues that may make this difficult, and we're hoping to tighten the scope so that this isn't an enormous requirement. I would propose calling this issue "closed" if:
XPositionUm
and YPositionUm
ElapsedTime-ms
(or possibly something like a delta-T from the MDA?)z-step_um
, so I think it's complete. I'm happy to tighten this issue even more if there are further difficulties I don't understand.
- the passing works for datasets acquired with the most recent version of MM---no need to test against old MM versions.
In addition to MM version discrepancies, also notice that these fields are specific to OME-TIFF. For example NDTIFF files from pycro-manager does not have a standard OME metadata tag that stores these information. It will likely require different implementation for each of these fragmented state of TIFF files.
I had collaborators ask for the time stamp of the acquisition of each volume. Can a list of length T be saved somewhere in the metadata after conversion? Is that information also available when acquired from MM?
Can a list of length T be saved somewhere in the metadata after conversion?
It can be stored. The question is where do we store it, since that will be a custom field in the JSON if there's no existing standard.
Is that information also available when acquired from MM?
It requires some parsing, but yes you can get the camera timestamp and the file timestamp from MM datasets.
- for P, we transfer the stage positions from
XPositionUm
andYPositionUm
Does this need to get encoded with a coordinate translation (as shown in https://github.com/czbiohub/iohub/issues/75#issuecomment-1497986967) or a dumped into a custom field?
I think encoding in a coordinate translation would be excellent.
for P, we transfer the stage positions from XPositionUm and YPositionUm
Does this need to get encoded with a coordinate translation (as shown in https://github.com/czbiohub/iohub/issues/75#issuecomment-1497986967) or a dumped into a custom field?
This will be nice to have. One wrinkle is that we are using coordinate transformations to place FOVs in one well. Mapping (XPositionUm, YPositionUm) -> coordinate transformation requires parsing which FOV is at the center.
@ziw-liu if this turns out to be non-trivial, I suggest two PRs:
Related discussion about specification: https://github.com/ome/ngff/issues/199
Edit: if https://github.com/ome/ngff/pull/138 gets accepted the timestamps (or generally coordinates) will be stored as separate non-image arrays. Adding this array right now shouldn't affect practical conformance (i.e. viewers functionality) either.
Background: Earlier version of the tiff-to-zarr
convert
command would write all of the micromanager image plane metadata to text files. Micromanager writes metadata for each plane, so the resulting files were too large to be practical and the latest versions no longer convert this metadata.Proposal: I think we're now in a position to improve the conversion so that the most important information is correctly read and transferred. I think the most important pieces of image plane metadata are related to the "scale/units" of the data:
PixelSizeUm
andz-step_um
can be written to the output array scale transformation metadata.