nima_io Module#
This module is the main component of the nima_io library, designed for reading microscopy data. It provides functionality to explore metadata, process values, and extract information from bioformats core metadata.
Metadata Exploration#
The exploration of metadata is facilitated using the getattr(metadata,
key)(*t)
approach:
First, try
t=()
to process the value and stop.On TypeError, try
(0)
to process the value and stop.On TypeError, try
(0,0)
to process the value and stop.On TypeError, try
(0,0,0)
to process the value and stop.Continue looping until
(0,0,0,0,0)
. Raise RuntimeError for using jpype.
Tidying Metadata#
The metadata tidying process involves grouping common values and utilizes a next function dependent on (tuple, bool)
.
Bioformats Core Metadata#
The module extracts essential information from bioformats core metadata, including:
SizeS: rdr.getSeriesCount()
- may vary for each series.SizeX: rdr.getSizeX()
SizeY: rdr.getSizeY()
SizeZ: rdr.getSizeZ()
SizeT: rdr.getSizeT()
SizeC: rdr.getSizeC()
… (additional core metadata)
; rdr.getImageCount()
; rdr.getDimensionOrder()
; rdr.getRGBChannelCount()
; rdr.isRGB()
; rdr.isInterleaved()
; rdr.getPixelType()
Additional Information#
In addition to core metadata, the module provides access to the following information:
Format
: File format of the opened file.Date
: Date information.Series Name
: Name of the series.
Physical Metadata#
For each series, the module extracts physical metadata:
PositionXYZ
: Physical position (x_um, y_um, and z_um).PhysicalSizeX
: Physical size in the X dimension [PhysicalSizeXUnit].PhysicalSizeY
: Physical size in the Y dimension [PhysicalSizeYUnit].PhysicalSizeZ
: Physical size in the Z dimension [PhysicalSizeZUnit].t_s
: Time information.
Note: Ensure that the provided information is adjusted based on the specific implementation details of the module.
TODO#
I would also add:
objective: NA, Xmag, and immersion;
PlaneExposure.
DOC:
Keep in mind that there are 2500 values with units, and some may change for the same metadata key (e.g., 488 nm, 543 nm, None).
Model: A file comprises:
1* series
Pixels
Planes
Refer to FrameSequences of Pims, where a frame is nDim, and each frame contains 1* plane (frame == plane).
When reading a plane (similar to memmap), it is possible to check TheC, TheT, TheZ.
It might be beneficial to consider using a vector in Dask, but further exploration is needed, especially regarding tiles, lif, and other formats.