Skip to content

Prediction of Alzheimer Disease (AD) with MRI data. Skoltech ML course 2020 project

Notifications You must be signed in to change notification settings

izakharkin/mri-alzheimer

Repository files navigation

3D Convolutional Neural Networks for MRI Brain Classification

The code was written by Natasha Basimova, Nikita Mokrov, Ilya Selnitskiy and Ilya Zakharkin.

Prerequisites

  • Linux or macOS
  • Python 3
  • CPU or NVIDIA GPU + CUDA

Getting Started

Get Access and Download data:

We tested the performance of the proposed networks on the data from Alzheimer’s Disease Neuroimaging Initiative (ADNI) project that provides a dataset of structural MRI scans. For dowload data you need to get access. Then go to dataset. Filter all data with this parameters:

  • Weighting: 1T
  • Acquision Type: 3D
  • Filed Strength: 3 Tesla
  • Slice Thickness: 1mm

We use this dataset to test our models’ performance for a task of classifying MRI scans of subjects with Alzheimers disease (AD), early and late mild cognitive impairment (EMCI and LMCI), and normal cohort (CN).

Installation

  • Clone this repo:
git clone https://github.com/izaharkin/mri-alzheimer
cd mri-alzheimer
  • Install python 3.6 and all necessary requirements:
    • For pip users, please type the command pip install -r requirements.txt.
    • Also you should install fsl-lib for skull cutting

Train/test models

  • For getting good perfomance of model, prepocess data by cutting skull and run:
python3 brainiac/data_preprocessing/brain_extraction.py

And also you should run two notebooks: Data Processing and Process Cut Data.

  • Train classification model:
#!./scripts/train_cyclegan.sh
python3 train.py --model ResNet152
  • All logs and the pretrained model are saved at unique folder./trained_model/{model}/{other parameters} as log{number}.log and model_epoch{number}.log. To view training results and loss plots, run notebook LogParser

  • For getting all changeble parameters run:

python3 train.py --help

For example:

  • Standart train parameters: --num_epoch 200 --batch_size 4 --optimizer Adam --lr 3e-5 --weight_decay 1e-3
  • Use augmntation (random rotation and noise): --use_augmentation True
  • Use sampling (oversampling and undersampling): --use_sampling True --sampling_type over
  • Apply a pre-trained model: --use_pretrain True --path_pretrain PATH

Visualization

For visualization we use popular methond GradCAM with implementation. You can find it in notebook Visualisation GradCAM

About

Prediction of Alzheimer Disease (AD) with MRI data. Skoltech ML course 2020 project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published