What Should EEG Cleaning Improve?

When I tried to write tests for whether EEG got cleaner, several of my metrics rewarded rejecting everything. This is an absolutely classic case of badly defined test metrics. Consider an ERP study and two cleaning policies. One rejects nearly every blink, along with a lot of trials. The other leaves a little ocular activity but keeps more trials. If I only count blinks, the first one wins. If I only count retained trials, the second one wins. Neither one is really better than the other. ...

2026-09-23 · 3 min · Tyler Collins

How Do You Test Whether EEG Got Cleaner?

In April 2025, I opened a very short issue in my PyLossless fork: there should be some sort of metric out there that we can add to the test suite to show the data is “cleaner” after pipeline runs Seemed reasonable and I figured that there would be a publication or something out there answering this. This came up because I was rounding out a test suite. I wanted something that could tell me if the data was “better” in a meaningful way, because I already had one making sure the input was different than the output. ...

2026-08-31 · 4 min · Tyler Collins

From a Throwaway QC Prototype to PyLossless

In March 2025, I had an idea for improving quality control in PyLossless. I wanted to bring back being able to review an EEG recording to select independent components, choose a time window, and immediately compare the raw signal against the result of removing those components. It had been done in the previous version in MATLAB, but I was less familiar with the inner working of PyLossless at the time. I was also a complete novice when it came to things like Qt 5, PyQt, and the mne-qt-browser. ...

2026-08-28 · 5 min · Tyler Collins

PyLossless

In April 2025, I wanted to put PyLossless on the DRAC clusters as an official module. I had at least half a dozen datasets to clean, and I was still managing many projects with separate virtual environments. Reinstalling the same preprocessing package for every dataset made no sense. It turned out that PyLossless was already available as a module. When I asked the internal team to update it, they gave me a list of changes they wanted first, especially if I planned to develop it myself. That request turned into active stewardship of the project and, eventually, co-ownership of its official repository. ...

2026-05-05 · 7 min · Tyler Collins