question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

GSoC idea: Create realistic simulated EEG-based MI-BCI data with MNE-Python

See original GitHub issue

Dear MNE-Community, I’m Catalina Galván, a current PhD student from Argentina. For my analyzes, I’ve been working with my advisor @vpeterson in creating realistic MI-BCI data and I believe it would be interesting for the community to make it an MNE module. In addition, I think this could be a suitable idea for participating in the upcoming GSoC with MNE-Python as my organization. Here’s a draft of the proposed idea, let me know what you think. Thank you!

Motivation Brain-Computer Interface (BCI) methods are commonly studied employing Electroencephalogram (EEG) data recorded in human experiments. Data recordings based upon some BCI paradigms, such as Motor-Imagery (MI), suffer from different sources of variability, which cannot be controlled during the experimental design and setup (subject motivation, fatigue, etc). Due to that fact, when testing hypotheses or newly developed methods, there is always a need to conduct simulations so as to ensure that the model assumptions are being accomplished, and thus, understand the strengths and weaknesses of the method. Although real experiments, and thus real data, will be always ultimately needed for testing and verification of experimental hypotheses, realistic simulation can be useful to construct a solid ground for answering such hypotheses and assumptions. Moreover, in some situations real data is either costly to generate or to access, narrowing the evolution of new or different algorithmic solutions. Furthermore, for such methods that require a large amount of data, as deep learning methods do, realistic simulated EEG-based BCI data can serve as a tool for raw data augmentation.

Goal+ The aim of this project is to facilitate EEG-based MI-BCI data generation employing the mne.simulation module. These data might be used to test different BCI classification methods, and thus, should ensure model assumptions or data augmentation and, ideally, be as similar as possible to real data. In this scope, realistic data based upon different sources of noise, artifacts and changes at the level of the subject will be constructed. The simulated experiment timelines would include different signal components:

  • Task-dependent activity.
  • Noise and artifacts activity.
  • Cognitive effects (fatigue, feedback, attention, learning, etc).

In this context, each signal component is assumed to have three properties: where (dipoles of interest in the cortex), what (waveform), and when (events), which are the inputs for the add_data method of mne.simulation.SourceSimulator class. The idea is to generate suitable where, what, and when inputs for different types of possible MI-BCI scenarios, i.e., simulate “good” and “bad” subjects, simulate subject’s fatigue, simulate the impact on the EEG data due to feedback, and so on. The framework would be designed with the goal that all the parameters of interest could be specified by the user from a single high-level script. Examples of parameters are: BCI paradigm, number and duration of trials/repetitions, addition of noise/artifacts at a given time onset, addition of fatigue/feedback/attention/learning effects at a given time onset.

See https://github.com/mne-tools/mne-python/issues/5058, https://github.com/mne-tools/mne-python/issues/5924, and https://mne.tools/stable/auto_examples/simulation/plot_simulated_raw_data_using_subject_anatomy.html for some ideas.

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:6 (5 by maintainers)

github_iconTop GitHub Comments

1reaction
catalinamagalvancommented, Apr 12, 2021

Thank you @drammock for your comments. After talking to @larsoner and also considering your recommendation, we believe that a good scope for the GSoC project is to bring the well-established in the literature simBCI framework for simulating BCI data from MATLAB to MNE-Python.

Taking into account the above, I’ve been working on my GSoC proposal doc, needed for the application, which is available here. I would very much appreciate if you could look at it and comment on it. Thanks!

0reactions
larsonercommented, Feb 21, 2022

Closing since this was relevant to last year’s GSoC

Read more comments on GitHub >

github_iconTop Results From Across the Web

Generate simulated source data - MNE-Python
simulation.SourceSimulator class to generate source estimates and raw data. It is meant to be a brief introduction and only highlights the simplest use...
Read more >
GSoC 2022 Project Idea 7.2: Mobile EEG Cognitive ...
Candidates should have experience with Python, data analysis, and EEG and/or behavioural/psychological experiments. Access to EEG hardware is ...
Read more >
Pybrain: M/EEG analysis with MNE Python - YouTube
Richard Höchenberger's workshop on MNE Python, recorded 16-17 November, 2020.Workshop materials and notebooks: ...
Read more >
2022 Program Mathesar - Google Summer of Code
Users can either set up a database from scratch or connect to an existing database. They can store, organize, and set up various...
Read more >
Project Ideas - Python GSoC – Home
It is a Python project that aims to make greatly simple anything2vec, allowing everyone ... It has become a common practice among the...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found