Quality Analysis for EEG (container?)

Hey Neurostars!

This is my first time using the new interface (I know, I’m late / slow, better that than never!) and it is beautifully redone. Kudos to the developers!

I recently pinged Poldracklab to ask about a BIDS-app, and also want to open up discussion here for my question.

I’m interested about what are best practices for EEG QA. Many of our labs at Stanford still use Matlab (it’s great with signal processing but crappy in all other respects because of licensing, inability to shove it in a container, etc and so my thinking is that some container-based pytho solution for EEG QA would be fairly useful for the neuroimaging community. I know that MNE Python is a nipy tool for EEG processing, and there could be some libraries in nilearn / similar, but has anyone made an equivalent bids-app sort of deal to put it into a nice package for the larger community? I am writing here to start discussion around bids-ification (or what others think is best) for this sort of tool. I want to be able to direct users to it that need to run a container on our cluster and do this function, who probably are using Matlab.

In addition to MNE, I also saw this on Frontiers --> https://www.frontiersin.org/articles/10.3389/fninf.2018.00030/full

Thanks in advance for the advice / help!


1 Like

Hi Vanessa,

Yeah I think a lot of labs continue to use MATLAB because toolboxes like EEGLAB and FieldTrip among others have implementations of what you might call best practices for QC/QA.

SCADS: https://www.ncbi.nlm.nih.gov/pubmed/10934911
FASTER: https://www.ncbi.nlm.nih.gov/pubmed/20654646

I am leaving out the ICA based methods which there are plenty (EEGLAB did start as the ICA toolbox:) because component identification is a generic problem with plenty of good examples from FMRI (such as FIX). You can use MELODIC to do ICA processing of EEG if you want Christian’s Probabilistic ICA but you would still need something like ADJUST for component identification.

ADJUST: https://www.ncbi.nlm.nih.gov/pubmed/20636297

Looks like there might be a containerable version of SCADS here:


Hope this helps. Happy to follow up later.



1 Like

There is also the PREP (Preprocessing Pipeline … rather minimal and for EEG): https://www.frontiersin.org/articles/10.3389/fninf.2015.00016/full

which I have recently started to translate into Python: https://github.com/sappelhoff/pyprep

1 Like

I think indeed that the autoreject implemented in MNE is what goes closer to the purpose.

Hopefully we can discuss this at OHBM, where Robert Oostenveld (matlab user) will be present too.


I will leave a few links here:

for recommendations on QA for EEG/MEG.

mne report: https://martinos.org/mne/stable/tutorials/report.html for shareable web reports.

autoreject: http://autoreject.github.io/ for annotating bad segments in your data


1 Like

hey @mhough @Daniele_Marinazzo (and note to others I can’t mention more than 2 users because I’m a new user) thank you for the speedy feedback! The user that I was helping hasn’t responded to me or on any board, so what I’ll do is relay the information he provided here:

  • Matlab was using SPM8
  • the user mentioned “a couple modifications like taking orthogonalization out of the model estimation”
  • for EEG, the automatedrejection toolbox (http://germangh.github.io/aar/aardoc/aar.html), the wavelet transform toolbox, and a “couple others” were used.

The issue was seeing differences between matlab 2014a and 2014b, and for this reason I suggested container + python.

Since a container solution with Python would be ideal (maybe a bids app?) and I haven’t heard from the user (and don’t have data to develop with) I would still like to offer to help with this, if others (here or in the future reading this post) see the need, would value it, and can point me to testing data / library tutorials. If there is no urgent need / dummy example, then no worries! Either way, thank you everyone again for all this great feedback!

It seems like MNE python is a good first shot, maybe with the autoreject module integrated too? Has anyone thought about creating a BIDS app, or is is still not far along developed enough for EEG?

BIDS EEG is quite far along: https://docs.google.com/document/d/1ArMZ9Y_quTKXC-jNXZksnedK2VHHoKP3HCeO5HPcgLE/edit. Not sure how much of it is implemented in MNE Python, but the spec extension will probably be merged in a 2-3 months.