Solves the M/EEG inverse problem using artificial neural networks with Python 3 and the MNE library.
Project description
esinet: Electric source imaging using artificial neural networks (ANNs)
esinet let's you solve the EEG inverse problem using ANNs. It currently supports two main architectures:
Model 1
A fully connected neural network which is trained on single time instances of M/EEG data. This model was described in our paper.
Model 2
A temporal long-short-term memory (LSTM) model which is trained on sequences of EEG data. A similar model only with different output specifications has been presented in a work bei Cui et al., 2019.
Neural network design was created here
Dependencies:
- Python >= 3.8.3
- mne
- Follow the installation guide
- Tensorflow>=2.4.1
- Follow the installation guide
- Colorednoise
- joblib
- pyvista>=0.24
- pyvistaqt>=0.2.0
- tqdm
- dill
- sklearn
Installation from PyPi
Use pip to install esinet and all its dependencies from PyPi:
pip install esinet
Quick start
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()
First steps
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
Feedback
Please leave your feedback and bug reports at lukas_hecker@web.de.
Literature
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.
Troubleshooting
- Having problems with the installation? Check the package requirements
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.