Skip to content

EEG inverse solution with artificial neural networks. This package works with MNE-Python data structures for easy integration into your MNE-based M/EEG code

License

Notifications You must be signed in to change notification settings

LukeTheHecker/esinet

Repository files navigation

esinet: Electric Source Imaging using Artificial Neural Networks (ANNs)

esinet let's you solve the EEG inverse problem using ANNs with the mne-python framework. It currently supports three main architectures:

ConvDip

A convolutional neural network as described in our first paper.

Fully-connected network

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.

Long-short term memory network

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.


esinet

Neural network design was created here



Dependencies:


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

About

EEG inverse solution with artificial neural networks. This package works with MNE-Python data structures for easy integration into your MNE-based M/EEG code

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published