Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

Diagnosing Autism using individual brain regions from rs-fMRIs

One Sentence Summary

  • This repository outlines the construction of a deep linear neural network used to classify patients with autism using regional brain activity from functional MRIs gathered at rest (rs-fMRIs); patient data will be gathered from the ABIDE dataset.

Overview

  • The task was to use several patients’ rs-fMRIs, convert them individually into time series of 48 features using the Harvard-Oxford Cortical Structural Atlas, and train deep linear neural networks for several pertinent regions to produce a regression result; namely, these results would be a probability of whether each individual patient has Autism Spectrum Disorder (ASD).
  • Only the orbitofronal cortex was considered for a small selection of 80 patients from NYU.
  • Summary of the performance achieved: Results from training a model on the OFC time series indicate an accuracy of up to 81%, but through many simulations appear no better than random.

Motivation and Background

Summary of Work Done

Data

  • Source: downloaded through Nilearn, also available through this link via the Neuroimaging Informatics Tools and Resources Clearinghouse (NITRC).
  • Type: NII or NII.GZ files
    • Input: time series for individual brain regions, as outlined in the Preprocessing / Clean-up section
  • Size: ~100 GB, although it is ~100 MB per file
  • Instances: 80 patients through NYU; 64 used for training , 16 for testing
    • Selection size of about 8 GB

Preprocessing / Clean up

  • In order to fully process the data, I had to run it through a masker, which is the name Nilearn gives to its class of objects that can transform raw Nifti objects into Numpy arrays. Then, I stored these 2D Numpy arrays as CSVs so that they could be called later.

Data Visualization

The activity in the orbitofrontal cortex of one patient. The x-axis is the number of each individual time step, and the y-axis represents the unnormalized blood flow in that brain region.

Three cross-sections of one slice of an rs-fMRI. Views for y = -44, x = 0, and z = -2.

Problem Formulation

  • Input: time series gathered from masker, as detailed in preprocessing
  • Models:
    • Running a DNN through sklearn.
  • The metric was accuracy, considering that this is just a binary classification; precision and recall were also to be considered.

Training

  • I used Google Colab to load the data, code the model, and save the model for further use.
  • I trained 1000 simulations of one MLP model.
    • Hidden Layers: (30,15,5,)
    • Solver: Stochastic Gradient Descent
    • Activation: ReLU

Conclusions

  • Results from 1000 simulations of the classifier model showed a normal distribution around 50% accuracy, with a maximum accuracy of 81.25%.
  • Precision and recall each showed similar results, with a maximum of 100% during many runs.
  • The study was limited by a small sample size due to hardware limitations, and any sample size larger than 100 needs at least 32 GB of RAM to run, especially during the smoothing process.
  • The dataset takes up over 100 GB of disk space storage, but using 80 patients took up only 8 GB that was able to be loaded into Google Colab, the working environment in which this study was done.

Future Work

  • Patients in this study were from only one center, and using patients from multiple brain scan centers as provided in the dataset may contribute to a higher accuracy.
  • The utilization of the subcortical atlas could explore regions further embedded in the brain, such as the amygdala, which may contribute to a more successful model.

How to reproduce results

Overview of files in repository

Software Setup

  • One of the prominent packages involved in this project is Nilearn, a package of Python that specailizes in providing statistical methods to analyze brain volumes and scans.
  • These packages may be installed via pip or pip3 in your local Python terminal or within a Jupyter notebook.
    • Running the command !pip install nilearn within your notebook will install these easily within your notebook.

Data

Citations

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages