I’m working with data from several subjects and I’m dealing with 60 Hz power line noise. Looking at the spectra, I’ve noticed that some subjects have have peaks at 120 Hz and 180 Hz, a few show a peak at 240 Hz. My question is: should I apply customized notch filters for each subject, removing only the harmonics that are present, or should I be consistent and filter all harmonics from 60 up to 300 Hz for every subject?
The fact that you don’t see a clear peak at 120/180/240 Hz in some subjects doesn’t necessarily mean there is no contamination there.
I’d recommend being consistent across subjects, but not necessarily removing all harmonics up to 300 Hz by default. Choose a set of harmonics that overlaps with the frequency range you plan to analyze (e.g., 60 and 120 for standard <80 Hz EEG, or 60–300 Hz in steps of 60 if you analyze high-gamma, HFO, …), and apply that same filter configuration to all subjects.
I plan to inspect the six canonical frequency bands, so I’m thinking of removing harmonics up to 300 Hz. I'm also quite concerned about using an overly aggressive approach. However the stop band option is quite strong, and sinusoid removal is not recommended for continuous recordings. Do you recommend using Brainstorm’s notch filter or would it be better to export the data, apply a less aggressive method such as Zapline-plus, and re-import the cleaned files?
Brainstorm team has invested substantial effort over the past two decades to develop robust and well-validated filtering pipelines specifically optimized for EEG/MEG. I strongly recommend relying on the built-in Brainstorm filtering tools, which have been extensively tested across a wide range of datasets and users. Previous studies have already performed systematic comparisons of different filtering approaches.
You can also consult the documentation and compare with other community tools such us Fieldtrip/EEGLAB and MNE.
If you prefer alternative approaches such as Zapline-plus, you can certainly export your data, clean externally and then re-import, but in most cases Brainstorm’s native filters already offer excellent performance with minimal signal distortion. I would start with the built-in filter before considering external tools.