oss

A microscope image can be five dimensions before it becomes a picture

10 sources 8 primary sources August 1, 2026

Text
Microbiologist Amy Charkowski and graduate student Abdulah Harris look at a confocal microscope display beside the instrument.

Microbiologist Amy Charkowski and graduate student Abdulah Harris inspect a confocal microscope display in a 2000 USDA Agricultural Research Service photograph by Scott Bauer. The screen shows an alfalfa root experimentally contaminated with Salmonella; this is an archival photograph of microscopy work, not an image produced for this article. [10]

A confocal microscope can record more than a rectangle. One acquisition may contain an X–Y field at several focal depths, repeated over time and split into multiple fluorescent channels. The display chooses one slice or projection so that a person can see it. The file has a harder job: it must keep the pixels attached to the Z, T and C axes, physical scale, channel identities, stage positions and acquisition details that make them interpretable. This ecosystem map follows the contracts that keep those dimensions attached as the file moves from instrument to analysis.

That is why the most dangerous microscopy-format failure is not always “file will not open.” It is “file opens, but the coordinates quietly changed.” A stack may be flattened, a channel may be assigned the wrong color, a time interval may become an anonymous frame number, or micrometres may turn into uncalibrated pixels. The thumbnail still looks plausible.

Open microscopy software addresses this problem as an ecosystem, not as one universal application. Bio-Formats translates vendor-specific files. OME-TIFF packages pixels and OME metadata in a familiar exchange object. OME-Zarr reorganizes large images into chunks and resolution levels. Fiji supplies a mature desktop workbench; napari supplies an n-dimensional Python workbench. The useful question is not which name wins. It is which contract should hold at each handoff.

Image context: Scott Bauer’s 2000 photograph shows microbiologist Amy Charkowski and graduate student Abdulah Harris reading a confocal microscope display while examining a contaminated alfalfa root. It belongs here because the visible picture is only the human-facing end of an acquisition: the scientific record also depends on the axes, calibration and provenance carried away from the instrument.[10]

Bio-Formats is the translation boundary

Bio-Formats is a Java library that reads pixels and metadata from life-sciences image formats and maps their metadata into the OME data model. Its current documentation lists support for more than 140 formats, but it does not pretend support is uniform: the project publishes separate tables for dataset structure, read/write capability and the metadata fields populated by each reader.[1]

That distinction is operationally important. “Supported” can mean that the pixels are readable while a particular instrument field is absent, stored only as unstandardized original metadata, or interpreted differently after a reader fix. The project explicitly warns that conversion into OME metadata is neither complete nor bug-free, and it treats some changes to core metadata as version-significant behavior changes. An imaging core should therefore record the Bio-Formats version beside every conversion and validate representative files from each microscope—not merely test one extension.[1]

The reader also has choices that can alter what downstream code sees. For Zeiss CZI, for example, zeissczi.autostitch controls automatic stitching, while zeissczi.relative_positions chooses pixel positions instead of physical stage positions. Those options are available through showinf -option, Fiji’s configuration window and the DynamicMetadataOptions API.[1] A reproducible pipeline logs these settings as part of the data transformation.

Fiji makes this boundary accessible without hiding it. Its Bio-Formats Importer is integrated with File › Open, and scripts can call BF.openImagePlus(id) or construct ImporterOptions for crops, color modes and other choices. Its Bio-Formats Exporter can write OME-TIFF.[2] That makes Fiji a practical inspection bench: open an original, inspect the dimensions and metadata, then export a deliberate derivative.

There is a small but consequential trap. Fiji’s ordinary File › Save and Save As paths do not invoke the Bio-Formats Exporter. A .tif written there is an ImageJ TIFF, not automatically an OME-TIFF preserving the same metadata contract. Teams that require OME-TIFF should put Plugins › Bio-Formats › Exporter in the procedure and test the saved file by reopening it independently.[2]

OME-TIFF is an exchange object, not just “a TIFF”

