File: v1.8.rst

package info (click to toggle)
python-mne 1.9.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 131,492 kB
  • sloc: python: 213,302; javascript: 12,910; sh: 447; makefile: 144
file content (173 lines) | stat: -rw-r--r-- 16,572 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
.. _changes_1_8_0:

Version 1.8.0 (2024-08-18)
==========================

Dependencies
------------

- Minimum versions for dependencies were bumped to those ~2 years old at the time of release (by `Eric Larson`_), including:

  - NumPy ≥ 1.23
  - SciPy ≥ 1.9
  - Matplotlib ≥ 3.6
  - scikit-learn ≥ 1.1 (`#12554 <https://github.com/mne-tools/mne-python/pull/12554>`__)
- Official support for PySide2 has been dropped in this release (though it might continue
  to work), by `Eric Larson`_. (`#12742 <https://github.com/mne-tools/mne-python/pull/12742>`__)


Bugfixes
--------

- Fix bug where an event that occurred only once was excluded in :func:`mne.io.read_raw_egi`, by :newcontrib:`Ping-Keng Jao`. (`#12300 <https://github.com/mne-tools/mne-python/pull/12300>`__)
- Fix bug where :func:`mne.stats.permutation_cluster_test` (and related functions) uses excessive amount of memory for large 2D data when TFCE method is selected, by :newcontrib:`Nicolas Fourcaud-Trocmé`. (`#12609 <https://github.com/mne-tools/mne-python/pull/12609>`__)
- Assure that blink times are handled correctly :func:`mne.preprocessing.eyetracking.interpolate_blinks`, even when the raw object is cropped by `Scott Huberty`_ and :newcontrib:`Sammi Chekroud`. (`#12759 <https://github.com/mne-tools/mne-python/pull/12759>`__)
- Fix check for dropping all channels in :meth:`mne.io.Raw.drop_channels` and related methods, by :newcontrib:`Farzin Negahbani`. (`#12763 <https://github.com/mne-tools/mne-python/pull/12763>`__)
- Fix scrolling behavior in :class:`~mne.Report` when clicking on a TOC entry multiple times, by `Richard Höchenberger`_. (`#12561 <https://github.com/mne-tools/mne-python/pull/12561>`__)
- Fix bug where :func:`mne.decoding.get_coef` did not work properly with :class:`mne.decoding.CSP`, by `Eric Larson`_. (`#12562 <https://github.com/mne-tools/mne-python/pull/12562>`__)
- The color scaling of Evoked topomaps added to reports via :meth:`mne.Report.add_evokeds`
  was sometimes sub-optimal if bad channels were present in the data. This has now been fixed
  and should be more consistent with the topomaps shown in the joint plots, by `Richard Höchenberger`_. (`#12578 <https://github.com/mne-tools/mne-python/pull/12578>`__)
- Fix error causing :meth:`mne.Epochs.interpolate_bads` not to work for ``seeg`` channels and fix a single contact on neighboring shafts sometimes being included in interpolation, by `Alex Rockhill`_ (`#12593 <https://github.com/mne-tools/mne-python/pull/12593>`__)
- Fix bug where :func:`mne.io.read_raw_fil` could not assign bad channels on import, by `George O'Neill`_. (`#12597 <https://github.com/mne-tools/mne-python/pull/12597>`__)
- Fixed a bug where :meth:`mne.Evoked.animate_topomap` did not work with :func:`mne.preprocessing.compute_current_source_density` - modified data, by `Michal Žák`_. (`#12605 <https://github.com/mne-tools/mne-python/pull/12605>`__)
- Fix overflow when plotting source estimates where data is all zero (or close to zero), and fix the range of allowed values for the colorbar sliders, by `Marijn van Vliet`_. (`#12612 <https://github.com/mne-tools/mne-python/pull/12612>`__)
- Fix adding channels to :class:`~mne.time_frequency.EpochsTFR` objects, by `Clemens Brunner`_. (`#12616 <https://github.com/mne-tools/mne-python/pull/12616>`__)
- Fix for new sklearn metadata routing protocol in decoding search_light, by `Alex Gramfort`_ (`#12620 <https://github.com/mne-tools/mne-python/pull/12620>`__)
- Fix bug where :func:`mne.time_frequency.csd_multitaper`, :func:`mne.time_frequency.csd_fourier`, :func:`mne.time_frequency.csd_array_multitaper`, and :func:`mne.time_frequency.csd_array_fourier` would return cross-spectral densities with the ``fmin`` and ``fmax`` frequencies missing, by `Thomas Binns`_ (`#12633 <https://github.com/mne-tools/mne-python/pull/12633>`__)
- Output types of sparse arrays were changed from ``matrix`` to ``array`` in
  :func:`~mne.channels.read_ch_adjacency`, :func:`~mne.channels.find_ch_adjacency`,
  :func:`~mne.stats.combine_adjacency`, :func:`~mne.spatio_temporal_src_adjacency`,
  and related functions to comply with the pending deprecation of ``np.matrix``.
  The returned objects now behave like standard :class:`~numpy.ndarray` objects, and
  in particular ``*`` now operates element-wise instead of performing matrix
  multiplication. You can use ``@`` as a backward compatible matrix multiplication
  for both ``np.matrix`` and ``np.ndarray`` objects, and if a matrix is desired
  the outputs can be cast directly, for example as ``scipy.sparse.csr_matrix(out)``.
  Changed by `Eric Larson`_. (`#12646 <https://github.com/mne-tools/mne-python/pull/12646>`__)
