procedures for wsi analysis
Project description
PathAIA
Simple digital pathology analysis tools.
Basic Usage • Advanced features • Docs • Community • License
PathAIA aims to standardize and automate most of WSI analysis in digital pathology
If you feel like you keep rewriting the same code over and over again when working on Whole Slide Images and you wish there were a nicely integrated library to automate all this, you came to the right place. With PathAIA we aim to create a fast, high level and modular library to work on WSI at scale in order to perform image analysis or to create a well rounded dataset for your machine learning project.
Basic Usage
Step 0: Install
Simple installation from PyPI
pip install pathaia
Step 1: Import pathaia's patch extraction tool
from pathaia.patches import patchify_folder_hierarchically
Step 2: Define your extraction parameters
You can extract at multiple pyramid levels with a hierarchical structure between patches of different levels. You can control pretty much every extraction parameter you like, from patch size to interval between patches or filters to chose which patch to extract. You can also decide whether you want to save patches as png or just extract coordinates in csv.
infolder = "/path/to/input/slide/folder"
outfolder = "/path/to/output/patches/folder"
top_level = 5
low_level = 0
psize = 224
interval = {"x": 224, "y": 224}
silent = list(range(low_level, top_level+1))
extensions = [".svs"]
recurse = False
slide_filters = ["full"]
verbose = 2
With these parameters you will find all svs slides that are directly in infolder
and extract patch coordinates from levels 0 to 5 with a hierarchical structure. No png image will be stored as silent
lists all levels. Patches will be contiguous with size 224 and will only be extracted from tissue zone that are determined by filtering on slide thumbnails. With verbose=2
thumbnails of extracted areas are also stored on disk.
Step 3: Extract !
patchify_folder_hierarchically(
infolder,
outfolder,
top_level,
low_level,
psize,
interval,
silent=silent,
extensions=extensions,
recurse=recurse,
slide_filters=slide_filters,
verbose=verbose,
)
Output csv will look like :
id | parent | level | x | y | dx | dy |
---|---|---|---|---|---|---|
Patch identifier | Parent identifier | int (0, max level) | int | int | int | int |
#1 | None | 2 | 0 | 0 | 996 | 996 |
#1#1 | #1 | 1 | 0 | 0 | 448 | 448 |
#1#1#1 | #1#1 | 0 | 0 | 0 | 224 | 224 |
#1#1#2 | #1#1 | 0 | 0 | 224 | 224 | 224 |
... | ... | ... | ... | ... | ... | ... |
Advanced features
You can use more advanced features to work on slides, most notably using your custom filters. Check documentation for more info.
Community
The lightning community is maintained by 4 core contributors from Institut Universitaire du Cancer de Toulouse - Oncopole:
Asking for help
If you have any questions please:
License
Please observe the GNU GPL 3.0 license that is listed in this repository.
BibTeX
If you want to cite the framework feel free to use this.
@article{pathaia2021,
title={PathAIA},
author={Abreu, A and .al},
journal={GitHub. Note: https://github.com/ArnaudAbreu/PathAIA},
volume={3},
year={2021}
}
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pathaia-0.2.4.tar.gz
.
File metadata
- Download URL: pathaia-0.2.4.tar.gz
- Upload date:
- Size: 55.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9cd216de9d701e0b836c0defd1a8df6531bc1585d5015741e82125f72b4f0f85 |
|
MD5 | 77836dfcfcf7d0afe386c69fdab459cc |
|
BLAKE2b-256 | cc9c30c6799743b726ea52cc1ff99040a8a93eb5607d4dca22268a067f3c9a36 |
File details
Details for the file pathaia-0.2.4-py3-none-any.whl
.
File metadata
- Download URL: pathaia-0.2.4-py3-none-any.whl
- Upload date:
- Size: 64.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5dc058debfb0f759e0dcecbbcf1ce529ac74d0fde1cd00dda8fc5523a8531c9a |
|
MD5 | 83c7aeefa72e2cb2142eabe59a71d971 |
|
BLAKE2b-256 | c6580a4415661b561891f649055e21b1f4b07859957f20bca17883d853913e2e |