Welcome to wsiprocess’s documentation!¶
Main Flow¶
- Scan some WSIs.
- Make some annotations with WSI annotation tools
- Then wsiprocess helps converting WSI + Annotation data into patches and easy-to-use annotation data.
WSIPatcher will give you GUI. Command Helper will recommend commands to run.
Installation¶
Example¶
As a python module¶
Basic Usage¶
import wsiprocess as wp
slide = wp.slide("xxx.tiff")
annotation = wp.annotation("xxx.xml")
rule = wp.rule("xxx.json")
annotation.make_masks(slide, rule, foreground=True)
patcher = wp.patcher(slide, "classification", annotation)
patcher.get_patch_parallel("benign")
Export annotaton xml of one class as mask image¶
import wsiprocess as wp
slide = wp.slide("xxx.tiff")
annotation = wp.annotation("xxx.xml")
annotation.make_masks(slide)
annotation.export_mask("xxx/masks", "benign")
Export annotation xml with inclusion definition as mask images, and save their thumbs¶
import wsiprocess as wp
slide = wp.slide("xxx.tiff")
annotation = wp.annotation("xxx.xml")
rule = wp.rule("xxx.json")
annotation.make_masks(slide, rule)
annotation.export_thumb_masks("xxx/masks")
As a command line tool¶
wsiprocess xxx.tiff method --annotation xxx.xml
- Need recommendation for choice of arguments? -> Command Helper
As a docker command line tool¶
# build the image
docker build . -t wsiprocess_image
# run the container
docker run --name wsiprocess_container -v [your files directory]:/data -it -d wsiprocess_image [commands] etc.
see Command Helper for commands
Available WSIs¶
Test ongoing
- From below we tested wsi data.
- 😄 => worked well.
- ☔ => did not work well.
- otherwise => did not check
- Aperio
- CMU-1-JP2K-33005.svs
- 😄 CMU-1-Small-Region.svs
- 😄 CMU-1.svs
- CMU-2.svs
- CMU-3.svs
- JP2K-33003-1.svs
- JP2K-33003-2.svs
- Generic-TIFF
- ☔ CMU-1.tiff
- Can not set magnification.
- ☔ CMU-1.tiff
- Hamamatsu-vms
- 😄 CMU-1.zip
- CMU-2.zip
- CMU-3.zip
- Could not DOWNLOAD from http://openslide.cs.cmu.edu/download/openslide-testdata/Hamamatsu-vms/
- Hamamatsu
- 😄 CMU-1.ndpi
- CMU-2.ndpi
- CMU-3.ndpi
- OS-1.ndpi
- OS-2.ndpi
- OS-3.ndpi
- Leica
- 😄 Leica-1.scn
- Leica-2.scn
- Leica-3.scn
- Leica-Fluorescence-1.scn
- Mirax
- CMU-1-Exported.zip
- CMU-1-Saved-1_16.zip
- CMU-1-Saved-1_2.zip
- ☔ CMU-1.zip
- Can not make the foreground mask.
- CMU-2.zip
- CMU-3.zip
- Mirax2-Fluorescence-1.zip
- Mirax2-Fluorescence-2.zip
- Mirax2.2-1.zip
- Mirax2.2-2.zip
- Mirax2.2-3.zip
- Mirax2.2-4-BMP.zip
- Mirax2.2-4-PNG.zip
- Olympus
- OS-1.zip
- OS-2.zip
- OS-3.zip
- Trestle
- ☔ CMU-1.zip
- ASAP can not show the image properly, and it’s hard to annotate.
- CMU-2.zip
- CMU-3.zip
- ☔ CMU-1.zip
- Ventana
- OS-1.bif
- OS-2.bif
- ☔ Zeiss : Can not load slide - ☔ Zeiss-1-Merged.zvi - ☔ Zeiss-1-Stacked.zvi - ☔ Zeiss-2-Merged.zvi - ☔ Zeiss-2-Stacked.zvi - ☔ Zeiss-3-Mosaic.zvi - ☔ Zeiss-4-Mosaic.zvi
Test¶
Download sample WSI¶
curl -O -C - http://openslide.cs.cmu.edu/download/openslide-testdata/CMU-1.ndpi
Make random annotation¶
- Install ASAP ( Linux / Windows ) - https://github.com/computationalpathologygroup/ASAP/releases
- Open CMU-1.ndpi and make some random annotation. - Save the annotation xml as “CMU-1.xml”.
Run test.py¶
cd tests
pytest tests.py
Citation¶
@article{wsiprocess,
Author = {Takumi Ando},
Title = {WSIPROCESS - Whole Slide Image Processing Library for Histopathological / Cytopathological Machine Learning Tasks},
Url = {https://github.com/tand826/wsiprocess},
Year = {2019}
}
TODO¶
- pathology_viewer to be public
- add link to WSIPatcher
- add to conda
- slow free server on heroku
- paste results on the thumbnails