- Fix incorrect RuntimeWarning (different channel filter settings) in EDF/BDF import, by `Clemens Brunner`_. (`#12661 <https://github.com/mne-tools/mne-python/pull/12661>`__)
- In :func:`mne.export.export_raw` (``fmt='edf'``), when padding data to create equal-length data blocks,
  edge-padding is favored over zero-padding in order to avoid accidentally enlarging physical range, by `Qian Chu`_. (`#12676 <https://github.com/mne-tools/mne-python/pull/12676>`__)
- In :func:`mne.io.read_raw_eyelink`, gracefully handle missing datetime in file by `Scott Huberty`_. (`#12687 <https://github.com/mne-tools/mne-python/pull/12687>`__)
- Fix regression with :class:`mne.decoding.CSP` where using ``rank="full"`` errantly
  raised an error, by `Eric Larson`_. (`#12694 <https://github.com/mne-tools/mne-python/pull/12694>`__)
- Fix in-memory anonymization of data read with :func:`mne.io.read_raw_edf` by `Eric Larson`_. (`#12720 <https://github.com/mne-tools/mne-python/pull/12720>`__)
- Fix bug with overplotting of butterfly labels in :func:`mne.viz.plot_raw` and related
  functions and methods, by `Eric Larson`_. (`#12721 <https://github.com/mne-tools/mne-python/pull/12721>`__)
- Fix a bug where the ``ylim`` parameter would sometimes apply to the wrong channel types in :func:`mne.viz.plot_evoked_topo`, by `Marijn van Vliet`_. (`#12724 <https://github.com/mne-tools/mne-python/pull/12724>`__)
- Fix bug where ad-hoc regularization of a covariance with
  :func:`mne.cov.regularize` did not properly account for bad channels
  in rank calculations, by `Eric Larson`_. (`#12727 <https://github.com/mne-tools/mne-python/pull/12727>`__)
- Fix bug when reading NIRX files saved in a non-western encoding, by `Daniel McCloy`_. (`#12730 <https://github.com/mne-tools/mne-python/pull/12730>`__)
- :func:`~mne.set_log_file` and :func:`~mne.set_log_level` can now be correctly detected by
  static analysis tools like Pylance, by `Richard Höchenberger`_. (`#12735 <https://github.com/mne-tools/mne-python/pull/12735>`__)
- Safeguard loading of ``meas_date`` in :func:`mne.io.read_raw_edf`, by `Mathieu Scheltienne`_. (`#12754 <https://github.com/mne-tools/mne-python/pull/12754>`__)
- Fix bug in :func:`~mne.preprocessing.maxwell_filter_prepare_emptyroom` where a difference in sampling frequencies between data and emptyroom files was ignored, by `Daniel McCloy`_. (`#12760 <https://github.com/mne-tools/mne-python/pull/12760>`__)


API changes by deprecation
--------------------------

- A new argument ``events_as_annotations`` has been added to :func:`mne.io.read_raw_egi`
  with a default value of ``False`` that will change to ``True`` in version 1.9, by
  `Scott Huberty`_ and `Eric Larson`_. (`#12300 <https://github.com/mne-tools/mne-python/pull/12300>`__)
- ``mne.Info.ch_names`` will now return an empty list instead of raising a ``KeyError`` if no channels
  are present, by `Richard Höchenberger`_. (`#12583 <https://github.com/mne-tools/mne-python/pull/12583>`__)
- Documented that :func:`~mne.match_channel_orders` can also work on Epochs, and Evoked objects. Reflecting this, deprecated the ``raws`` parameter in favor of an ``insts`` parameter, by `Stefan Appelhoff`_. (`#12699 <https://github.com/mne-tools/mne-python/pull/12699>`__)
- The ``block`` argument to :class:`mne.viz.Brain` is deprecated and will be removed in
  1.9, use :func:`matplotlib.pyplot.show` with ``block=True`` instead, by `Eric Larson`_. (`#12719 <https://github.com/mne-tools/mne-python/pull/12719>`__)
