glencoesoftware / raw2ometiff

Raw format to OME-TIFF converter
GNU General Public License v2.0
48 stars 22 forks source link

openslide cannot read pyramid-based tiff file that is converted from *.mrxs #67

Closed wanghan0501 closed 2 years ago

wanghan0501 commented 3 years ago

To convert .mrxs to pramid .tiff, I run the following code at first:

$ bioformats2raw /data_backup/Elements/广州医科大学附属肿瘤医院/bingli/1M02.mrxs tmp --max_workers=16 --max_cached_tiles 320  --progress
OpenJDK 64-Bit Server VM warning: You have loaded library /tmp/opencv_openpnp9112938614904218835/nu/pattern/opencv/linux/x86_64/libopencv_java342.so which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
[0/0] 100% │████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████│ 7503/7503 (0:01:10 / 0:00:00)
[0/1] 100% │████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████│ 1953/1953 (0:00:11 / 0:00:00)
[0/2] 100% │██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████│ 528/528 (0:00:02 / 0:00:00)
[0/3] 100% │██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████│ 144/144 (0:00:00 / 0:00:00)
[0/4] 100% │████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████│ 36/36 (0:00:00 / 0:00:00)
[0/5] 100% │████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████│ 12/12 (0:00:00 / 0:00:00)
[0/6] 100% │██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████│ 3/3 (0:00:00 / 0:00:00)
[0/7] 100% │██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████│ 3/3 (0:00:00 / 0:00:00)
[0/8] 100% │██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████│ 3/3 (0:00:00 / 0:00:00)
[1/0] 100% │████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████│ 12/12 (0:00:00 / 0:00:00)
[1/1] 100% │██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████│ 3/3 (0:00:00 / 0:00:00)
[1/2] 100% │██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████│ 3/3 (0:00:00 / 0:00:00)
[1/3] 100% │██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████│ 3/3 (0:00:00 / 0:00:00)

Then, I run the next code:

$ raw2ometiff tmp 1M02.ome.tiff --progress --max_workers=16
[0/0]  99% │████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████│ 7503/7503 (0:00:29 / 0:00:00)
[0/1]  99% │███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌│ 1948/1953 (0:00:07 / 0:00:00)
[0/2]  97% │████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍     │ 513/528 (0:00:01 / 0:00:00)
[0/3]  95% │████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌         │ 137/144 (0:00:00 / 0:00:00)
[0/4]  80% │█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉                                      │ 29/36 (0:00:00 / 0:00:00)
[0/5]  75% │███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████                                                 │  9/12 (0:00:00 / 0:00:00)
[0/6]   0% │                                                                                                                                                                                                            │ 0/3 (0:00:00 / ?)
[0/7]  33% │████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████                                                                  │ 1/3 (0:00:00 / 0:00:00)
[0/8] 100% │██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████│ 3/3 (0:00:00 / 0:00:00)
[1/0]   0% │                                                                                                                                                                                                          │  0/12 (0:00:00 / ?)
[1/1]   0% │                                                                                                                                                                                                            │ 0/3 (0:00:00 / ?)
[1/2]   0% │                                                                                                                                                                                                            │ 0/3 (0:00:00 / ?)
[1/3]   0% │                                                                                                                                                                                                            │ 0/3 (0:00:00 / ?)

However, when I use openslide open the converted tiff file, I get:

image

It means the converted tiff file only contains one resolution.. However, I want to get a pyramid-based tiff file. I don't know what wrong with me...

melissalinkert commented 3 years ago

@wanghan0501 : that is expected behavior. raw2ometiff writes pyramid OME-TIFF by default, which stores resolutions as described here:

https://docs.openmicroscopy.org/ome-model/6.0.0/ome-tiff/specification.html#sub-resolutions

As far as I know, OpenSlide does not support OME-TIFF (pyramid or otherwise), and assumes that resolutions in TIFF files are stored as described here:

https://openslide.org/formats/generic-tiff/

which means it will only see the largest resolution in the pyramid OME-TIFF (even though a full pyramid is present). If you need to be able to work with the converted file in OpenSlide, you might try using raw2ometiff tmp 1M02.ome.tiff --progress --max_workers=16 --legacy to see if that is any better.

wanghan0501 commented 3 years ago

Thanks for your reply!! I have tried raw2ometiff tmp 1M02.ome.tiff --progress --max_workers=16 --legacy, and it doesn't work...

So, do you know how to access the raw data of *.ome.tiff like Openslide? I want to access the pyramid-based tiff instead of only the largest resolution.

sbesson commented 3 years ago

@wanghan0501 Several open-source libraries support multi-resolution OME-TIFF but it depends on which environment you are working in. For instance in Java, you will want to use Bio-Formats and in Python, tifffile or aicsimageio are probably the immediate library coming to mind.