Code for "Generalizable deep learning model for early Alzheimer’s disease detection from structural MRIs"
This repository contains code for a medical paper and a machine learning paper on deep learning for dementia. In the medical paper, we compared the deep learning model with volume/thickness models on external independent cohort from NACC. The volume and thickness data are extracted using the Freesurfer and quality controled by radiologists.
If you would like to access the volume and thickness data as well as the subject and scan ID, please download it from the /Data folder.
Contact: Sheng Liu In this project, we focus on how to design CNN for Alzheimer's detection. we provide evidence that Compare with the volume/thickness model, the deep-learning model is Together, these insights yield an increment of approximately 14% in test accuracy over existing models.
This repository is licensed under the terms of the GNU AGPLv3 license. Data Preprocessing with Clinica: For val and test refer: and Here are some examples of scans for each categories in our test dataset:
Train the network ADNI dataset: You can create your own config files and add a --config flag to indicate the name of your config files. We provide the evaluation code in Model_eval.ipynb, where you can load and evaluate our trained model. The trained best model (with widening factor 8 and adding age) can be found here. Table 1: Classifcation performance in ADNI held-out set and an external validation set. Area under ROC
curve for classifcation performance based on the learning model vs the ROI-volume/thickness model,
for ADNI held-out set and NACC external validation set. Deep learning model outperforms ROI-volume/
thickness-based model in all classes. Please refer paper for more details.
Table 2: Classifcation performance in ADNI held-out with different neural network architectures. Please refer paper for more details.Introduction
Prerequisites
License
Download ADNI data
PROJECTS
and ADNI
. To download the imaging data, click on Download
and choose Image collections
. In the Advanced search
tab, untick ADNI 3
and tick MRI
to download all the MR images.Advanced search results
tab, click Select All
and Add To Collection
. Finally, in the Data Collection
tab, select the collection you just created, tick All
and click on Advanced download
. We advise you to group files as 10 zip files. To download the clinical data, click on Download
and choose Study Data
. Select all the csv files which are present in ALL
by ticking Select ALL
tabular data and click Download.Data Preprocessing
run_convert.sh
run_adni_preprocess.sh
run_adni_preprocess_val.sh
run_adni_preprocess_test.sh
Examples in the preprocessed dataset
Neural Network Training
python main.py
Model Evaluation
Results
Dataset
ADNI held-out
ADNI held-out
NACC external validation
NACC external validation
Model
Deep Learning model
Volume/thickness model
Deep Learning model
Volume/thickness model
Cognitively Normal
87.59
84.45
85.12
80.77
Mild Cognitive Impairment
62.59
56.95
62.45
57.88
Alzheimer’s Disease Dementia
89.21
85.57
89.21
81.03
Method
Acc.
Balanced Acc.
Micro-AUC
Macro-AUC
ResNet-18 3D
52.4%
53.1%
-
-
AlexNet 3D
57.2%
56.2%
75.1%
74.2%
X 1
56.4%
54.8%
74.2%
75.6%
X 2
58.4%
57.8%
77.2%
76.6%
X 4
63.2%
63.3%
80.5%
77.0%
X 8
66.9%
67.9%
82.0%
78.5%
X 8 + age
68.2%
70.0%
82.0%
80.0%
References
@article{liu2022generalizable,
title={Generalizable deep learning model for early Alzheimer’s disease detection from structural MRIs},
author={Liu, Sheng and Masurkar, Arjun V and Rusinek, Henry and Chen, Jingyun and Zhang, Ben and Zhu, Weicheng and Fernandez-Granda, Carlos and Razavian, Narges},
journal={Scientific Reports},
volume={12},
number={1},
pages={1--12},
year={2022},
publisher={Nature Publishing Group}
}
@inproceedings{liu2020design,
title={On the design of convolutional neural networks for automatic detection of Alzheimer’s disease},
author={Liu, Sheng and Yadav, Chhavi and Fernandez-Granda, Carlos and Razavian, Narges},
booktitle={Machine Learning for Health Workshop},
pages={184--201},
year={2020},
organization={PMLR}
}