This project explores modern deep learning methods for diagnosising cancer. In particular, the goal is to detect the presence of cancer from an H&E staining. My steps are as follows:
- Stain Normalization: Implement an algorithm (Macenko Algorithm) for normalizing H&E stains.
- Nuclear Panoptic Segmentation: Implement a deep learning model (HoVerNet) for identifying and classifying nuclei.
- Cell Graph Construction: Define and create a cell graph.
- Cell Graph Classification: Implement a graph neural network to classify the presence of cancer in graph from (3).
- Explainability: Implement a post-hoc explainability algorithm (GCExplainer) to make the model in (4) more interpretable.
This repository includes a CLI tool. Documentation for using it can be found below. Note you must have the concepts and trained models on the local machine, which are not provided in this repository due to size constraints:
python xcd.py FILE_LOCATION [ARGUMENTS]
ARGUMENT | Description |
---|---|
--explanation_file |
The location for explanations to be saved to. If none is provided, no explanations will be generated |
--hovernet_path |
The location of the trained HoVerNet model |
--cell_encoder_path |
The location of the trained ResNet50 encoder model |
--gnn_path |
The location of the trained GNN model |
--concept_path |
The location of the concepts folder, containing the exemplary concept representation |