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.
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 -r requirements.txt pip install wsiprocess
Example
As a python module
Basic Usage
import wsiprocess as wp
slide = wp.slide("xxx.tiff")
annotation = wp.annotation("xxx.xml")
inclusion = wp.inclusion("xxx.txt")
annotation.make_masks(slide, inclusion, 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")
inclusion = wp.inclusion("xxx.txt")
annotation.make_masks(slide, inclusion)
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.
- :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 )
- Open CMU-1.ndpi and make some random annotation.
- Save the annotation xml as "CMU-1.xml".
- Run test.py
python test.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}
}
TODO
- other annotation tools
- Cytomine : hard to install
- ImageJ with SlideJ -> only to view one patch???
- JVSView
- OMERO
- Orbit
- PMA.start : still cannot properly view the image
- QuPath : run script to save polygon or rectangles
- caMicroscope OUTPUT SIZE alart
- add to conda
- slow free server on heroku
- paste results on the thumbnails
- if method == detection, like segmentation flow, use mask to check on_annotation.
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.0.1.tar.gz
(13.3 kB
view hashes)
Built Distributions
wsiprocess-0.0.1-py3.7.egg
(32.0 kB
view hashes)
wsiprocess-0.0.1-py3-none-any.whl
(21.7 kB
view hashes)
Close
Hashes for wsiprocess-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 96d62166282703e11fbcec55cfcdedd583f15c16dbd47f35c887fd9a0965ec9f |
|
MD5 | 613b77acf5bba9856e0d3a494338787a |
|
BLAKE2b-256 | ce57e7017ad6cd79e38522c94cdeba71d7bd0b1959a5255724d659579b9f7103 |