- :func:`mne.datasets.fetch_fsaverage` now returns a :class:`python:pathlib.Path` object
  rather than a string. Support for string concatenation with plus (``+``) is thus
  deprecated and will be removed in 1.9, use the forward-slash ``/`` operator instead,
  by `Eric Larson`_. (`#12771 <https://github.com/mne-tools/mne-python/pull/12771>`__)


New features
------------

- Added internals to allow modifying single-channel annotations in the Qt
  raw browser, by :newcontrib:`Noah Markowitz`. (`#12669 <https://github.com/mne-tools/mne-python/pull/12669>`__)
- Adding :meth:`mne.channels.Layout.copy` and :meth:`mne.channels.Layout.pick` to copy and select channels from a :class:`mne.channels.Layout` object. Plotting 2D topographies of evoked responses with :func:`mne.viz.plot_evoked_topo` with both arguments ``layout`` and ``exclude`` now ignores excluded channels from the :class:`mne.channels.Layout`. By `Mathieu Scheltienne`_. (`#12338 <https://github.com/mne-tools/mne-python/pull/12338>`__)
- In :class:`~mne.Report` you can now easily navigate through images and figures connected to a slider with the left and right arrow keys. Clicking on the slider or respective image will focus the slider, enabling keyboard navigation, by `Richard Höchenberger`_ (`#12556 <https://github.com/mne-tools/mne-python/pull/12556>`__)
- When plotting EOG and ECG artifact scores for ICA in :meth:`mne.Report.add_ica`,
  the channel names used for artifact detection are now displayed in the titles of
  each respective subplot, by `Richard Höchenberger`_. (`#12573 <https://github.com/mne-tools/mne-python/pull/12573>`__)
- Use ``aseg='auto'`` for :meth:`mne.viz.Brain.add_volume_labels` and :func:`mne.get_montage_volume_labels` to use ``aparc+aseg`` by default or if not present use ``wmparc`` because freesurfer uses ``wmparc`` in the latest version, by `Alex Rockhill`_. (`#12576 <https://github.com/mne-tools/mne-python/pull/12576>`__)
- The HTML representations of :class:`~mne.io.Raw`, :class:`~mne.Epochs`,
  and :class:`~mne.Evoked` (which you will see e.g. when working with Jupyter Notebooks or
  :class:`~mne.Report`) have been updated to be more consistent and contain
  slightly more information,  by `Richard Höchenberger`_. (:gh:`12624`) (`#12583 <https://github.com/mne-tools/mne-python/pull/12583>`__)
- When adding :class:`~mne.Evoked` data to a :class:`~mne.Report` via
  :meth:`~mne.Report.add_evokeds`, we now also include an "Info" section
  with some basic summary info, as has already been the case for raw and
  epochs data, by `Richard Höchenberger`_. (`#12584 <https://github.com/mne-tools/mne-python/pull/12584>`__)
- We added new installation variants for a full installation with the PySide6 Qt binding
  (``"mne[full-pyside6]"``), with the PyQt6 binding (``"mne[full-pyqt6]"``, equivalent to
  ``"mne[full]"``), and without any Qt binding (``"mne[full-no-qt]"``), which may be useful
  in certain situations by `Richard Höchenberger`_. (`#12628 <https://github.com/mne-tools/mne-python/pull/12628>`__)
- Adding argument ``'random'`` to :func:`~mne.epochs.equalize_epoch_counts` and to :meth:`~mne.Epochs.equalize_event_counts` to randomly select epochs or events. By `Mathieu Scheltienne`_. (`#12649 <https://github.com/mne-tools/mne-python/pull/12649>`__)
- Add new parameter ``ignore_marker_types`` to :func:`~mne.io.read_raw_brainvision` to ignore marker types (and only use marker descriptions) when reading BrainVision files, by `Clemens Brunner`_. (`#12652 <https://github.com/mne-tools/mne-python/pull/12652>`__)
- Added support for passing ``axes`` to :func:`mne.viz.plot_head_positions` when
  ``mode='field'``, by `Eric Larson`_. (`#12655 <https://github.com/mne-tools/mne-python/pull/12655>`__)
- The HTML representation of :class:`~mne.Epochs` (visible e.g. in Jupyter or in :class:`~mne.Report`) now
  indicates whether metadata is attached to the epochs, by `Richard Höchenberger`_. (`#12686 <https://github.com/mne-tools/mne-python/pull/12686>`__)
