From c63da99a870c550a4eef1b57a51160b7052a3386 Mon Sep 17 00:00:00 2001 From: Richard Scholz <33288574+scholzri@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:06:06 +0000 Subject: [PATCH] Add `psd_args` to `plot_ica_sources` and `ICA.plot_sources` (#12912) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- doc/changes/devel/12912.newfeature.rst | 1 + mne/preprocessing/ica.py | 2 ++ mne/viz/_figure.py | 1 + mne/viz/ica.py | 10 ++++++++++ mne/viz/tests/test_ica.py | 3 +++ 5 files changed, 17 insertions(+) create mode 100644 doc/changes/devel/12912.newfeature.rst diff --git a/doc/changes/devel/12912.newfeature.rst b/doc/changes/devel/12912.newfeature.rst new file mode 100644 index 00000000000..2a7343ebd2c --- /dev/null +++ b/doc/changes/devel/12912.newfeature.rst @@ -0,0 +1 @@ +Added the ``psd_args`` argument to :func:`mne.viz.plot_ica_sources` and :meth:`mne.preprocessing.ICA.plot_sources`, by `Richard Scholz`_. \ No newline at end of file diff --git a/mne/preprocessing/ica.py b/mne/preprocessing/ica.py index 274f75ed859..a9ba3be7634 100644 --- a/mne/preprocessing/ica.py +++ b/mne/preprocessing/ica.py @@ -2588,6 +2588,7 @@ def plot_sources( precompute=None, use_opengl=None, *, + psd_args=None, theme=None, overview_mode=None, splash=True, @@ -2601,6 +2602,7 @@ def plot_sources( title=title, show=show, block=block, + psd_args=psd_args, show_first_samp=show_first_samp, show_scrollbars=show_scrollbars, time_format=time_format, diff --git a/mne/viz/_figure.py b/mne/viz/_figure.py index ffb1c57dafd..b63d2a395e2 100644 --- a/mne/viz/_figure.py +++ b/mne/viz/_figure.py @@ -534,6 +534,7 @@ def _create_ica_properties_fig(self, idx): self.mne.ica_inst, picks=pick, axes=axes, + psd_args=self.mne.psd_args, precomputed_data=self.mne.data_ica_properties, show=False, ) diff --git a/mne/viz/ica.py b/mne/viz/ica.py index 91bd5c279a5..59895fb52c3 100644 --- a/mne/viz/ica.py +++ b/mne/viz/ica.py @@ -50,6 +50,7 @@ def plot_ica_sources( precompute=None, use_opengl=None, *, + psd_args=None, theme=None, overview_mode=None, splash=True, @@ -91,6 +92,12 @@ def plot_ica_sources( %(time_format)s %(precompute)s %(use_opengl)s + psd_args : dict | None + Dictionary of arguments to pass to :meth:`~mne.Epochs.compute_psd` in + interactive mode. Ignored if ``inst`` is not supplied. If ``None``, + nothing is passed. Defaults to ``None``. + + .. versionadded:: 1.9 %(theme_pg)s .. versionadded:: 1.0 @@ -133,6 +140,7 @@ def plot_ica_sources( show=show, title=title, block=block, + psd_args=psd_args, show_first_samp=show_first_samp, show_scrollbars=show_scrollbars, time_format=time_format, @@ -1284,6 +1292,7 @@ def _plot_sources( precompute, use_opengl, *, + psd_args, theme=None, overview_mode=None, splash=True, @@ -1431,6 +1440,7 @@ def _plot_sources( use_opengl=use_opengl, theme=theme, overview_mode=overview_mode, + psd_args=psd_args, splash=splash, ) if is_epo: diff --git a/mne/viz/tests/test_ica.py b/mne/viz/tests/test_ica.py index 086bb369743..a3ea7b89e58 100644 --- a/mne/viz/tests/test_ica.py +++ b/mne/viz/tests/test_ica.py @@ -370,6 +370,9 @@ def test_plot_ica_sources(raw_orig, browser_backend, monkeypatch): leg = ax.get_legend() assert len(leg.get_texts()) == len(ica.exclude) == 1 + # test passing psd_args argument + ica.plot_sources(epochs, psd_args=dict(fmax=50)) + # plot with bad channels excluded ica.exclude = [0] ica.plot_sources(evoked)