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:
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:
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.
@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:
notch filter raw data to get rid of alpha (on a copy of the raw)
make epochs from the filtered raw data (two copies)
run autoreject on epochs on first copy
run ICA data epochs on first copy
apply ICA solution to second copy of epochs
run autoreject again, this time on the second copy of epochs
And now critically, create new epochs from unfiltered raw data, apply ICA solution and autoreject solution to those epochs
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.
@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:
notch filter raw data to get rid of alpha (on a copy of the raw)
make epochs from the filtered raw data (two copies)
run autoreject on epochs on first copy
run ICA data epochs on first copy
apply ICA solution to second copy of epochs
run autoreject again, this time on the second copy of epochs
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!