MNE-BIDS-Pipeline inconsistent ICA plots across ICA reports

Hi All,

I noticed that the “Signals beore and after cleaning” plots for the ICA step in the html reports show different results for the same subject. Specifically, there are 3 different report files generated for each subject: (1) the main report file containing all output for mne-bids-pipeline (suffix: “report”), (2) an ICA specific report file (processing: “ica”, suffix: “report”), and (3) a second ICA specific report file which contains all identified components as well (processing: “ica+components”, suffix: “report”).

See the three plots from these report files for the same subject in the above order:
image
image
image

Also note that the number of trials on which the plots are based is different in the main and ica report (first two images, 2557 trials) vs. in the ica+components report file (last image, 2560 trials).

Maybe I’m missing something, but to me it would only make sense if these would look the same, as they depict the same ICA step.

Could someone please explain this?

Many thanks,
Máté

System info:

Platform             Linux-3.10.0-1160.el7.x86_64-x86_64-with-glibc2.17
Python               3.11.3 | packaged by conda-forge | (main, Apr  6 2023, 08:57:19) [GCC 11.3.0]
Executable           /home/ma09/.conda/envs/my_mne1.4/bin/python
CPU                  x86_64 (32 cores)
Memory               251.4 GB

Core
├☑ mne               1.4.0
├☑ numpy             1.24.3 (OpenBLAS 0.3.23 with 32 threads)
├☑ scipy             1.10.1
├☑ matplotlib        3.7.1 (backend=agg)
├☑ pooch             1.7.0
└☑ jinja2            3.1.2

Numerical (optional)
├☑ sklearn           1.2.2
├☑ numba             0.57.0
├☑ nibabel           5.1.0
├☑ nilearn           0.10.1
├☑ dipy              1.7.0
├☑ openmeeg          2.5.6
├☑ pandas            2.0.2
└☐ unavailable       cupy

Visualization (optional)
├☑ pyvista           0.39.1 (OpenGL unavailable)
├☑ pyvistaqt         0.0.0
├☑ ipyvtklink        0.2.2
├☑ vtk               9.2.6
├☑ qtpy              2.3.1 (None=None)
├☑ pyqtgraph         0.13.3
├☑ mne-qt-browser    0.0.0
└☐ unavailable       ipympl

Ecosystem (optional)
├☑ mne-bids          0.12
├☑ mne-bids-pipeline 1.3.0
└☐ unavailable       mne-nirs, mne-features, mne-connectivity, mne-icalabel

Looking at the plot I suspect it’s a different high pass done on your raw data and on the data passed to ica. Typically you high pass data before running ICA as it assumes zero mean signals and sources.

Alex

Thanks @agramfort, that makes sense. Indeed for the main analysis, my HP cutoff is 0.1 Hz and for the ICA it is 1 Hz. So this explains why the plot int he main report looks different from the others. But this still doesn’t explain why the two ICA specific reports look different? The filtering there is the same and as far as I udnerstand the difference between those two report files is that one shows only the automatically rejected components, while the other shows all components.