/JK_GCN_ParkinsonsDiseasePrediction

Graph based deep learning methods for Parkinson’s Disease prediction.

Primary LanguageJupyter Notebook

Jumping Knowledge Network for Disease Prediction

Representation learning on Graphs using Jumping Knowledge (JK) networks published on ICML 2018 (paper_link). In this research work, we tried to explore the concept of JK network on medical non-imaging dataset for parkinsons disease prediction.

The goal of this practical was two fold.

  • Disease prediction (2 class classification)
  • Exploit rich multi-modal data

Parkinson's Disease (PD) and Dataset collection

  • PD is a Long-term degenerative disorder of the central nervous system.
  • Symptom includes shaking, rigidity, slow movement, difficulty with walking etc.

We had used 4 different types of non-imaging data for our prediction task.

Dataset Preprocessing

Dataset

  • PPMI dataset (Parkinson's Progression Markers Initiative)
  • MRI imaging for feature extraction
  • Non-imaging data for affinity graph construction

Feature Extraction

  • Apply Autoencoder, get the bottleneck, flatten for every node/patient
  • LLE for dimensionality reduction
  • Embedding of 324 patients, 300 features for each

Affinity Graph Construction

  • Using screening assessment results. i.e., MOCA & UPDRS test.
  • Phenotype measures, i.e., Age & Gender

How to train the model


  • At first put GCN code library in the Main Branch. Download it from GCN Github.
  • Run the script downloader.py. It will automatically download necessary files in a folder named Dataset, that needed to train the network.
  • Then run the main.py file for staring the training. A folder called Visualization will be created, where you will find accuracy and loss graph plots.
  • Default training will run for 10 folds, each fold having 300 epochs.
  • For changing the fold size or No. of epochs, please refer to the main.py file.