This repo contains the medical dataset, different Graph Neural Network implementations, the python code, the classification results and the Hyperparameters used for the paper entitled as "Classification of Intestinal Gland Cell-Graphs using Graph Neural Networks" and submitted at the International Conference of Pattern Recognition (ICPR) January 2021.
This repo contains different Graph Neural Network (GNN) implementations for Graph classification. The models are applied on the publicly available pT1 Gland Graph Dataset (GG-pT1).
(In this repo the term "paper" correspond to the 4 node feature set and the term "base" corresponds to the 33 node feature set used for the paper submitted at the ICPR)
The Hyperparameters are found here.
So far, the following models are implemented:
-
GCN: uses the Graph convolution operator introduced by Kipf & Welling 2016.
- GCNWithJK: uses the JumpingKnowledge layer aggregation module introduced by Xu et al. 2018
-
GraphSAGE: uses the GraphSAGE operator with mean-aggregator introduced by Hamilton et al. 2017
- GraphSAGEWithJK: uses the JumpingKnowledge layer aggregation module introduced by Xu et al.
-
GAT: uses a attention-based message passing layer intorduced by Velickovic et al. 2017. In this repo it is called GATNet.
-
enn: Edge Network from Gilmer et al. 2017. It uses edge features to update the hidden representation of nodes. In this repo it is called NMP.
-
GIN: Graph Isomorphism Network from Xu et al. 2018 with epsilon=0.
-
1-GNN: one of the Graph Neural Network baselines used in Morris et al. 2019. In this repo it is called GraphNN.
This repo contains the intestinal gland segmentation dataset from pT1 cancer patients. It includes:
-
Dataset: From each image there are 26 images of cropped glands (13 normal, 13 dysplastic).
- image_labels.csv: Classification label for each graph and image (normal or dysplastic)
- There is a folder for each image. In this folder there is a folder for each crop containing:
- Cropped out gland image (*-image.jpg)
- Annotation mask (*-gt.png)
- Excel file with the features (*-features.xlsx)
-
Text files:
- dataset_split.csv: reference, validation and test set split for all 4 cross-validations
- feature_overview.csv: list of all possible node features (with enumeration, mean and std)
- ged-costs.csv: parameters for the different experiments
-
Graphs:
- Base dataset: cell segmentation with features (just nodes)
- Paper graphs:
- Baseline
- Optimized graph
To use this repository you can create a virtual environment from the requirement.yml file:
conda env create -f requirements.yml
To remove the conda environment run the following code:
# first deactivate the conda environment that you want to remove
conda deactivate
# remove the GNNEnv environment
conda env remove -n GNNEnv