Autoreject Falsely Rejecting High Amplitude Periodic Discharges

Hi everyone! I have been working on a preprocessing pipeline that will be used to remove muscle artifacts. I have been using Autoreject in order to do this.

However, I have run into an issue. The pipeline is falsely rejecting high amplitude periodic activity (which is not considered artifact). I have attempted to change the autoreject parameters to remedy this, but that strategy did not work.

Here is an example of high amplitude periodic activity:

Do you have any ideas for addressing this issue? I am happy to provide further details, and I appreciate your help!

Hi Leah,

Could you provide some more details about what you tried? Did you apply autoreject (local) or autoreject (global)? Autoreject is a bit crude in this sense because it cannot distinguish between true high amplitude artifact signals vs high brain amplitude signals. One suggestion is to filter out your periodic signal and use autoreject to get the annotations of bad segments. You might also find more information or discussion here:

https://github.com/autoreject/autoreject/issues/99

Mainak

1 Like

Hi Mainak,

I believe I applied local autoreject since the thresholds for each channel are calculated. I can look into the resource you provided and attempt to filter out the periodic signal.

Thank you,
Leah

Hi,

@lmctx13, I was wondering whether you got anywhere with this problem, as I face a similar situation where autoreject picks up a lot of alpha activity and rejects decent trials.

@mainakjas, if I go the route of running autoreject on epochs that have the periodic signal filtered out, can I apply the solution to unfiltered data? Specifically, I have following procedure in mind:

  1. notch filter raw data to get rid of alpha (on a copy of the raw)
  2. make epochs from the filtered raw data (two copies)
  3. run autoreject on epochs on first copy
  4. run ICA data epochs on first copy
  5. apply ICA solution to second copy of epochs
  6. run autoreject again, this time on the second copy of epochs
  7. And now critically, create new epochs from unfiltered raw data, apply ICA solution and autoreject solution to those epochs

Would that make sense?

Thanks,
Eduard

Hi Eduard, I ultimately did not use Autoreject due to this issue. I am currently looking into other MNE functions that could be used to reject muscle movements, such as the annotate muscle z-score function and the ICA.find_bads_muscle function.

1 Like

Hi Eduard,

Apologies for the slow response as Iā€™m on vacation.

| eort
October 19 |

  • | - |

Hi,

@lmctx13, I was wondering whether you got anywhere with this problem, as I face a similar situation where autoreject picks up a lot of alpha activity and rejects decent trials.

@mainakjas, if I go the route of running autoreject on epochs that have the periodic signal filtered out, can I apply the solution to unfiltered data?

Absolutely, I think you should fit on filtered data and transform on unfiltered data ā€¦ that is precisely the reason we have a fit-transform API

Specifically, I have following procedure in mind:

  1. notch filter raw data to get rid of alpha (on a copy of the raw)
  2. make epochs from the filtered raw data (two copies)
  3. run autoreject on epochs on first copy
  4. run ICA data epochs on first copy
  5. apply ICA solution to second copy of epochs
  6. run autoreject again, this time on the second copy of epochs
  7. And now critically, create new epochs from unfiltered raw data, apply ICA solution and autoreject solution to those epochs

Would that make sense?

This sounds exactly like how I would have used autoreject for the data you mention. Hope it works for you!

Mainak

3 Likes