Deep Markov Factor Analysis (DMFA)
Codes and experiments for deep Markov factor analysis (DMFA) model accepted for publication at NeurIPS2021:
A. Farnoosh and S. Ostadabbas, “Deep Markov Factor Analysis: Towards concurrent temporal and spatial analysis of fMRI data,” in Thirty-fifth Annual Conference on Neural Information Processing Systems (NeurIPS), 2021.
Dependencies:
Numpy, Scipy, Pytorch, Nibabel, Tqdm, Matplotlib, Sklearn, Json, Pandas
Autism Dataset:
Run the following snippet to restore results from pre-trained checkpoints for Autism dataset in ./fMRI_results folder. A few instances from each dataset are included to help the code run without errors. You may replace {site} with Caltec, Leuven, MaxMun, NYU_00, SBL_00, Stanfo, Yale_0, USM_00, DSU_0, UM_1_0, or set -exp autism for the full dataset. Here, checkpoint files for Caltec, SBL_00, Stanfo are only included due to storage limitations.
python dmfa_fMRI.py -t 75 -exp autism_{site} -dir ./data_autism/ -smod ./ckpt_fMRI/ -dpath ./fMRI_results/ -restore
or run the following snippet for training with batch size of 10 (full dataset needs to be downloaded and preprocessed/formatted beforehand):
python dmfa_fMRI.py -t 75 -exp autism_{site} -dir ./data_autism/ -smod ./ckpt_fMRI/ -dpath ./fMRI_results/ -bs 10
After downloading the full Autism dataset, run the following snippet to preprocess/format data:
python generate_fMRI_patches.py -T 75 -dir ./path_to_data/ -ext /*.gz -spath ./data_autism/
Depression Dataset:
Run the following snippet to restore results from pre-trained checkpoints for Depression dataset in ./fMRI_results folder. A few instances from the dataset are included to help the code run without errors. You may replace {ID} with 1, 2, 3, 4. ID 4 corresponds to the first experiment on Depression dataset in the paper. IDs 2, 3 correspond to the second experiment on Depression dataset in the paper.
python dmfa_fMRI.py -exp depression_{ID} -dir ./data_depression/ -smod ./ckpt_fMRI/ -dpath ./fMRI_results/ -restore
or run the following snippet for training with batch size of 10 (full dataset needs to be downloaded and preprocessed/formatted beforehand):
python dmfa_fMRI.py -exp depression_{ID} -dir ./data_depression/ -smod ./ckpt_fMRI/ -dpath ./fMRI_results/ -bs 10
After downloading the full Depression dataset, run the following snippet to preprocess/format data:
python generate_fMRI_patches_depression.py -T 6 -dir ./path_to_data/ -spath ./data_depression/
Synthetic fMRI data:
Run the following snippet to restore results from the pre-trained checkpoint for the synthetic experiment in ./synthetic_results folder (synthetic fMRI data is not included due to storage limitations).
python dmfa_synthetic.py