Skip to content

Commit f337a0d

Browse files
skjernslarsonerpre-commit-ci[bot]
authored
Add more information to eSSS in examples and docsstring (#13591)
Co-authored-by: Eric Larson <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 7518f98 commit f337a0d

File tree

4 files changed

+51
-1
lines changed

4 files changed

+51
-1
lines changed

doc/changes/dev/13591.other.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Documentation improvement for eSSS in docstring :func:`mne.preprocessing.maxwell_filter` and in the MaxFilter example by `Simon Kern`_.

doc/references.bib

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -813,6 +813,17 @@ @book{Heiman2002
813813
year = {2002}
814814
}
815815

816+
@ARTICLE{HelleEtAl2021,
817+
author={Helle, Liisa and Nenonen, Jukka and Larson, Eric and Simola, Juha and Parkkonen, Lauri and Taulu, Samu},
818+
journal={IEEE Transactions on Biomedical Engineering},
819+
title={Extended Signal-Space Separation Method for Improved Interference Suppression in MEG},
820+
year={2021},
821+
volume={68},
822+
number={7},
823+
pages={2211-2221},
824+
doi={10.1109/TBME.2020.3040373}
825+
}
826+
816827
@article{HippEtAl2011,
817828
author = {Hipp, Joerg F. and Engel, Andreas K. and Siegel, Markus},
818829
doi = {10.1016/j.neuron.2010.12.027},

mne/utils/docs.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1559,7 +1559,14 @@ def _reflow_param_docstring(docstring, has_first_line=True, width=75):
15591559
docdict["extended_proj_maxwell"] = """
15601560
extended_proj : list
15611561
The empty-room projection vectors used to extend the external
1562-
SSS basis (i.e., use eSSS).
1562+
SSS basis (i.e., use eSSS). You can use any SSP projections that contain
1563+
pure *external* noise that you expect to be present in your signal.
1564+
Typically, this should be the case during an empty room recording. Get the
1565+
projections e.g. by calling::
1566+
1567+
proj = mne.compute_proj_raw(
1568+
raw_empty_room.pick('meg'), n_grad=3, n_mag=3, meg="combined"
1569+
)
15631570
15641571
.. versionadded:: 0.21
15651572
"""

tutorials/preprocessing/60_maxwell_filtering_sss.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,36 @@
307307
# :func:`~mne.preprocessing.maxwell_filter` for details.
308308
#
309309
#
310+
# Extended SSS (eSSS)
311+
# ^^^^^^^^^^^^^^^^^^^
312+
#
313+
# Extended SSS (eSSS) is a variant of SSS that improves suppression of external
314+
# interference especially, when the “ideal” external model is not perfect
315+
# (e.g., because of small calibration/geometry errors). It does this by
316+
# extending the *external* part of the SSS model with interference patterns
317+
# learned from a separate empty-room recording :footcite:`HelleEtAl2021`.
318+
#
319+
# Practical notes:
320+
#
321+
# - Keep the number of added components small (the ~8 in the original paper);
322+
# adding too many can worsen numerical conditioning and increase noise.
323+
# - Prefer empty-room data from the same session/environment.
324+
# - eSSS can be combined with tSSS (“teSSS”, i.e. setting ``st_duration=X``).
325+
# - You can get projections from an empty room recording via
326+
# :func:`mne.compute_proj_raw` like::
327+
#
328+
# proj = mne.compute_proj_raw(
329+
# noise_raw, n_grad=3, n_mag=3, n_eeg=0, meg="combined",
330+
# )
331+
#
332+
# You can enable eSSS by setting ``extended_proj=proj`` in
333+
# :func:`~mne.preprocessing.maxwell_filter`.
334+
#
335+
# An external example using spatiotemporal extended SSS (teSSS) with movement
336+
# compensation can be found at
337+
# `github.com/ilabsbrainteam/2022-Best-Practices-Infant-MEG`_.
338+
#
339+
#
310340
# Movement compensation
311341
# ^^^^^^^^^^^^^^^^^^^^^
312342
#
@@ -379,3 +409,4 @@
379409
# .. LINKS
380410
#
381411
# .. _spherical harmonics: https://en.wikipedia.org/wiki/Spherical_harmonics
412+
# .. _github.com/ilabsbrainteam/2022-Best-Practices-Infant-MEG: https://github.com/ilabsbrainteam/2022-Best-Practices-Infant-MEG/blob/c62019b4d37a20f0c82420b73595ea241b892a17/pipeline.py#L119-L147

0 commit comments

Comments
 (0)