Skip to content

Implement DICOM image reader#163

Open
leandervaneekelen wants to merge 1 commit into
mahmoodlab:mainfrom
leandervaneekelen:main
Open

Implement DICOM image reader#163
leandervaneekelen wants to merge 1 commit into
mahmoodlab:mainfrom
leandervaneekelen:main

Conversation

@leandervaneekelen

Copy link
Copy Markdown

Hi Guillaume and co,

I frequently work with WSIs scanned as DICOMs. This PR implements support for this format by wrapping a reader around wsidicom in a similar way to #150 which was written for SPDC.

One caveat is that DICOMs break away from the typical "monolithic" file format such as a .tif or a .svs file, instead opting for being contained in a folder with an arbitrary amount of .dcm files. This necessitates the existence of a small util function _is_dicom_folder. This doesn't fit the typical design pattern of checking the extension of a file to determine its file type, and I was unsure whether or not you'd like a bigillion _is_dicom_folder calls in collect_valid_slides for batched processing. Let me know what you think.

Comment thread trident/Processor.py

self.job_dir = job_dir
self.wsi_source = wsi_source
# TODO: should I add DICOM here as well?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, we can include dicom here too.

@guillaumejaume

Copy link
Copy Markdown
Contributor

Hi @leandervaneekelen, thx for the PR! I thought openslide was supporting DICOM (https://forum.image.sc/t/openslide-4-0-0-released/87323)? Or only some of the DICOM slides? Can you shared a DICOM slide so i can test on my end. thx

@guillaumejaume

Copy link
Copy Markdown
Contributor

Hi @leandervaneekelen, any updates on my previous message? thanks!

HarveySouth added a commit to HarveySouth/TRIDENT that referenced this pull request Mar 9, 2026
guillaumejaume added a commit that referenced this pull request Mar 30, 2026
* Add omezarr package requirements

* Init OMEZarr reader

* Add OMEZarr reader support based on changes in #163

* Fix OMEZarr thumbnail algorithm and correct init flag to updated variable name

* Update pyproject.toml

Change the ome-zarr dependencies to hopefully work better with the strict package requirements of aicsimageio.

* Update omezarr reader to successfully run through the same commands in test_openslidewsi.py

* Add further OMEZarr reader references

didn't change index.rst as the support is probably more narrow than any
conception of a WSI in the zarr format.

* Change OMEZarr WSI properties to dictionary

* Change OMEZarrWSI documentation slightly

* Update comment for OMEZarrWSI property dictionary

* Fix py310 environment

* Move OMEZarr support to be optional

* Update OMEZarrWSI.py following PR review

Fix assumption that ngff-multiscales have a strict dimension ordering
Format code with black and autopep8
Move imports that are now optional to a try except block
Add docstring to _fetch_downsamples
Optimise read_region by adding some processing to lazy_initialize

* Fix OMEZarr robustness issues

Make imports more robust
Expand possible dimnames
Fix incorrect OME spec assumption in fetch_mpp
Update slice varname for better readability
Cache slice involved variables in init rather than read

* Update docs for optional install

* fix: naming in progress bar

---------

Co-authored-by: Harvey South <harveysouth@hotmail.co.uk>
Co-authored-by: Harvey South <73258129+HarveySouth@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants