GSoC 2022 Project Idea 7.2: Mobile EEG Cognitive Neuroscience Experiments with the EEG-Notebooks Python Library (175/350 h)

Lead Mentor: Dr. John Griffiths @John_Griffiths (CAMH, University of Toronto)

Co-Mentor: Dr. Davide Momi (CAMH)

Commitment Level: 350 OR 150 Hours

Skill Level: Intermediate / Beginner

EEG-Notebooks is an open-source, Python-based library developed by the NeuroTechX community for running cognitive neuroscience experiments with low-cost mobile EEG devices. By combining standardized and established research protocols with the simple-to-use structure of the library, EEG-Notebooks intends to bring high standards implemented in research practice to a larger audience, especially outside of academia. The applications of EEG Notebooks range from research, medicine, outreach, and education. By developing this toolkit, we aim to make cognitive neuroscience and neurotechnology more accessible, affordable, and scalable.

EEG-Notebooks is built around the standard Scientific Python and Neuroimaging-in-Python software stack (numpy, scipy, pandas, scikit-learn, MNE), and uses Psychopy for stimulus delivery and programming of experimental paradigms. This GSoC project will focus on extending the experiment repertoire of eeg-notebooks, by porting the high-quality research paradigm implementations (face perception, auditory oddball, visual search, word pair judgment, flanker task) from the ERP-core platform. Additionally, the project will also develop novel statistical data analysis and machine learning analyses of various datasets shipped with the library. The library is also designed to be intuitively implementable without extensive knowledge and experience in psychology and neuroimaging research.

Candidates should have experience with Python, data analysis, and EEG and/or behavioural/psychological experiments. Access to EEG hardware is not essential. The project will provide excellent experience and training for students interested in pursuing research in human neuroimaging, cognitive and clinical neuroscience, and brain-computer interfaces.

Tech keywords: Python, EEG, BCIs, Neurotechnology, Data Analysis, Machine Learning, Cognitive Neuroscience


I don’t know If I am supposed to write this here, but I have interest in this project. Thanks.

can you guide me what should I do next I am interested


I am very interested in participating in GSoC with this project.
I wanted to know if you would accept people who are not currently students (I graduated in 2020 and have left my job so I have been working independently for a few months).

I have had various jobs and research internships where I worked on using ML to solve different types of problem statements, so I am very interested in interdisciplinary research. Also, although I have developed a curiosity for computational neuroscience, I don’t have any past experience in neuroscience.

Let me know what steps I need to follow to start with this. Cheers!

Hi @John_Griffiths, I am interested in contributing to this project, what steps do I need to follow to get started? I am fluent in Python, and have worked on projects in Data Analysis and Machine Learning.

Hello all.

Thanks for expressing your interest here.

A few of you have asked how to proceed with applications for this opportunity.

So, here is some info on that:

Next steps for potential applicants:

  • First check that you are eligible according to the stated guidelines. Note that this includes that you should be new or beginners to open source.

  • Take a good look at the material on the eeg-notebooks website about the project, as well as the code base. The Lecture I gave at Brainhack Toronto should also be helpful here.

  • After this background research you should come back here with questions and/or ideas for how to tackle the project described in outline above.

  • You will need to develop a compelling proposal as part of your submission, demonstrating a good understanding of the task at hand and the relevant requirements. You should use this forum to bounce ideas off me to make sure that your proposal is going in the right direction.

Hope that’s helpful. Good luck everyone!



Hi @John_Griffiths,

I’m Oyindamola(Oyin) Olatunji, a computer science undergraduate at Obafemi Awolowo University. I’m new to computational neuroscience however I find it interesting. I am also new to open source. I am very interested in contributing to this project, it is a good way to learn and improve libraries in the neuroscience ecosystem. To satisfy my curiosity, my proposed final year project is to classify Autism spectrum disorder using fMRI data and machine learning. I am considering doing a master’s degree in computational science in the future.

I have experience with using Python for data analysis and web development with flask. Currently, I’m learning to use Nilearn and Nibabel to analyse fMRI data.

The talk on EEG- notebooks was an interesting one. It’s intriguing to be able to run experiments from your home. The documentation was clear enough to understand, especially for someone like me with little or no background in psychology.

Here is my understanding of the project:

  1. To populate the list of experiments in EEG-notebooks with selected implementations from the ERP-Core using Psychopy. So far we only have 3 experiments.
    Can you give an overview of how to port the datasets? Am I to download datasets from ERP-Core to my local computer and do preprocessing with MNE? In the ERP-Core, which data format is to be imported?

  2. The datasets imported from ERP-Core can be analysed with python data-related libraries like pandas, MNE. Scikit-learn, TensorFlow/PyTorch can be used to build machine learning models for classification.
    If I may ask, what kind of new data analyses are we to do with the datasets? Are there specific functions to be implemented apart from the ones in MNE?

This task also extends to updating and filling the gaps in the documentation (i.e analysing data).

What are the next steps from here?
I look forward to hearing from you.

Hi @malin,
Can you please help tag the co-mentor?

I am yet to hear from @John_Griffiths concerning my questions.

Hi @Oyindamola_Olatunji ,

Thanks for your interest. Please give few days and let John get back on your comment. In the meantime, feel free to further deep dive into the resources that John had shared in earlier comment


Thanks for your reply, Arnab.
I will take a deep dive on the resources.

Hi @John_Griffiths,
My name is Shruti Marathe. I am a graduate student in behavioural neuroscience. I am interested in contributing to the mentioned project. I am an intermediate Python learner and I am a beginner in Machine learning (Sci-kit learn and Pytorch). I know data analysis in Python. As an experimental neuroscience student, I am well aware of behavioural experiments. I have also participated in Neuromatch 2020 (Computational neuroscience ) and Neuromatch 2021 (Deep learning) and completed two 3-weeks long projects in the respective workshop. I would like to discuss with you the possibility of contributing to the project. Thanks.

Hello @malin, @arnab1896
Can you please help tag the co-mentor?

I am yet to hear from @John_Griffiths concerning my questions.

Hi @Oyindamola_Olatunji.

Thanks for your questions and interest.

As to your questions:

“Can you give an overview of how to port the datasets?”

Not porting the datasets, porting the experiments. So the idea would be take the experiment running code from ERPcore and rewrite in the Python+Psychopy format as in eg eegnb/experiments/visual_n170/

“If I may ask, what kind of new data analyses are we to do with the datasets? Are there specific functions to be implemented apart from the ones in MNE?”

This is open to suggestions. I think it would be best to look through the functionality in mne and choose some appropriate functions there to apply to the eegnb datasets (for example, evoked/induced power, glms, connectivity, classification). Alternatively one might prefer to start with some sckit-learn and/or nilearn functions.

Next step = write a proposal and go through the steps in the application system. If you would like to share your proposal with me as a gdoc with sufficient time before the deadline I can give a bit of feedback, but not extensive co-writing as obviously I will also be judging the applications and will have several of these to go through.

Hope that’s clear!

Let me know if you have any more Qs.



Hello John,
Thanks for the detailed feedback. I will get back to you soon.

Hi @John_Griffiths,
I’m Emmanuel Olateju, a student at Obafemi Awolowo University studying electronic and electrical engineering. This project appeals to me, and I’d like to contribute. I won’t give you a mark for how well I understand or use Python, but I do use it to build machine learning models, user interfaces for interactive stroke rehabilitation robots, and motor-imagery based brain computer interfaces with OpenBCI hardware.
I’m hoping that my limited knowledge and experience with EEG analysis will be useful. Thanks.

Hi @Emmanuel_Olateju, and welcome! Please be aware that you have a very short time to write a proposal. The deadline is tomorrow April 19 at 1800 UTC.

/Malin, org admin

Noted, thanks.

@malin @John_Griffiths
What Organization am I to submit my proposal to?

I am done with the proposal according to the provided application template, thanks