Skip to content

pablomc88/EEG_proxy_from_network_point_neurons

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

The electroencephalogram (EEG) is one of the main tools for non-invasively studying brain function and dysfunction. To better interpret EEGs in terms of neural mechanisms, it is important to compare experimentally recorded EEGs with the output of neural network models. Most current neural network models use networks of simple point neurons. They capture important properties of cortical dynamics, and are numerically or analytically tractable. However, point neuron networks cannot directly generate an EEG, since EEGs are generated by spatially separated transmembrane currents. Here, we explored how to compute an accurate approximation of the EEG with a combination of quantities defined in point-neuron network models. We constructed several different candidate approximations (or proxies) of the EEG that can be computed from networks of leaky integrate-and-fire (LIF) point neurons, such as firing rates, membrane potentials, and specific combinations of synaptic currents. We then evaluated how well each proxy reconstructed a realistic ground-truth EEG obtained when the synaptic input currents of the LIF network were fed into a three-dimensional (3D) network model of multi-compartmental neurons with realistic cell morphologies.

The corresponding publication of this work is: Martínez-Cañada P, Ness TV, Einevoll GT, Fellin T, Panzeri S (2021) Computation of the electroencephalogram (EEG) from network models of point neurons. PLOS Computational Biology 17(4): e1008893. https://doi.org/10.1371/journal.pcbi.1008893

Instructions to simulate the LIF model network

Building the neuron model

Instructions to compile the neuron model in NEST are based on the tutorial about “Writing an extension module” (https://nest.github.io/nest-simulator/extension_modules).

1 - Define the environment variable 'NEST_INSTALL_DIR' to contain the path to which you have installed NEST, e.g. using bash:

export NEST_INSTALL_DIR=/Users/pablo/NEST/ins

2 - Create a build directory in the folder 'neuron_model':

cd neuron_model mkdir build cd build

3 - The configure process uses the script 'nest-config' to find out where NEST is installed, where the source code resides, and which compiler options were used for compiling NEST. If 'nest-config' is not in your path, you need to provided it explicitly like this (don't forget to add '..' at the end):

cmake -Dwith-nest=${NEST_INSTALL_DIR}/bin/nest-config ..

4 - Compile:

make

make install

It might be also necessary to update the LD_LIBRARY_PATH, e.g.:

export LD_LIBRARY_PATH=${NEST_INSTALL_DIR}/lib/python2.7/site-packages/nest:$LD_LIBRARY_PATH

Running a simulation

Simulation scripts are in folder 'LIF_network/analysis'. Adjust the simulation parameters in the script and execute it using the Python interpreter, e.g.:

python3 save_results_1.py

Instructions to simulate the multicompartment model network

Simulation scripts are in folder 'multicompartment_network/analysis'. Adjust the simulation parameters in the script and execute it using the Python interpreter, e.g.:

python3 simulation_1.py

or launch different MPI jobs to execute it much faster:

mpirun -np 8 python3 simulation_1.py

Comparison between EEGs and proxies

In the folder 'compare_EEG_proxies', execute the script 'compute_R2.py' to compute the average coefficient of determination (R^2) between EEGs and proxies on simulation results.