OME-TIFF combines TIFF or BigTIFF pixel storage with an OME-XML metadata block. The XML sits in the ImageDescription field of the first image-file directory and uses TiffData elements to map TIFF planes to positions such as Z, T and C. The enclosing Pixels element declares values such as SizeZ, SizeT, SizeC, pixel type and DimensionOrder; a reader uses those declarations to reconstruct the multidimensional acquisition.[3]

This design makes OME-TIFF attractive when the handoff should be a bounded, portable file or a small related set of files. Mature TIFF tooling can reach the pixel planes, while OME-aware software can recover the richer model. BigTIFF variants remove standard TIFF’s 4 GB addressing ceiling, and the specification can represent pyramidal resolutions and multi-file datasets.[2][3]

The strengths imply boundaries. If an acquisition spans several OME-TIFF files, moving only one can leave referenced planes behind even though a copy of the metadata remains. A single enormous file may be convenient to catalogue but awkward for parallel, selective access. And TIFF readability alone does not prove that a generic viewer understands the OME-XML. OME-TIFF is best treated as an explicit exchange or preservation derivative whose plane counts, data type and physical calibration have been checked after conversion—not as a decorative suffix added to any TIFF.

OME-Zarr is an execution layout

OME-Zarr 0.5 takes a different approach. It builds on Zarr version 3 and stores images as arrays divided into chunks. A multiscale image has separate arrays for ordered resolution levels; axes metadata names space, time and channel dimensions; and coordinateTransformations map array coordinates to physical coordinates. The same hierarchy can live on local storage, an HTTP server or object storage such as S3 or GCS.[4]

This layout changes the unit of access. A viewer does not need to fetch a whole slide or volume to show a small region at the current zoom. A parallel task can work on different chunks. Labels can live alongside the image, and a plate hierarchy can express rows, wells and fields of view. For large light-sheet, pathology or high-content-screening datasets, those are execution properties rather than cosmetic format features.[4]

Conversion choices become part of performance, however. bioformats2raw exposes --series, --resolutions, --target-min-size, --tile-width, --tile-height, --max-workers and --compression. Its maintainers explicitly warn that performance is sensitive to hardware and those settings. It can currently write OME-NGFF 0.4 or 0.5, so a command that does not record --ngff-version has left an important compatibility decision implicit.[5]

A useful conversion record is therefore closer to a build manifest than a filename:

input checksum + Bio-Formats version + bioformats2raw version
+ reader options + --ngff-version + tile/chunk settings
+ compression + worker count + output checksum or inventory

Chunking also creates a deployment cost: one logical image becomes a hierarchy of metadata and chunk objects. The BioImage Archive’s current OME-Zarr submission support is still labelled alpha and asks submitters to zip each OME-Zarr hierarchy for transfer, with a 2 TB maximum per zip and a recommendation to stay below 100 GB.[8] That does not make OME-Zarr unsuitable. It demonstrates that streaming, object storage and archival deposit are different boundaries; a layout optimized for one may need packaging at another.

Fiji and napari are different workbenches

Fiji is strongest when a scientist needs a desktop application with familiar ImageJ operations, macros and a long plugin history. Bio-Formats arrives in the same environment, so an operator can examine a vendor file, choose import behavior and run an established local protocol without first building a Python application.[2]

napari starts from a different center of gravity. Its image layer accepts array-like data, and viewer.add_image or napari.imshow() places that data in an interactive n-dimensional viewer. With lazy sources such as Dask or Zarr, napari waits until display time to materialize the region being examined. It also accepts a list of successively downsampled arrays as a multiscale image and chooses a level according to the viewport.[6]

That makes napari a natural inspection surface for Python analysis pipelines and large chunked arrays. It does not turn the viewer into a preservation format, and lazy loading cannot repair poor chunks, missing axis metadata or a plugin environment that was never recorded. Fiji has analogous reproducibility risks in macros, update sites and plugin versions. The independent review A Hitchhiker’s guide through the bio-image analysis software universe reaches the right non-ranking conclusion: platform choice depends on the image data, team skills, institutional infrastructure, community, time and budget.[9]

