This subjects ICA components have left me with an uneasy feeling

MNE 1.3.0
MacOS BigSur 11.6.7

Have you ever seen something so freaky? It’s like this subject’s brain activity is sending a message from another dimension. Here’s my code & data:

import mne
from mne.preprocessing import ICA
raw = mne.io.read_raw_eeglab('data/participant/sub-03_task-rsvp_continuous.set', preload=True,
                             montage_units="dm")
raw.set_montage("standard_1005")
raw.filter(0.01, 100.0, method='iir', n_jobs=-1)
filt_raw = raw.copy().filter(l_freq=1., h_freq=None)
ica = ICA(n_components=63, max_iter='auto', random_state=97)
ica.fit(filt_raw)
ica.plot_components()

Data from a freely available source:
https://openneuro.org/datasets/ds003825/versions/1.2.0
This is subject 3 in derivatives/eeglab.

1 Like

:smile: This looks scary indeed! I’d start with verifying that the raw data looks sane and doesn’t contain huge artifacts. I sometimes get such components when there is an extremely large spike or other weird stuff somewhere in the data. I also wonder why you have Cz in your topoplots when this is supposed to be the reference channel (according to the docs).

1 Like

Wow nice ones ahah
I would add that you could remove the reference from the inst used to fit the data, if it is flat. i.e. keep it if you referenced the data e.g. to a common average. And secondly, you could set n_components=None, you might be fitting too many components.

Mathieu

1 Like

Thanks! Yeah I tried with a small, random sub sample of the raw data and they then look completely different. I find that the raw.plot() is quite slow and sometimes crashes though, which means I can’t really scroll through the entire raw to look for components, do you maybe have any tips for finding particularly bad chunks of raw data?

Great thanks, the data was referenced to an average reference. I cut off the first and last 500 seconds from the raw and this gets rid of the disturbing plots, so now I can finally sleep at night :smiling_face:

2 Likes