.ets .vsi File loading

We’ve recently came across the proprietary olympus .vsi/.ets file types used primarily at the bioinformatics field. It stores a sequence of images, much like a sequence node, but with with a pyramidal scheme, which lower resolution versions of the image are stored to facilitate the navigation. So as the user loads the file, the lowest resolution is loaded and the whole image is shown. As the user zooms in, the part been shown is updated with part of the higher resolution image.
The sequence aspect is due to the format having CZT dimensions, where C is the number of channels, typically 3 (RGB), Z is the depth, representing a version of the image varying some adjustment such as the microscope focus, and T is time. Various pyramid resolutions are stored for each Z level and T.

For example, I have one image of CZT 3x15x1 with 64,000x40,000 pixels. Each of the 15 images are close to 7.5GiB and the whole file is 112.5GiB. Sometimes the files go up to 1TB.

Have anyone bumped into similar dynamic loading type of image before?
Has anything similar to this been done inside 3D Slicer?
Any clue on how to tackle loading and displaying this in 3D Slicer?

QuPath implements this using the bioformats library. It has the partial loading/zooming scheme described above. But it is in java and bioformats is GPLed

You might be able to adapt the SlicerBigImage extension to work with that format. It uses OpenSlide (C / LGPL, so more Slicer friendly).

The older IA-SEM Module also had some very nice features along the lines you describe.

1 Like