The aim of this project is to perform an unsupervised clustering of Dual-Energy Computed Tomography (DECT) scans in order to observe separation of tumor tissues or organ anatomical regions with dedicated cluster regions.
The user can refer to our paper explaining the proposed methods coded in this repository:
"DECT-CLUST: Dual-Energy CT Image Clustering and Application to Head and Neck Squamous Cell Carcinoma Segmentation" available at doi: https://doi.org/10.3390/diagnostics12123072
The codes are written by Faicel Chamroukhi and Ségolène Brivet (segolene.brivet@gmail.com).
Pseudo-codes are also provided in
pseudo-codes.pdf
.
This project is developed in Matlab.
A remote GPU machine was used for heavy computations.
DECT are 4D data: a 3D body volume over a range of X-ray energy levels.
Data are not sharable, so the data folder in this repo is empty and need to be filled on local machines.
The unsupervised clustering algorithm is based on mixtures-of-experts models, we integrate spatial context in mixture weights, and construct mixture component densities upon the spectral energy decay curves as functional observations. A dedicated expectation-maximization (EM) algorithm is written to estimate the joint maximum likelihood of the model parameters.
The clustering algorithm is an extension from Faicel Chamroukhi repository:
Curve clustering with the MixFRHLP model and the EM (or a CEM-like) algorithm
https://github.com/fchamroukhi/mixRHLP_m
(Optional) Sepcific to our data, we pre-process DICOM files in this step.
In dataset_builder
folder, a large section around tumors is cropped from DECT scans, as well as its ground truth segmentation, and the two are saved as .mat files in data_tumor
folder.
In clustering
folder, main.m
script:
- loads a 4D-image file (.mat) and its associated 3D ground truth segmentation (.mat),
- learn image clustering models with different tunable options,
- post-process clustering results and plot visualizations,
build_cluster_separ_indx
script:
- computes metrics to assess the clustering quality,
build_results_tables
script:
- compiles previously computed metrics from different methods,
build_results_analysis
script:
- outputs and plots statistical comparative analysis (e.g. t-test, boxplots)