esinet let's you solve the EEG inverse problem using ANNs with the mne-python framework. It currently supports three main architectures:
A convolutional neural network as described in our first paper.
A fully-connected neural network which is trained on single time instances of M/EEG data. This model was described in our second paper alongside the LSTM.
A Long-short-term memory (LSTM) model which is trained on sequences of EEG data. This model is described in detail and published in our second paper.
Neural network design was created here
- Python
- mne
- Follow the installation guide
- Tensorflow
- Follow the installation guide
- Colorednoise
- joblib
- pyvista>=0.24
- pyvistaqt>=0.2.0
- tqdm
- dill
- sklearn
Use pip to install esinet and all its dependencies from PyPi:
pip install esinet
The following code demonstrates how to use this package:
from esinet import Simulation, Net
from esinet.forward import create_forward_model, get_info
# Create generic Forward Model
info = get_info()
fwd = create_forward_model(info=info, sampling='ico2')
# Simulate M/EEG data
settings = dict(duration_of_trial=0.1)
sim = Simulation(fwd, info, settings=settings)
sim.simulate(n_samples=200)
# Train neural network (LSTM) on the simulated data
net = Net(fwd)
net.fit(sim)
# Plot
stc = net.predict(sim)[0]
sim.source_data[0].plot()
stc.plot()
Check out one of the tutorials to learn how to use the package:
- Tutorial 1: The fastest way to get started with esinet. This tutorial can be used as an entry point. If you want to dig deeper you should have a look at the next tutorials, too!
- Tutorial 2: Use esinet with low-level functions that allow for more control over your parameters with respect to simulations and training of the neural network.
- Tutorial 3: A demonstration of simulation parameters and how they affect the model performance.
- opm_source: Source imaging of optically pumped magnetometer (OPM) data. The tutorial is based on the one provided by mne
Please leave your feedback and bug reports at lukas_hecker@web.de.
Please cite these publications if you are using this code:
Hecker, L., Rupprecht, R., van Elst, L. T., & Kornmeier, J. (2022). Long-Short Term Memory Networks for Electric Source Imaging with Distributed Dipole Models. bioRxiv.
Hecker, L., Rupprecht, R., Tebartz van Elst, L., & Kornmeier, J. (2021). ConvDip: A convolutional neural network for better EEG Source Imaging. Frontiers in Neuroscience, 15, 533.
- Having problems with the installation? Check the package requirements