mne-tools / mne-tools/mne-python

MNE Epochs notch_filter feature request (re: #12092)

Open
#12,398 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

ENH
Dominant language
Python
Stars
3.5k
Forks
1.6k
Avg merge
1d 6h
Merged PRs (30d)
100

Description

Describe the new feature or enhancement

Currently, notch_filter can be applied to raw objects but does not have the functionality to filter epochs, as brought up previously by user hyphenzhao in request #12092. With the way I set up my pipeline, I epoch the data early on to apply other cleaning steps and am intentionally applying the notch filter at a later step. It would be very useful to be able to apply notch_filter to epoched data, in my case to avoid converting epochs back into a raw object in order to apply the notch filter.

Describe your proposed implementation

User hyphenzhao described this nicely in their post. Briefly, my understanding is that each epoch could be treated as a separate record, and the width of the notch filter could be adjusted partly based on the epoch length.

Describe possible alternatives

The alternative is to reconstruct a raw object from the epoched data by concatenating the epochs into a continuous numpy array, then using mne.io.RawArray to create a new raw object. This is what I am doing now in order to use the notch filter, but I'm worried it may introduce edge artifacts. How would you recommend handling possible edge artifacts introduced by the conversion back into a raw object?

Additional context

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by comparing the existing notch_filter behavior for raw objects with the Epochs API and its filtering operations. Determine how each epoch should be treated, including how epoch length affects filter width and possible edge artifacts. Done means epoched data can use notch_filter directly without conversion to a raw object, with behavior covered for the relevant epoch lengths.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.