Whole Slide Image (WSI) Processing Library
Project description
Convert Helper for Histopathological / Cytopathological Machine Learning Tasks
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
-
Install libvips
- Linux -
apt install libvips
- MacOS -
brew install vips
- Windows - Install tarball from here
- Linux -
-
Install wsiprocess
pip install wsiprocess
Anaconda User
# Only for python 3.6 or higher
conda install -c tand826 wsiprocess
Documentation
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
Convert to VOC / COCO style format (experimental)
# If already extracted patches...
# to COCO format
python wsiprocess/converters/wsiprocess_to_coco.py [root of wsiprocess] -s [directory to save to] -r [ratio of train, val and test]
# to VOC foramt
python wsiprocess/converters/wsiprocess_to_voc.py [root of wsiprocess] -s [directory to save to] -r [ratio of train, val and test]
# If not extracted patches yet...
# convert to both VOC and COCO
wsiprocess xxx.tiff method --annotation xxx.xml -vo -co
Available WSIs
Test ongoing
-
From below we tested wsi data.
- :smile: => worked well.
- :umbrella: => did not work well.
- otherwise => did not check
Classification
-
Aperio
- CMU-1-JP2K-33005.svs
- :smile: CMU-1-Small-Region.svs
- :smile: CMU-1.svs
- CMU-2.svs
- CMU-3.svs
- JP2K-33003-1.svs
- JP2K-33003-2.svs
-
Generic-TIFF
- :umbrella:CMU-1.tiff
- Can not set magnification.
- :umbrella:CMU-1.tiff
-
Hamamatsu-vms
- :smile:CMU-1.zip
- CMU-2.zip
- CMU-3.zip
- Could not DOWNLOAD from http://openslide.cs.cmu.edu/download/openslide-testdata/Hamamatsu-vms/
-
Hamamatsu
- :smile:CMU-1.ndpi
- CMU-2.ndpi
- CMU-3.ndpi
- OS-1.ndpi
- OS-2.ndpi
- OS-3.ndpi
-
Leica
- :smile: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
- :umbrella: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
- :umbrella:CMU-1.zip
- ASAP can not show the image properly, and it's hard to annotate.
- CMU-2.zip
- CMU-3.zip
- :umbrella:CMU-1.zip
-
Ventana
- OS-1.bif
- OS-2.bif
-
:umbrella:Zeiss : Can not load slide - :umbrella:Zeiss-1-Merged.zvi - :umbrella:Zeiss-1-Stacked.zvi - :umbrella:Zeiss-2-Merged.zvi - :umbrella:Zeiss-2-Stacked.zvi - :umbrella:Zeiss-3-Mosaic.zvi - :umbrella: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},
Journal = {github.com/tand826/wsiprocess},
Year = {2019}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
wsiprocess-0.2.tar.gz
(15.4 kB
view hashes)
Built Distribution
wsiprocess-0.2-py3-none-any.whl
(26.2 kB
view hashes)