Histopathological image analysis using Grad-CAM representation map
Project description
HipoMap
HipoMap is slide-based histopathology analysis framework in which a disease-specific graphical representation map is generated from each slide. Further, HipoMap, which is a small and fixed size, is introduced as input for machine-learning models instead of extremely large and variable size WSI. HipoMap is obtained using gradients of patch probability scores to represent disease-specific morphological patterns. Proposed HipoMap based whole slide analysis has outperformed current state-of-art whole slide analysis methods. We assessed the proposed method on Lung Cancer WSI images and interpreted the model based on class probability scores and HipoMap scores. A pathologist clinically verified the results of interpretation.
- Website: http://dataxlab.org/hipo-map
- Documentation: https://readthedocs.org/projects/hipo-map/
- Source code: https://github.com/datax-lab/HipoMap
It provides:
- a powerful ...
- ...
Dependencies
OpenSlide
OpenSlide is a C library that provides a simple interface to read whole-slide images (also known as virtual slides). The current version is 3.4.1, released 2015-04-20.
For Linux (Fedora), you can install latest version of OpenSlide by running following commands from terminal:
$ dnf install openslide
For Linux (Debian, Ubuntu), you can install latest version of OpenSlide by running following commands from terminal:
$ apt-get install openslide-tools
For Linux (RHEL, CentOS), you can install latest version of OpenSlide by running following commands from terminal:
$ yum install epel-release
$ yum install openslide
For MacOSX, you can install latest version of OpenSlide by running following commands from terminal:
$ brew install openslide
For Window, you can install latest version of OpenSlide:
https://openslide.org/download/#windows-binaries
Installation
Latest PyPI stable release
pip install HipoMap
Dependencies+
Documentation
Quick Start
Generating Whole-Slide Image based representation map
# Model load
# If you want to loaded keras pre-trained model
from tensorflow.keras.applications.vgg16 import VGG16
model = VGG16()
# If you want to loaded your pre-trained model(.h5 file)
from tensorflow.keras.models import load_model
model = load_model(r'./pre_model.h5')
# Make representation map
from hipomap.core import generate_hipomap
generate_hipomap(inputpath="<path>/Dataset/", outputpath="<path>/Rep/", model=model,
layer_name="block5_conv3", patch_size=(224, 224))
Drawing heatmap with representation map
# Draw heatmap
from hipomap.core import draw_represent
draw_represent(path="<path>/Dataset/", K=50, max_value=1000, save=False)
Classify to Cancer/Normal with representation map
In this step, you must have a baseline file(.csv) for dividing each representation map generated by train / validation / test set.
# Classify data to cancer/normal with representation map
from hipomap.core import HipoClass
hipo = HipoClass(K=50)
# 1. Split data with base(.csv)
trainset, validset, testset = hipo.split("split.csv", dir_normal="<path>/Dataset/Normal/",
dir_cancer="<path>/Dataset/Cancer")
# 2. Train the classifier
hipo_model = hipo.fit(trainset, validset, lr=0.1, epoch=20, batch_size=1)
# 3. Get prediction value
prediction = hipo.predict_with_test(test_X=testset[0])
# 4. Get score (tpr, fpr, auc)
tpr, mean_fpr, auc = hipo.evaluate_score(label=testset[1], prediction=prediction)
Generate Probmap with probability score
# Creating probability score array
from hipomap.scoring import scoring_probmap
scoring_probmap(path_model="./pre_model.h5", path_data="./Dataset/Test/", path_save="./Result/prob_test/")
# Generating Probmap
from hipomap.probmap import generating_probmap
generating_probmap(path_data='./Dataset/Test/', path_prob='./Result/prob_test/', path_save='./Result/probmap')
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.