The two workbenches can belong to the same pipeline. A facility scientist might verify import and acquisition metadata in Fiji; a computational group might read the normalized derivative into napari for segmentation review. Their shared boundary should be a validated data contract, not a screenshot and not an assumption that both programs interpret every vendor file identically.

Preserve three roles, then test the handoffs

A small lab does not need every component. It does need to distinguish three roles:

  1. Original acquisition: retain the immutable vendor dataset, including companion files and directory structure. The BioImage Archive likewise says raw images should be supplied in the manufacturer’s original format when Bio-Formats supports it, while generally preferring community standards such as OME-TIFF or OME-NGFF where possible. Conversion is an added access path, not a reason to discard the source.[7]
  2. Normalized derivative: choose OME-TIFF for a portable bounded exchange object, OME-Zarr for chunked or remote computation, or both when archive and analysis paths genuinely differ. Store the converter, versions, options and checksums with it.
  3. Analysis products: keep masks, labels, regions of interest, measurements and scripts linked to the exact input derivative. A rendered PNG can illustrate a result, but it cannot stand in for the quantitative array or its coordinates.

Then construct a small acceptance set that represents the instruments rather than the file extensions: one Z-stack, one time series, one multichannel acquisition, and—if relevant—one tiled field or multiwell plate. After each handoff, compare SizeX/Y/Z/T/C, data type, physical pixel sizes, time intervals, channel names, series count and stage positions; if the converter reordered axes, verify that every Z, T and C plane still maps to the right coordinate. Inspect a few intensity values and missing-plane cases. Reopen the result through a second reader. A matching thumbnail is the weakest possible test because it exercises the part of the file most likely to survive a mistake.

For a bench workflow, Bio-Formats plus Fiji and validated OME-TIFF may be enough. For a facility serving mixed instruments, Bio-Formats becomes a controlled ingestion layer and both open formats may be justified. For a computational group working across object storage, OME-Zarr plus napari and array-native code may be the main path. None of these choices makes the others obsolete.

The ecosystem’s real achievement is not that it makes every microscope produce the same file. It gives teams named places to translate, normalize, stream, inspect and preserve—and makes the losses at those places testable. An open image is not merely pixels that open. It is pixels whose coordinates and provenance can survive the next tool.

Sources

  1. Open Microscopy Environment documentation — current library purpose, format-support boundaries, versioning policy, and reader configuration: “About Bio-Formats”, “Formats”, “Additional reader and writer options”
  2. ImageJ and Open Microscopy Environment documentation — Fiji importer, exporter, scripting API, BigTIFF extensions, save-path boundary, and release-build guidance: “Bio-Formats”, “Using Bio-Formats in ImageJ”
  3. Open Microscopy Environment, “OME-TIFF specification” — TIFF/BigTIFF structure, embedded OME-XML, plane mapping, dimension order, multi-file datasets, and pyramids.
  4. Open Microscopy Environment, “OME-Zarr specification 0.5” — Zarr v3 storage, axes, multiscales, coordinate transformations, labels, plates, and storage locations.
  5. Glencoe Software, bioformats2raw — conversion interface, resolution and tile controls, OME-NGFF version selection, compression, and performance boundaries.
  6. napari Documentation, “Image” — array-like image layers, lazy loading, multiscale representations, and viewport-dependent resolution selection.
  7. EMBL-EBI BioImage Archive, “REMBI Lab Guide” — submission guidance for original raw files, community-standard image formats, acquisition metadata, and analysis outputs.
  8. EMBL-EBI BioImage Archive, “Zarr and OME-Zarr submissions” — current alpha support, transfer packaging, and archive size guidance.
  9. Haase et al., “A Hitchhiker’s guide through the bio-image analysis software universe,” FEBS Letters 596 (2022) — independent review of platform-selection factors and the bio-image software landscape.
  10. Wikimedia Commons, “Abdulah Harris and Amy Charkowski at confocal microscope” — source, date, description, authorship, dimensions, and public-domain status of the article photograph.
Previous openSUSE’s board does not ship Tumbleweed. Its review chain does. Next OpenPnP gives a pick-and-place machine a software contract

Recommended In oss

Matched by subject and format