- Montage plots created with :meth:`~mne.channels.DigMontage.plot` now scale both the channel dots *and* channel names with the new ``scale`` parameter. The default is ``scale=1`` (factors less than 1 will scale down, whereas factors greater than 1 will scale up). The previous ``scale_factor`` parameter only affected marker size, and this parameter is now deprecated. By `Clemens Brunner`_. (`#12703 <https://github.com/mne-tools/mne-python/pull/12703>`__)
- Add :func:`~mne.stats.erp.compute_sme` to compute the analytical standardized measurement error (SME) as a data quality measure for ERP studies, by `Clemens Brunner`_. (`#12707 <https://github.com/mne-tools/mne-python/pull/12707>`__)
- Use :class:`python:datetime.date` for ``info["subject_info"]["birthday"]`` rather than
  a tuple of ``(year, month, day)`` by `Eric Larson`_. (`#12720 <https://github.com/mne-tools/mne-python/pull/12720>`__)
- Add default ``spatial_colors="auto"`` to :func:`mne.viz.plot_evoked_white` and
  :meth:`mne.Evoked.plot_white` to enable spatial colors by default, by `Eric Larson`_. (`#12725 <https://github.com/mne-tools/mne-python/pull/12725>`__)
- :func:`mne.minimum_norm.make_inverse_operator` and related functions now more robustly
  warn if the whitener computed from the noise covariance has an incorrect rank,
  by `Eric Larson`_. (`#12727 <https://github.com/mne-tools/mne-python/pull/12727>`__)
- When indexing :class:`~mne.Epochs` (e.g. by doing ``epochs[0]``), static code analysis tools like Pylance
  should now be able to infer that the returned object is an epoch, too, and provide editor support
  like automated code completions, by `Richard Höchenberger`_. (`#12733 <https://github.com/mne-tools/mne-python/pull/12733>`__)
- When using the ``data_path()`` in any dataset included in :py:mod:`mne.datasets`,
  static analysis tools like Pylance will now correctly infer that a `pathlib.Path` will
  be returned and provide editor support like automated code completions, by `Richard Höchenberger`_. (`#12734 <https://github.com/mne-tools/mne-python/pull/12734>`__)
- Add support for storing Fourier coefficients in :class:`mne.time_frequency.Spectrum`,
  :class:`mne.time_frequency.EpochsSpectrum`, :class:`mne.time_frequency.SpectrumArray`,
  and :class:`mne.time_frequency.EpochsSpectrumArray` objects, by `Thomas Binns`_. (`#12747 <https://github.com/mne-tools/mne-python/pull/12747>`__)


Other changes
-------------

- Fixed issue template links by :newcontrib:`Michal Žák` (`#12600 <https://github.com/mne-tools/mne-python/pull/12600>`__)
- Enhance documentation on decimation filtering to prevent aliasing, by :newcontrib:`Xabier de Zuazo`. (`#12650 <https://github.com/mne-tools/mne-python/pull/12650>`__)
- Added `vulture <https://github.com/jendrikseipp/vulture>`__ as a pre-commit hook and removed related dead code, by `Eric Larson`_. (`#12569 <https://github.com/mne-tools/mne-python/pull/12569>`__)
- Add link to BEst-Python in the list of related software. by `Ilian Azz`_. (`#12659 <https://github.com/mne-tools/mne-python/pull/12659>`__)
- Improved clarity of parameter documentation for `mne.decoding.SSD.fit`, by `Thomas Binns`_. (`#12664 <https://github.com/mne-tools/mne-python/pull/12664>`__)
- Disable the "Back to top" button in the documentation, by `Richard Höchenberger`_. (`#12688 <https://github.com/mne-tools/mne-python/pull/12688>`__)
- Improve argument ``ylim`` documentation through :class:`~mne.Evoked` plotting function and validate type to :class:`dict` or ``None`` to prevent misuage, by `Mathieu Scheltienne`_. (`#12697 <https://github.com/mne-tools/mne-python/pull/12697>`__)
- Code contributions are now measured using PRs and reported on the :ref:`contributors`
  page, by `Eric Larson`_. (`#12774 <https://github.com/mne-tools/mne-python/pull/12774>`__)
- Authorship headers in MNE-Python code have been standardized, by `Eric Larson`_. (`#12781 <https://github.com/mne-tools/mne-python/pull/12781>`__)

Authors
-------

* Alex Rockhill
* Alexandre Gramfort
* Clemens Brunner
* Daniel McCloy
* Dimitri Papadopoulos Orfanos
* Eric Larson
* Farzin Negahbani+
* George O'Neill
* Ilian AZZ
* Marijn van Vliet
* Mathieu Scheltienne
* Michal Žák+
* Nabil Alibou
* Nicolas Fourcaud-Trocmé+
* Noah Markowitz+
* Ping-Keng Jao+
* Qian Chu
* Richard Höchenberger
* Sammi Chekroud+
* Scott Huberty
* Stefan Appelhoff
* Thomas S. Binns
* Xabier de Zuazo+