This repository contains code to optimise a multimodal connectome for modelling pathology propagation in neurodegenerative disease, with the network diffusion model (Raj et al, 2012). More information can be found in the corresponding manuscript: "Combining multimodal connectivity information improves modelling of pathology spread in Alzheimer's Disease".
# Use conda to install the relevant packages:
conda env create --name multimodal_ndm --file environment.yml
conda activate multimodal_ndm
# pip install the source files
pip install -e .
We used multimodal brain connectivity data from the MICA-MICS dataset: https://doi.org/10.1101/2021.08.04.454795
Group averaged connectomes, parcellated with the Desikan-Killiany atlas, are stored in data/connectomes
. The parcels have been reordered to match the order in data/TauRegionList.csv
. Please cite the MICA-MICS paper if you use these data.
In our manuscript, we compare the model predictions with pathology data: tau-PET SUVRs and cortical atrophy derived from structural MRI, from the ADNI and A4 datasets. These data can be obtained upon sending a request that includes the proposed analysis and the named lead investigator, at http://adni.loni.usc.edu/data-samples/access-data/ and https://ida.loni.usc.edu/home/projectPage.jsp?project=A4, respectively.
All the data used in the analysis was parcellated with the Desikan-Killiany atlas. We have included a dummy dataset (data/dummmy_pathology.csv
) for testing. When using your own pathology data, make sure that the parcels follow the correct order, as given in data/TauRegionList.csv
.
To run the network diffusion model with a single connectome as the substrate, you can run scripts/run_ndm.py
. The script lets you specify a threshold for the connectome, and runs the network diffusion model 42 times, for each bilateral seed region in the Desikan-Killiany atlas. Results are saved in results/single_modality/{data_name}/{conn_type}_thr{thr}_av_r.csv
.
usage: run_ndm.py [-h] conn_type conn_path thr data_path data_name
positional arguments:
conn_type type of connectome
conn_path path to the connectome, saved as a comma delimited csv file
thr threshold for the connectome - proportion of strongest weights retained [0-1]
data_path path to the target data (tau SUVRs, atrophy etc.)
data_name name of your target data, eg.tau
optional arguments:
-h, --help show this help message and exit
For example, to evaluate the performance of the model for modelling your tau data with a connectome from tractography as a substrate, you would run:
python run_ndm.py tractography ../data/connectomes/tractography.csv 0.1 ../data/dummy_pathology.csv tau
For optimising a multi-modal connectome for the modelling of a particular pathology type, use scripts/run_optimisation.py
:
usage: run_optimisation.py [-h] [-n_iter N_ITER] [-n_starts N_STARTS] [-seed SEED] data_name data_path [conn_names ...]
positional arguments:
data_name name for the data, eg. tau, atrophy
data_path path to the csv where the data is saved
conn_names select the connectomes you want to include in the combined connectome, options = {tractography, geodesic,
functional, morphological, microstructural}
optional arguments:
-h, --help show this help message and exit
-n_iter N_ITER number of iterations for the GP minimiser (default=500)
-n_starts N_STARTS number of random initialisations for the GP minimiser (default=300)
-seed SEED seed region to initialise the network diffusion model (default = Inferiortemporal)
Example usage:
python run_optimisation.py atrophy ../data/dummy_pathology.csv tractography functional morphological -seed Entorhinal
There must be a .txt file present in data
specifying the threshold values to use for each connectome. Examples are already provided with the optimal thresholds for the tau and atrophy datasets used in the paper, as well as for the dummy dataset (ie. data/dummy_thresholds.txt
).
Seed regions are bilateral and currently limited to those in the Desikan-Killiany atlas. Region names must be formated as in the first column of data/TauRegionList.csv
, without the _L
or _R
subscript (eg. Paracentral
, Fusiform
).
Results of the analysis are saved as a pickle file in results/optimisations/{data_name}/{seed}
Citation: E. Thompson, A. Schroder, T. He, C. Shand, S. Soskic, N.P. Oxtoby, F. Barkhof, D.C. Alexander, "Combining multimodal connectivity information improves modelling of pathology spread in Alzheimer's Disease", Imaging Neuroscience (2024)