glencoesoftware/bioformats2raw

Cannot convert svs to ome-tiff

gsakkis opened this issue · 4 comments

Hi, new to bioformats2raw/raw2ometiff. I'm trying to convert CMU-1-Small-Region.svs to OME-TIFF by first converting it to Zarr via bioformats2raw and then to OME-TIFF via raw2ometiff. However the latter complains about a missing directory:

$ bioformats2raw CMU-1-Small-Region.svs /tmp/CMU-1-Small-Region.ome.zarr
$ ll /tmp/CMU-1-Small-Region.ome.zarr
total 16
drwxrwxr-x 2 gsk gsk 4096 Νοε   4 18:32 OME
drwxrwxr-x 7 gsk gsk 4096 Νοε   4 18:32 0
drwxrwxr-x 4 gsk gsk 4096 Νοε   4 18:32 1
drwxrwxr-x 6 gsk gsk 4096 Νοε   4 18:32 2

$ raw2ometiff /tmp/CMU-1-Small-Region.ome.zarr /tmp/CMU-1-Small-Region.ome.tiff
Exception in thread "main" picocli.CommandLine$ExecutionException: Error while calling command (com.glencoesoftware.pyramid.PyramidFromDirectoryWriter@3b2cf7ab): java.lang.RuntimeException: java.io.IOException: Path '/tmp/CMU-1-Small-Region.ome.zarr/3' is not a valid path or not a directory.

What am I missing?

Versions:

$ bioformats2raw --version .
Version = 0.5.0
Bio-Formats version = 6.10.1
NGFF specification version = 0.4

$ raw2ometiff --version .
Version = 0.3.0
Bio-Formats version = 6.4.0

@gsakkis : That problem should have been fixed in glencoesoftware/raw2ometiff#81, which was released in raw2ometiff 0.3.1. Can you try updating your raw2ometiff version to 0.3.1 and see if that works? You shouldn't need to re-run the bioformats2raw command, just raw2ometiff.

@melissalinkert thanks for the prompt reply! raw2ometiff 0.3.1. doesn't seem to be available in conda that I use for installing the packages; I'll try to install it manually and see if it works.

So I installed raw2ometiff 0.3.1 and it does run without an error, great! Now I am comparing the original svs file with the final ome-tiff and there are some discrepancies, at least according to tifffile:

  • Original CMU-1-Small-Region.svs
TiffFile 'CMU-1-Small-Region.svs'  1.85 MiB  svs  4 Pages  4 Series

TiffPageSeries 0  'Baseline'  2967x2220x3  uint8  YXS  SVS  1 Pages
TiffPageSeries 1  'Thumbnail'  768x574x3  uint8  YXS  SVS  1 Pages
TiffPageSeries 2  'Label'  463x387x3  uint8  YXS  SVS  1 Pages
TiffPageSeries 3  'Macro'  431x1280x3  uint8  YXS  SVS  1 Pages
  • Converted CMU-1-Small-Region.ome.tiff
TiffFile 'CMU-1…e.tiff'  11.72 MiB  big-endian  BigTiff  ome  9 Pages  3 Series

TiffPageSeries 0  3x2967x2220  uint8  CYX  OME  2 Levels  3 Pages
TiffPageSeries 1  'macro image'  3x463x387  uint8  CYX  OME  2 Levels  3 Pages
TiffPageSeries 2  'label image'  3x431x1280  uint8  CYX  OME  4 Levels  3 Pages
  • Comparison:
    • There are 4 page series in the original, 3 in the converted; the "Thumbnail" series is apparently missing.
    • The original has 4 pages (1 per series), the converted 9 (3 per series).
    • The original has 1 resolution level per series, the converted has 2 or 4 (although I ran bioformats2raw with --use-existing-resolutions).
    • The labels of the 'Macro' and 'Label' series are swapped in the converted.

What is the reason of these differences? Are there any optional parameters/flags I can pass to preserve as much of the original structure as possible?

Apologies for not following up on this sooner, @gsakkis. Ultimately these issues are down to outstanding problems in Bio-Formats; there isn’t currently a work-around in bioformats2raw.

For reference, open Bio-Formats issues related to SVS:

ome/bioformats#3682
ome/bioformats#3682
ome/bioformats#3986

We’ll update here once there is a Bio-Formats release that fixes these issues.