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 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
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
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
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.