|
a/README.md |
|
b/README.md |
1 |
[](https://badge.fury.io/py/DigiPathAI) |
1 |
[](https://badge.fury.io/py/DigiPathAI)
|
2 |
[](https://pepy.tech/projects/digipathai) |
2 |
[](https://pepy.tech/projects/digipathai)
|
3 |
[](https://arxiv.org/abs/2001.00258) |
3 |
[](https://arxiv.org/abs/2001.00258) |
4 |
|
4 |
|
5 |
|
5 |
|
6 |
# DigiPathAI |
6 |
# DigiPathAI
|
7 |
A software application built on top of [openslide](https://openslide.org/) for viewing [whole slide images (WSI)](https://www.ncbi.nlm.nih.gov/pubmed/30307746) and performing pathological analysis |
7 |
A software application built on top of [openslide](https://openslide.org/) for viewing [whole slide images (WSI)](https://www.ncbi.nlm.nih.gov/pubmed/30307746) and performing pathological analysis |
8 |
|
8 |
|
9 |
### Citation |
9 |
### Citation
|
10 |
If you find this reference implementation useful in your research, please consider citing: |
10 |
If you find this reference implementation useful in your research, please consider citing:
|
11 |
``` |
11 |
```
|
12 |
@article{khened2020generalized, |
12 |
@article{khened2020generalized,
|
13 |
title={A Generalized Deep Learning Framework for Whole-Slide Image Segmentation and Analysis}, |
13 |
title={A Generalized Deep Learning Framework for Whole-Slide Image Segmentation and Analysis},
|
14 |
author={Khened, Mahendra and Kori, Avinash and Rajkumar, Haran and Srinivasan, Balaji and Krishnamurthi, Ganapathy}, |
14 |
author={Khened, Mahendra and Kori, Avinash and Rajkumar, Haran and Srinivasan, Balaji and Krishnamurthi, Ganapathy},
|
15 |
journal={arXiv preprint arXiv:2001.00258}, |
15 |
journal={arXiv preprint arXiv:2001.00258},
|
16 |
year={2020} |
16 |
year={2020}
|
17 |
} |
17 |
}
|
18 |
``` |
18 |
```
|
19 |
# Features |
19 |
# Features
|
20 |
- Responsive WSI image viewer |
20 |
- Responsive WSI image viewer
|
21 |
- State of the art cancer AI pipeline to segment and display the cancerous tissue regions |
21 |
- State of the art cancer AI pipeline to segment and display the cancerous tissue regions |
22 |
|
22 |
|
23 |
# Application Overview |
|
|
24 |
<p align="center"> |
|
|
25 |
<img src="imgs/demo.gif"> |
|
|
26 |
</p> |
|
|
27 |
|
|
|
28 |
# Results |
|
|
29 |
<p align="center"> |
|
|
30 |
<img width="460" height="300" src="imgs/results_1.png"> |
|
|
31 |
</p> |
|
|
32 |
|
|
|
33 |
# Installation |
23 |
# Installation
|
34 |
Running of the AI pipeline requires a GPU and several deep learning modules. However, you can run just the UI as well. |
24 |
Running of the AI pipeline requires a GPU and several deep learning modules. However, you can run just the UI as well. |
35 |
|
25 |
|
36 |
## Just the UI |
26 |
## Just the UI
|
37 |
### Requirements |
27 |
### Requirements
|
38 |
- `openslide` |
28 |
- `openslide`
|
39 |
- `flask` |
29 |
- `flask` |
40 |
|
30 |
|
41 |
The following command will install only the dependencies listed above. |
31 |
The following command will install only the dependencies listed above.
|
42 |
``` |
32 |
```
|
43 |
pip install DigiPathAI |
33 |
pip install DigiPathAI
|
44 |
``` |
34 |
``` |
45 |
|
35 |
|
46 |
## Entire AI pipeline |
36 |
## Entire AI pipeline
|
47 |
### Requirements |
37 |
### Requirements
|
48 |
- `pytorch` |
38 |
- `pytorch`
|
49 |
- `torchvision` |
39 |
- `torchvision`
|
50 |
- `opencv-python` |
40 |
- `opencv-python`
|
51 |
- `imgaug` |
41 |
- `imgaug`
|
52 |
- `matplotlib` |
42 |
- `matplotlib`
|
53 |
- `scikit-learn` |
43 |
- `scikit-learn`
|
54 |
- `scikit-image` |
44 |
- `scikit-image`
|
55 |
- `tensorflow-gpu >=1.14,<2` |
45 |
- `tensorflow-gpu >=1.14,<2`
|
56 |
- `pydensecrf` |
46 |
- `pydensecrf`
|
57 |
- `pandas` |
47 |
- `pandas`
|
58 |
- `wget` |
48 |
- `wget` |
59 |
|
49 |
|
60 |
The following command will install the dependencies mentioned |
50 |
The following command will install the dependencies mentioned
|
61 |
``` |
51 |
```
|
62 |
pip install "DigiPathAI[gpu]" |
52 |
pip install "DigiPathAI[gpu]"
|
63 |
``` |
53 |
``` |
64 |
|
54 |
|
65 |
Both installation methods install the same package, just different dependencies. Even if you had installed using the earlier command, you can install the rest of the dependencies manually. |
55 |
Both installation methods install the same package, just different dependencies. Even if you had installed using the earlier command, you can install the rest of the dependencies manually. |
66 |
|
56 |
|
67 |
# Usage |
57 |
# Usage
|
68 |
## Local server |
58 |
## Local server
|
69 |
Traverse to the directory containing the openslide images and run the following command. |
59 |
Traverse to the directory containing the openslide images and run the following command.
|
70 |
``` |
60 |
```
|
71 |
digipathai <host: localhost (default)> <port: 8080 (default)> |
61 |
digipathai <host: localhost (default)> <port: 8080 (default)>
|
72 |
``` |
62 |
``` |
73 |
|
63 |
|
74 |
## Python API usage |
64 |
## Python API usage
|
75 |
The application also has an API which can be used within python to perform the segmentation. |
65 |
The application also has an API which can be used within python to perform the segmentation.
|
76 |
``` |
66 |
```
|
77 |
from DigiPathAI.Segmentation import getSegmentation |
67 |
from DigiPathAI.Segmentation import getSegmentation |
78 |
|
68 |
|
79 |
prediction = getSegmentation(img_path, |
69 |
prediction = getSegmentation(img_path,
|
80 |
patch_size = 256, |
70 |
patch_size = 256,
|
81 |
stride_size = 128, |
71 |
stride_size = 128,
|
82 |
batch_size = 32, |
72 |
batch_size = 32,
|
83 |
quick = True, |
73 |
quick = True,
|
84 |
tta_list = None, |
74 |
tta_list = None,
|
85 |
crf = False, |
75 |
crf = False,
|
86 |
save_path = None, |
76 |
save_path = None,
|
87 |
status = None) |
77 |
status = None)
|
88 |
``` |
78 |
``` |
89 |
|
79 |
|
90 |
# Contact |
80 |
# Contact
|
91 |
- Avinash Kori (koriavinash1@gmail.com) |
81 |
- Avinash Kori (koriavinash1@gmail.com)
|
92 |
- Haran Rajkumar (haranrajkumar97@gmail.com) |
82 |
- Haran Rajkumar (haranrajkumar97@gmail.com) |
93 |
|
83 |
|
94 |
[](https://ko-fi.com/M4M132RPG) |
84 |
[](https://ko-fi.com/M4M132RPG) |
95 |
|
85 |
|