Skip to content

Predict schizophrenia from brain grey matter with Voxel-based morphometry

Notifications You must be signed in to change notification settings

kenza-ily/brain_mri_schizophrenia

Repository files navigation

Predict schizophrenia from brain grey matter (binary classification)

This challenge was proposed by Université Paris-Saclay. This repository encompasses my proposals to the RAMP challenge This project is held in the context of the This project is held in the context of the UCL 2024 Applied Artificial Intelligence challenge (COMP0189).

Predict schizophrenia from brain grey matter (GM). schizophrenia is associated with diffuse and complex pattern of brain atrophy. We will try to learn a predictor of the clinical status (patient with schizophrenia vs. healthy control) using GM measurements on the brain participants.

Dataset

There are 410 samples in the training set and 103 samples in the test set.

Input data

Voxel-based_morphometry VBM using cat12 software which provides:

  • Regions Of Interest (rois) of Grey Matter (GM) scaled for the Total Intracranial Volume (TIV): [train|test]_rois.csv 284 features.

  • VBM GM 3D maps or images (vbm3d) of voxels in the MNI space: [train|test]_vbm.npz contains 3D images of shapes (121, 145, 121). This npz contains the 3D mask and the affine transformation to MNI referential. Masking the brain provide flat 331 695 input features (voxels) for each participant.

By default problem.get_[train|test]_data() return the concatenation of 284 ROIs of Grey Matter (GM) features with 331 695 features (voxels) within a brain mask. Those two blocks are higly redundant. To select only on ROIs (rois) features do:

X[:, :284]

To select only on (vbm) (voxel with the brain) features do:

X[:, 284:]

Target

The target can be found in [test|train]_participants.csv files, selecting the age column for regression problem.

Evaluation metrics

sklearn metrics

The main Evaluation metrics is the Root-mean-square deviation ROC-AUC, the Area Under Curve of eceiver operating characteristic curve, or ROC curve

Links

Installation

This starting kit requires Python and the following dependencies:

  • numpy
  • scipy
  • pandas
  • scikit-learn
  • matplolib
  • seaborn
  • jupyter
  • ramp-workflow

Therefore, we advise you to install Anaconda distribution which include almost all dependencies.

Only nilearn and ramp-workflow are not included by default in the Anaconda distribution. They will be installed from the execution of the notebook.

To run a submission and the notebook you will need the dependencies listed in requirements.txt. You can install the dependencies with the following command-line:

pip install -U -r requirements.txt

If you are using conda, we provide an environment.yml file for similar usage.

conda env create -f environment.yml

Then, you can activate the environment using:

conda activate brain_anatomy_schizophrenia

Install optional packages, e.g.: spyder

conda install spyder

And desactivate using

conda deactivate

Getting started

  1. download the data locally:
python download_data.py
  1. Execute the jupyter notebook, from the root directory using:
jupyter notebook brain_anatomy_schizophrenia_starting_kit.ipynb

Tune your model using the starting_kit

  1. Submission (Run locally)

The submissions need to be located in the submissions folder. For instance for starting_kit, it should be located in submissions/submissions/starting_kit.

Copy everything required to build your estimator in a submission file: submissions/submissions/starting_kit/estimator.py. This file must contain a function get_estimator().

Run locally:

ramp-test --submission starting_kit
  1. Submission on RAMP:

Using RAMP starting-kits

About

Predict schizophrenia from brain grey matter with Voxel-based morphometry

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published