Skip to content

Work did at the end of my internship, based on Nastaran Hamedi et al. Detecting ADHD Based on Brain Functional Connectivity Using Resting-State MEG Signals

Notifications You must be signed in to change notification settings

kchardon/adhd_brain_functional_connectivity

Repository files navigation

ADHD Brain Functional Connectivity with Omega

Introduction

During my internship, I worked on brain age prediction [1, 2] with the Omega dataset [3, 4]. Unfortunately, we didn't obtain good scores for this task with Omega (see my internship report for details here). We wanted to understand why age prediction didn't work: did we apply wrong preprocessing or was the dataset just not adapted for this task?

We thus decided to reproduce some results from other papers using Omega with our preprocessing. To do this, we chose [5] in which the authors use MEG resting-state recordings from Omega to detect ADHD based on Brain Functional Connectivity.

Method

In [5], the authors present a classification between Control subjects and subjects with ADHD. However, in the version of Omega that I used, I didn't have any information on ADHD and the different classes were Control, Parkinson and Chronic Pain. I thus decided to make a classification between Control and Parkinson's using Omega.

To do that, I first wrote a function (in get_data_omega.py) to collect Omega data, compute the coherence (connectivity) and get the class for each subject. At first, I used the function spectral_connectivity_epochs from MNE [8] and MNE-Connectivity [9] but the resulting coherence matrices were not as expressive as the in the paper. I thus wrote a function in compute_coh.py to compute the coherence with the same formula as in [5] :

For each band $\in$ { $\delta, \theta, \alpha, \beta, \gamma$ }, for each pair of sensors $xy$, the coherence is computed as

$$COH^{band}_{xy} = \sum_{f \in band}{\frac{|S_{xy}(f)|^2}{S_{xx}(f)S_{yy}(f)}}$$

with $S_{xy}(f)$ the cross-power spectral density, and $S_{xx}(f)$ and $S_{yy}(f)$ the respective auto-power spectral densities.

With the coherence computed like this, the matrices were still pretty bad. To see if it was a dataset problem, I wanted to test other ones. Some other studies have been made on the same task with MEG datasets [11, 12] but the datasets were not available. We thus decided to test the model on an EEG dataset that we had [10]. The code to get the data is available in get_data_ds.py. Furthermore, other studies using EEG datasets for classification between Control subjects and subjects with Parkinson's are available [13, 14], which makes it possible to compare the results found in this second task.

In select_features.py, I use Neighborhood Component Analysis (NCA) for feature selection. I use the package ncafs from [6] that implements NCA feature selection presented in [7] and which is used in [5]. To select the features, I run a leave-one-out and fit the NCA on the training set. I store the 5 selected features at each fold and, at the end, select the features that appear in at least 50% of the folds. If fewer than 5 features are selected at the end, I take the most selected features to have 5 features to use.

I made a function to get the name of the selected features in get_features.py to compare the features with the paper.

Finally, in model_classif.py, I wrote the function to test the three different models : SVM with RBF, KNN with k = 3 and Decision trees with a leave-one-out cross-validation.

Results

References

[1] David Sabbagh et al. Predictive regression modeling with MEG/EEG : from source power to signals and cognitive states. In : NeuroImage 222 (2020), p. 116893. https://doi.org/10.1016/j.neuroimage.2020.116893
[2] Denis A. Engemann et al. A reusable benchmark of brain-age prediction from M/EEG resting-state signals. In : NeuroImage 262 (2022), p. 119521. https://doi.org/10.1016/j.neuroimage.2022.119521.
[3] Guiomar Niso et al. OMEGA : The Open MEG Archive. In : NeuroImage 124 (2016), p. 1182-1187. https://doi.org/10.1016/j.neuroimage.2015.04.028
[4] Open MEG Archive Repository. https://doi.org/10.23686/0015896
[5] Nastaran Hamedi et al. Detecting ADHD Based on Brain Functional Connectivity Using Resting-State MEG Signals. In : Frontiers in Biomedical Technologies 9 (2022), p. 110-118. https://doi.org/10.18502/fbt.v9i2.8850
[6] Pedro Paiva. Neighborhood Component Analysis Feature Selection library. https://pypi.org/project/ncafs/
[7] Wei Yang et al. Neighborhood component feature selection for high-dimensional data. In : JCP 7 (2012), p. 161-168. https://doi.org/10.4304/jcp.7.1.161-168
[8] Alexandre Gramfor et al. MEG and EEG data analysis with MNE-Python. In : Frontiers in Neuroscience 7 (2013), p. 1–13. https://doi.org/doi:10.3389/fnins.2013.00267
[10] Arun Singhet al. Rest eyes open. In : OpenNeuro (2023). https://doi.org/doi:10.18112/openneuro.ds004584.v1.0.0
[11] Amine Khadmaoui et al. MEG Analysis of Neural Interactions in Attention-Deficit/Hyperactivity Disorder. In : Computational Intelligence and Neuroscience (2016), p. 1-10. https://doi.org/10.1155/2016/8450241
[12] Muthuraman Muthuraman et al. Multimodal alterations of directed connectivity profiles in patients with attention-deficit/hyperactivity disorders. In : Scientific Reports 9 (2019), p. 20028. https://doi.org/10.1038/s41598-019-56398-8
[13] Rajamanickam Yuvaraj et al. Inter-hemispheric EEG coherence analysis in Parkinson’s disease: Assessing brain activity during emotion processing. In : J Neural Transm 122 (2015), p. 237–252. https://doi.org/10.1007/s00702-014-1249-4
[14] Mariana Gongora et al. EEG Coherence as a diagnostic tool to measure the initial stages of Parkinson Disease. In : Medical Hypotheses 123 (2018), p. 74-78. https://doi.org/10.1016/j.mehy.2018.12.014

About

Work did at the end of my internship, based on Nastaran Hamedi et al. Detecting ADHD Based on Brain Functional Connectivity Using Resting-State MEG Signals

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published