Transitions between cognitive topographies: contributions of network structure, chemoarchitecture, and diagnostic categories.
Authors: A.I. Luppi, S.P. Singleton, J.Y. Hansen, K.W. Jamison, D. Bzdok, A. Kuceyeski, R.F. Betzel, & B. Misic.
This repository provides code to illustrate the central method in Luppi et al., "Contributions of network structure, chemoarchitecture and diagnostic categories to transitions between cognitive topographies." Nature Biomedical Engineering (2024) (published article).
It was developed in MATLAB 2019a by Andrea Luppi from the the Network Neuroscience Lab at the Montreal Neurological Institute, McGill University.
This code relies on MATLAB code from the Brain Connectivity Toolbox for MATLAB by Rubinov and Sporns (2010) NeuroImage. For additional plotting functionality, also include in your MATLAB path the ENIGMA Toolbox by Lariviere et al. (2021) Nature Methods.
The study investigates how network control energy in the brain depends on the network, but also the start and destination states, and the control strategy. In this code, we change these three elements one at a time.
The main file is neurosynth_control_4GitHub.m This script should work out of the box, if run from the parent directory. However, the user may also customise some parameters provided in the SET PARAMETERS section (see comments in the code for details) To run, ensure you are in the main directory of the repo.
The core innovation from Luppi et al (2024) NatBME is to use start and target states defined as NeuroSynth meta-analytic maps associated with different terms from the cognitive neuroscience literature.
Next we can change the network topology, by using different kinds of rewiring: degree-preserving (Maslov-Sneppen) rewiring, and a more stringent geometry-preserving rewiring that preserves both degree and connection length, to account for spatial embedding in the brain
To use heterogeneous controls, we can add or subtract (or replace) values from the identity matrix, for example according to an empirical map of interest; In this example we use the cortical thickness map.
The data folder contains all the data you need to make this code run:
structural_connectome_DesikanKilliany68.m
- an empirical structural connectome from diffusion tractography (consensus connectome from 100 HCP participants) in the 68-ROI Desikan-Killiany cortical atlasEuclidean_distances_DesikanKilliany68.m
- Euclidean distances between ROIs of the Desikan-Killiany atlasNeuroSynth_maps_and_terms_DesikanKilliany68.m
- meta-analytic maps (in Desikan-Killiany parcellation) pertaining to 123 cognitive terms from NeuroSynth, as well as the terms themselves, and a subset of terms that we use for visualisation purposes in the paper
The utils folder contains support functions:
fcn_optimalControlContinuous.m
- this function (from Shi Gu's GitHub repo, lightly edited by A.Luppi) computes network control energy between a start and target statefcn_match_length_degree_distribution.m
- function from Rick Betzel to generate geometry-preserving nulls, from a network and matrix of Euclidean distancesfcn_randmio_und.m
- this is the Brain Connectivity Toolbox function to generate degree-preserving (Maslov-Sneppen) rewired nullsfcn_quick_mat_plot.m
- plot a matrix as heatmap with optional labels for rows and/or columnsrdbu_sym.m
- makes a colormap with blues for negatives and reds for positives; required the ENIGMA Toolbox to be on the MATLAB path
For questions, please email: [email protected].