|
a |
|
b/doc/changes/v0.24.rst |
|
|
1 |
.. _changes_0_24_0: |
|
|
2 |
|
|
|
3 |
Version 0.24.0 (2021-11-03) |
|
|
4 |
--------------------------- |
|
|
5 |
|
|
|
6 |
.. |David Julien| replace:: **David Julien** |
|
|
7 |
|
|
|
8 |
.. |Dominique Makowski| replace:: **Dominique Makowski** |
|
|
9 |
|
|
|
10 |
.. |Romain Derollepot| replace:: **Romain Derollepot** |
|
|
11 |
|
|
|
12 |
.. |Jan Sosulski| replace:: **Jan Sosulski** |
|
|
13 |
|
|
|
14 |
.. |Xiaokai Xia| replace:: **Xiaokai Xia** |
|
|
15 |
|
|
|
16 |
.. |Marian Dovgialo| replace:: **Marian Dovgialo** |
|
|
17 |
|
|
|
18 |
.. |Pierre-Antoine Bannier| replace:: **Pierre-Antoine Bannier** |
|
|
19 |
|
|
|
20 |
.. |Darin Erat Sleiter| replace:: **Darin Erat Sleiter** |
|
|
21 |
|
|
|
22 |
.. |Mathieu Scheltienne| replace:: **Mathieu Scheltienne** |
|
|
23 |
|
|
|
24 |
.. |Timothy Gates| replace:: **Timothy Gates** |
|
|
25 |
|
|
|
26 |
.. |Reza Shoorangiz| replace:: **Reza Shoorangiz** |
|
|
27 |
|
|
|
28 |
.. |Evgeny Goldstein| replace:: **Evgeny Goldstein** |
|
|
29 |
|
|
|
30 |
.. |Joshua Teves| replace:: **Joshua Teves** |
|
|
31 |
|
|
|
32 |
.. |Riessarius Stargardsky| replace:: **Riessarius Stargardsky** |
|
|
33 |
|
|
|
34 |
.. |John Samuelsson| replace:: **John Samuelsson** |
|
|
35 |
|
|
|
36 |
Enhancements |
|
|
37 |
~~~~~~~~~~~~ |
|
|
38 |
.. - Add something cool (:gh:`9192` **by new contributor** |New Contributor|_) |
|
|
39 |
|
|
|
40 |
- Add ``pooch`` to system information reports (:gh:`9801` **by new contributor** |Joshua Teves|_) |
|
|
41 |
|
|
|
42 |
- Get annotation descriptions from the name field of SNIRF stimulus groups when reading SNIRF files via `mne.io.read_raw_snirf` (:gh:`9575` **by new contributor** |Darin Erat Sleiter|_) |
|
|
43 |
|
|
|
44 |
- Add support for NIRSport and NIRSport2 devices to `mne.io.read_raw_nirx` (:gh:`9348` and :gh:`9401` **by new contributor** |David Julien|_, **new contributor** |Romain Derollepot|_, `Robert Luke`_, and `Eric Larson`_) |
|
|
45 |
|
|
|
46 |
- New function :func:`mne.Dipole.to_volume_labels` to get atlas label for MRI coordinates. (:gh:`9376` by **new contributor** |Marian Dovgialo|_) |
|
|
47 |
|
|
|
48 |
- Add support for SURE parameter selection in :func:`mne.inverse_sparse.mixed_norm` and make ``alpha`` parameter now default to ``'sure'`` (:gh:`9430` by **new contributor** |Pierre-Antoine Bannier|_ and `Alex Gramfort`_) |
|
|
49 |
|
|
|
50 |
- Speed up BCD solver in :func:`mne.inverse_sparse.mixed_norm` by adding Anderson acceleration (:gh:`9481` by **new contributor** |Pierre-Antoine Bannier|_ and `Alex Gramfort`_) |
|
|
51 |
|
|
|
52 |
- Add support for list of channel types for EEG/sEEG/ECoG/DBS referencing (:gh:`9637` **by new contributor** |Mathieu Scheltienne|_) |
|
|
53 |
|
|
|
54 |
- Add the ability to set point size and line width in :func:`mne.viz.plot_sensors` and related functions (:gH:`9872` **by new contributor** |Dominique Makowski|_) |
|
|
55 |
|
|
|
56 |
- Add support for changing the default event id used by :func:`mne.make_fixed_length_epochs` (:gh:`9782` **by new contributor** |Mathieu Scheltienne|_) |
|
|
57 |
|
|
|
58 |
- Improve documentation for arguments ``threshold``, ``method`` and ``measure`` of ICA methods `~mne.preprocessing.ICA.find_bads_ecg`, `~mne.preprocessing.ICA.find_bads_ref` and `~mne.preprocessing.ICA.find_bads_eog` (:gh:`9858` **by new contributor** |Mathieu Scheltienne|_) |
|
|
59 |
|
|
|
60 |
- Add support for more than 3 source estimates in :func:`mne.viz.plot_sparse_source_estimates` (:gh:`9640` **by new contributor** |Pierre-Antoine Bannier|_ and `Alex Gramfort`_) |
|
|
61 |
|
|
|
62 |
- Add cortical signal suppression (CSS) :func:`mne.preprocessing.cortical_signal_suppression` (:gh:`6888`, :gh:`9892` **by new contributor** |John Samuelsson|_ and `Eric Larson`_) |
|
|
63 |
|
|
|
64 |
- Show all good channel types and counts when printing a :class:`mne.Info` in the notebook (:gh:`9725` by `Valerii Chirkov`_ and `Eric Larson`_) |
|
|
65 |
|
|
|
66 |
- Speed up point decimation in :func:`mne.io.read_raw_kit` by vectorization and use of :class:`scipy.spatial.cKDTree` (:gh:`9568` by `Jean-Rémi King`_ and `Eric Larson`_) |
|
|
67 |
|
|
|
68 |
- Add ability to export EDF+ files using :func:`mne.export.export_raw` (:gh:`9643` by `Adam Li`_) |
|
|
69 |
|
|
|
70 |
- New function :func:`mne.chpi.get_chpi_info` to retrieve basic information about the cHPI system used when recording MEG data (:gh:`9369` by `Richard Höchenberger`_) |
|
|
71 |
|
|
|
72 |
- New namespace `mne.export` created to contain functions (such as `mne.export.export_raw` and `mne.export.export_epochs`) for exporting data to non-FIF formats (:gh:`9427` by `Eric Larson`_) |
|
|
73 |
|
|
|
74 |
- Add support for Hitachi fNIRS devices in `mne.io.read_raw_hitachi` (:gh:`9391` by `Eric Larson`_) |
|
|
75 |
|
|
|
76 |
- Add support for ``picks`` in :func:`mne.stc_near_sensors` (:gh:`9396` by `Eric Larson`_) |
|
|
77 |
|
|
|
78 |
- Add label methods `mne.Label.compute_area` and `mne.Label.distances_to_outside` (:gh:`9424` by `Eric Larson`_) |
|
|
79 |
|
|
|
80 |
- Add projections when printing a :class:`mne.Info` in the notebook (:gh:`9403` by `Alex Gramfort`_) |
|
|
81 |
|
|
|
82 |
- Add new function :func:`mne.bem.make_scalp_surfaces` to compute scalp surfaces for coregistration (:gh:`9463` by `Alex Gramfort`_) |
|
|
83 |
|
|
|
84 |
- Add support for interpolating oxy and deoxyhaemoglobin data types (:gh:`9431` by `Robert Luke`_) |
|
|
85 |
|
|
|
86 |
- Add support for SNIRF files in :class:`mne.Report` (:gh:`9443` by `Robert Luke`_) |
|
|
87 |
|
|
|
88 |
- Add support for exporting MFF evoked files using `mne.export.export_evokeds` and `mne.export.export_evokeds_mff` (:gh:`9406` by `Evan Hathaway`_) |
|
|
89 |
|
|
|
90 |
- :func:`mne.concatenate_raws`, :func:`mne.concatenate_epochs`, and :func:`mne.write_evokeds` gained a new parameter ``on_mismatch``, which controls behavior in case not all of the supplied instances share the same device-to-head transformation (:gh:`9438` by `Richard Höchenberger`_) |
|
|
91 |
|
|
|
92 |
- Add support for multiple datablocks (acquisitions with pauses) in :func:`mne.io.read_raw_nihon` (:gh:`9437` by `Federico Raimondo`_) |
|
|
93 |
|
|
|
94 |
- Add new function :func:`mne.preprocessing.annotate_break` to automatically detect and mark "break" periods without any marked experimental events in the continuous data (:gh:`9445` by `Richard Höchenberger`_) |
|
|
95 |
|
|
|
96 |
- Add "time_format" to :meth:`mne.io.Raw.plot` and :meth:`mne.preprocessing.ICA.plot_sources` to display acquisition time on x-axis (:gh:`9419` by `Martin Schulz`_) |
|
|
97 |
|
|
|
98 |
- Speed up :meth:`mne.decoding.TimeDelayingRidge.predict` by switching to FFT-based convolution (:gh:`9458` by `Ross Maddox`_) |
|
|
99 |
|
|
|
100 |
- Show multiple colors and linestyles for excluded components with :class:`mne.Evoked` in :meth:`mne.preprocessing.ICA.plot_sources` (:gh:`9444` by `Martin Schulz`_) |
|
|
101 |
|
|
|
102 |
- Add functions for aligning MRI and CT data `mne.transforms.compute_volume_registration` and `mne.transforms.apply_volume_registration` (:gh:`9503` by `Alex Rockhill`_ and `Eric Larson`_) |
|
|
103 |
|
|
|
104 |
- Add tutorial for how to processes image (CT and MR) files in order to localize electrode contacts for intracranial recordings :ref:`tut-ieeg-localize` (:gh:`9484` by `Alex Rockhill`_) |
|
|
105 |
|
|
|
106 |
- Add vertex number in source space for :meth:`mne.VolSourceEstimate.plot` and :func:`mne.viz.plot_volume_source_estimates` (:gh:`9697` by `Eric Larson`_) |
|
|
107 |
|
|
|
108 |
- Add support for colormap normalization in :func:`mne.viz.plot_topomap` (:gh:`9468` by `Clemens Brunner`_) |
|
|
109 |
|
|
|
110 |
- Update :func:`mne.preprocessing.realign_raw` with Numpy-recommended polynomial fitting method (:gh:`9514` by `Erica Peterson`_) |
|
|
111 |
|
|
|
112 |
- Add a warning to `mne.preprocessing.nirs.beer_lambert_law` when source-detector distances are zero (:gh:`9541` by `Eric Larson`_) |
|
|
113 |
|
|
|
114 |
- Add ``exclude`` parameter to :meth:`mne.io.Raw.plot_psd` and :meth:`mne.Epochs.plot_psd` (:gh:`9519` by `Clemens Brunner`_) |
|
|
115 |
|
|
|
116 |
- Add `mne.Annotations.rename` to rename annotation descriptions (:gh:`9525` by `Robert Luke`_) |
|
|
117 |
|
|
|
118 |
- Add `mne.Annotations.set_durations` to set annotation durations (:gh:`9529` by `Robert Luke`_) |
|
|
119 |
|
|
|
120 |
- The ``exclude`` parameter in `mne.io.read_raw_edf`, `mne.io.read_raw_bdf`, and `mne.io.read_raw_gdf` now also accepts a regular expression (:gh:`9558` by `Clemens Brunner`_) |
|
|
121 |
|
|
|
122 |
- Add :meth:`mne.Evoked.get_data` method to :class:`mne.Evoked` (:gh:`9555` by `Stefan Appelhoff`_) |
|
|
123 |
|
|
|
124 |
- The :meth:`mne.Epochs.get_data` method now has a ``units`` parameter (:gh:`9553` by `Stefan Appelhoff`_) |
|
|
125 |
|
|
|
126 |
- Add ``mne.warp_montage_volume`` to use an anatomical volume with channel locations at high or low insensities to apply a symmetric diffeomorphic registration to a template (e.g. fsaverage) space (:gh:`9544` by `Alex Rockhill`_) |
|
|
127 |
|
|
|
128 |
- :meth:`mne.io.Raw.get_data`, :meth:`mne.Epochs.get_data`, and :meth:`mne.Evoked.get_data` methods now have ``tmin`` and ``tmax`` parameters to specify data window in seconds to get (:gh:`9556` by `Stefan Appelhoff`_) |
|
|
129 |
|
|
|
130 |
- The :meth:`mne.Evoked.get_data` method now has a ``units`` parameter (:gh:`9578` by `Stefan Appelhoff`_) |
|
|
131 |
|
|
|
132 |
- Add `mne.chpi.compute_chpi_snr` and `mne.viz.plot_chpi_snr` for computing and plotting the time-varying SNR of continuously-active HPI coils (:gh:`9570` by `Daniel McCloy`_ and `Jussi Nurminen`_) |
|
|
133 |
|
|
|
134 |
- Add :func:`mne.get_montage_volume_labels` to find the regions of interest in a Freesurfer atlas anatomical segmentation for an intracranial electrode montage and :func:`mne.viz.plot_channel_labels_circle` to plot them (:gh:`9545` by `Alex Rockhill`_) |
|
|
135 |
|
|
|
136 |
- Add :func:`mne.viz.Brain.add_volume_labels` to plot subcortical surfaces and other regions of interest (:gh:`9540` by `Alex Rockhill`_ and `Eric Larson`_) |
|
|
137 |
|
|
|
138 |
- Add custom cortex curvature colors in :class:`mne.viz.Brain` via the ``cortex`` argument (:gh:`9750` by `Eric Larson`_) |
|
|
139 |
|
|
|
140 |
- Add :meth:`mne.channels.DigMontage.apply_trans` to apply a transform directly to a montage (:gh:`9601` by `Alex Rockhill`_) |
|
|
141 |
|
|
|
142 |
- :meth:`mne.preprocessing.ICA.fit` now emits a warning if any of the ``start``, ``stop``, ``reject``, and ``flat`` parameters are passed when performing ICA on `~mne.Epochs`. These parameters only have an effect on `~mne.io.Raw` data and were previously silently ignored in the case of `~mne.Epochs` (:gh:`9605` by `Richard Höchenberger`_) |
|
|
143 |
|
|
|
144 |
- :func:`mne.viz.plot_alignment` now emits a warning (instead of aborting with an exception) if the surfaces contain topological defects (:gh:`9614` by `Richard Höchenberger`_) |
|
|
145 |
|
|
|
146 |
- The coregistration GUI can now display the head surface even if there are topological defects. Previously, a low-resolution standard head unsuitable for individualized coregistration was displayed (:gh:`9614` by `Richard Höchenberger`_) |
|
|
147 |
|
|
|
148 |
- New :class:`mne.coreg.Coregistration` object to allow coregistration scripting without a dependency on mayavi (:gh:`9516` by `Guillaume Favelier`_). |
|
|
149 |
|
|
|
150 |
- Add :meth:`mne.viz.Brain.add_head` to plot the head surface (:gh:`9618` by `Alex Rockhill`_) |
|
|
151 |
|
|
|
152 |
- Add :func:`mne.channels.read_dig_localite` to read Localite electrode location files (:gh:`9658` by `Clemens Brunner`_) |
|
|
153 |
|
|
|
154 |
- Add :meth:`mne.viz.Brain.add_sensors` to plot sensor locations (:gh:`9585` by `Alex Rockhill`_) |
|
|
155 |
|
|
|
156 |
- Add :func:`mne.coreg.estimate_head_mri_t` to estimate the head->mri transform from fsaverage fiducials (:gh:`9585` by `Alex Rockhill`_) |
|
|
157 |
|
|
|
158 |
- Add :meth:`mne.channels.DigMontage.add_mni_fiducials` to add fiducials to a montage in MNI coordinates (:gh:`9682` by `Alex Rockhill`_) |
|
|
159 |
|
|
|
160 |
- Add :meth:`mne.channels.DigMontage.remove_fiducials` to remove fiducials under rare circumstances when the coordinate frame should not be set to "head" (:gh:`9684` by `Alex Rockhill`_) |
|
|
161 |
|
|
|
162 |
- Add remove methods for mesh objects in :class:`mne.viz.Brain` (:gh:`9688` by `Alex Rockhill`_) |
|
|
163 |
|
|
|
164 |
- Add ``--show-paths`` and ``--developer`` options to :ref:`mne sys_info` (:gh:`9789` by `Eric Larson`_) |
|
|
165 |
|
|
|
166 |
- Add ability to export EDF+ files using :func:`mne.export.export_raw` (:gh:`9643` by `Adam Li`_) |
|
|
167 |
|
|
|
168 |
- Reading EDF files via :func:`mne.io.read_raw_edf` now can infer channel type from the signal label in the EDF header (:gh:`9694` by `Adam Li`_) |
|
|
169 |
|
|
|
170 |
- Add ``mne.gui.locate_ieeg`` to locate intracranial electrode contacts from a CT, an MRI (with Freesurfer ``recon-all``) and the channel names from an :class:`mne.Info` object (:gh:`9586` by `Alex Rockhill`_) |
|
|
171 |
|
|
|
172 |
- All data fetching code now relies on ``pooch``, which is an added optional requirement for dataset fetchers (:gh:`9742` by `Adam Li`_ and `Daniel McCloy`_) |
|
|
173 |
|
|
|
174 |
- Add phantom FreeSurfer subject fetcher :func:`mne.datasets.fetch_phantom` to allow fetching the Otaniemi phantom (:gh:`9796` by `Eric Larson`_) |
|
|
175 |
|
|
|
176 |
- Add :func:`mne.datasets.fetch_dataset` to allow packages to fetch datasets in a similar fashion to MNE (:gh:`9763` by `Adam Li`_) |
|
|
177 |
|
|
|
178 |
- Add full ECoG dataset to MNE-misc-data and demonstrate its use in :ref:`ex-electrode-pos-2d` and :ref:`tut-ieeg-localize` (:gh:`9784` by `Alex Rockhill`_) |
|
|
179 |
|
|
|
180 |
- Add options ``tol`` and ``accuracy`` to :func:`mne.fit_dipole` to control optimization (:gh:`9810` by `Eric Larson`_) |
|
|
181 |
|
|
|
182 |
- Completely revamp the `~mne.Report` experience: new HTML layout, many new methods, more flexibility; the functionality is demonstrated in :ref:`tut-report` (:gh:`9754`, :gh:`9828`, :gh:`9847`, :gh:`9860`, :gh:`9861`, :gh:`9862`, :gh:`9863`, :gh:`9871`, :gh:`9881`, :gh:`9891`, :gh:`9901` by `Richard Höchenberger`_, `Eric Larson`_, and `Alex Gramfort`_) |
|
|
183 |
|
|
|
184 |
- Add basic HTML representations of `~mne.Forward` and `~mne.minimum_norm.InverseOperator` instances for a nicer Jupyter experience (:gh:`9754` by `Richard Höchenberger`_) |
|
|
185 |
|
|
|
186 |
- `mne.io.read_raw_brainvision` now handles ASCII data with comma-separated values, as may be exported from BrainVision Analyzer (:gh:`9795` by `Richard Höchenberger`_) |
|
|
187 |
|
|
|
188 |
- Add :func:`mne.preprocessing.ieeg.project_sensors_onto_brain` to project ECoG sensors onto the pial surface to compensate for brain shift (:gh:`9800` by `Alex Rockhill`_) |
|
|
189 |
|
|
|
190 |
- Add support for data acquired with NIRx devices using Aurora software version 2021.9 (:gh:`9800` by `Robert Luke`_, and `Eric Larson`_) |
|
|
191 |
|
|
|
192 |
- All functions for reading and writing files should now automatically handle ``~`` (the tilde character) and expand it to the user's home directory. Should you come across any function that doesn't do it, please do let us know! (:gh:`9613`, :gh:`9845` by `Richard Höchenberger`_) |
|
|
193 |
|
|
|
194 |
- All functions accepting a FreeSurfer subjects directory via a ``subjects_dir`` parameter can now consume :class:`pathlib.Path` objects too (used to be only strings) (:gh:`9613` by `Richard Höchenberger`_) |
|
|
195 |
|
|
|
196 |
- Add support for colormap normalization in :meth:`mne.time_frequency.AverageTFR.plot` (:gh:`9851` by `Clemens Brunner`_) |
|
|
197 |
|
|
|
198 |
- Add support for BIDS-compatible filenames when splitting big epochs files via the new ``split_naming`` parameter in :meth:`mne.Epochs.save` (:gh:`9869` by `Denis Engemann`_) |
|
|
199 |
|
|
|
200 |
- Add ``by_event_type`` parameter to :meth:`mne.Epochs.average` to create a list containing an :class:`mne.Evoked` object for each event type (:gh:`9859` by `Marijn van Vliet`_) |
|
|
201 |
|
|
|
202 |
- Add pyqtgraph as a new backend for :meth:`mne.io.Raw.plot` (:gh:`9687` by `Martin Schulz`_) |
|
|
203 |
|
|
|
204 |
- Add :func:`mne.viz.set_browser_backend`, :func:`mne.viz.use_browser_backend` and :func:`mne.viz.get_browser_backend` to set matplotlib or pyqtgraph as backend for :meth:`mne.io.Raw.plot` (:gh:`9687` by `Martin Schulz`_) |
|
|
205 |
|
|
|
206 |
Bugs |
|
|
207 |
~~~~ |
|
|
208 |
- Fix bug in :meth:`mne.io.Raw.pick` and related functions when parameter list contains channels which are not in info instance (:gh:`9708` **by new contributor** |Evgeny Goldstein|_) |
|
|
209 |
|
|
|
210 |
- Fix a few typos (:gh:`9706` **by new contributor** |Timothy Gates|_) |
|
|
211 |
|
|
|
212 |
- Fix bug with :meth:`mne.Epochs.crop` and :meth:`mne.Evoked.crop` when ``include_tmax=False``, where the last sample was always cut off, even when ``tmax > epo.times[-1]`` (:gh:`9378` **by new contributor** |Jan Sosulski|_) |
|
|
213 |
|
|
|
214 |
- Fix bug with `mne.io.read_raw_curry` to allow reading Curry 7 and 8 event files with '.ceo' and '.cdt.ceo' extensions (:gh:`9381`, :gh:`9712` by **new contributor** |Xiaokai Xia|_, `Daniel McCloy`_, and **by new contributor** |Reza Shoorangiz|_) |
|
|
215 |
|
|
|
216 |
- Fix bug with `mne.compute_rank`, `mne.cov.compute_whitener` and `mne.preprocessing.ICA.fit` when explicit picks including bad channels are provided (:gh:`9719` **by new contributor** |Mathieu Scheltienne|_) |
|
|
217 |
|
|
|
218 |
- Fix bug with :func:`mne.concatenate_epochs` where the concatenated events could end up in non-chronological order. (:gh:`9765` **by new contributor** |Jan Sosulski|_) |
|
|
219 |
|
|
|
220 |
- Fix bug where :func:`mne.time_frequency.psd_array_welch` and :func:`mne.time_frequency.psd_array_multitaper` failed to handle negative integer for ``n_jobs`` argument (:gh:`9849` **by new contributor** |Riessarius Stargardsky|_) |
|
|
221 |
|
|
|
222 |
- Fix bug where resampling returns empty instances (:gh:`9897` **by new contributor** |Mathieu Scheltienne|_ and `Eric Larson`_) |
|
|
223 |
|
|
|
224 |
- Fix bug with `mne.io.Raw.get_montage` now returning both good and bad channels in the montage. (:gh:`9920` **by new contributor** |Mathieu Scheltienne|_) |
|
|
225 |
|
|
|
226 |
- Fix bug with :func:`mne.io.read_raw_nihon` where latin-1 annotations could not be read (:gh:`9384` by `Alex Gramfort`_) |
|
|
227 |
|
|
|
228 |
- Fix bug when printing a :class:`mne.io.RawArray` in the notebook (:gh:`9404` by `Alex Gramfort`_) |
|
|
229 |
|
|
|
230 |
- Fix bug when computing rank from info for SSS data with only gradiometers or magnetometers (:gh:`9435` by `Alex Gramfort`_) |
|
|
231 |
|
|
|
232 |
- Fix bug with `mne.preprocessing.find_bad_channels_maxwell` where all-flat segments could lead to an error (:gh:`9531` by `Eric Larson`_) |
|
|
233 |
|
|
|
234 |
- Fix bug with `mne.io.Raw.set_montage` and related functions where the channel coordinate frame was not properly set to head (:gh:`9447` by `Eric Larson`_) |
|
|
235 |
|
|
|
236 |
- Fix bug with `mne.io.read_raw_fieldtrip` and `mne.read_epochs_fieldtrip` where channel positions were not set properly (:gh:`9447` by `Eric Larson`_) |
|
|
237 |
|
|
|
238 |
- Fix bug with :func:`mne.io.read_raw_kit` where omitting HPI coils could lead to an :exc:`python:AssertionError` on reading (:gh:`9612` by `Eric Larson`_) |
|
|
239 |
|
|
|
240 |
- Fix bug with :func:`mne.io.read_raw_edf` where reading only stimulus channels would lead to an error (:gh:`9831` by `Eric Larson`_) |
|
|
241 |
|
|
|
242 |
- Fix bug with `mne.preprocessing.nirs.optical_density` where protection against zero values was not guaranteed (:gh:`9522` by `Eric Larson`_) |
|
|
243 |
|
|
|
244 |
- :func:`mne.concatenate_raws` now raises an exception if ``raw.info['dev_head_t']`` differs between files. This behavior can be controlled using the new ``on_mismatch`` parameter (:gh:`9438` by `Richard Höchenberger`_) |
|
|
245 |
|
|
|
246 |
- Fixed bug in :meth:`mne.Epochs.drop_bad` where subsequent rejections failed if they only specified thresholds for a subset of the channel types used in a previous rejection (:gh:`9485` by `Richard Höchenberger`_). |
|
|
247 |
|
|
|
248 |
- Fix bug with `mne.simulation.simulate_evoked`, `mne.apply_forward`, and `mne.apply_forward_raw` where systems with EEG channels that come before MEG channels would have them mixed up in the output evoked or raw object (:gh:`#9513` by `Eric Larson`_) |
|
|
249 |
|
|
|
250 |
- In :func:`mne.viz.plot_ica_scores` and :meth:`mne.preprocessing.ICA.plot_scores`, the figure and axis titles no longer overlap when plotting only a single EOG or ECG channel (:gh:`9489` by `Richard Höchenberger`_). |
|
|
251 |
|
|
|
252 |
- Ensure `mne.io.Raw.get_montage` works with SNIRF data (:gh:`9524` by `Robert Luke`_) |
|
|
253 |
|
|
|
254 |
- Fix bug in :func:`mne.setup_volume_source_space` where non-finite positions could be used in a discrete source space (:gh:`9603` by `Eric Larson`_) |
|
|
255 |
|
|
|
256 |
- Fix bug in :func:`mne.viz.plot_topomap` (and related methods like :meth:`mne.Evoked.plot_topomap`) where large distances between electrodes (higher than head radius) would lead to an error (:gh:`9528` by `Mikołaj Magnuski`_). |
|
|
257 |
|
|
|
258 |
- Fix bug in `mne.viz.plot_topomap` (and related methods) where passing ``axes`` that are part of a matplotlib figure that uses a constrained layout would emit warnings (:gh:`9558` by `Eric Larson`_) |
|
|
259 |
|
|
|
260 |
- Fix bug in :func:`mne.make_forward_solution` where impossible sensor-BEM geometries were not checked (:gh:`9893` by `Eric Larson`_) |
|
|
261 |
|
|
|
262 |
- Fix bug in :func:`mne.concatenate_epochs` when concatenating :class:`mne.Epochs` objects with 0 events (:gh:`9535` by `Marijn van Vliet`_) |
|
|
263 |
|
|
|
264 |
- Fix bug in :func:`mne.viz.Brain.screenshot` where the RGBA mode was not supported (:gh:`9564` by `Guillaume Favelier`_). |
|
|
265 |
|
|
|
266 |
- Fix bug in :func:`mne.io.read_raw_egi` where reading data from a data segment that is part of an acquisition skip would lead to an error (:gh:`9565` by `Eric Larson`_) |
|
|
267 |
|
|
|
268 |
- Prevent :meth:`mne.io.Raw.plot` windows from spawning at sizes too small to properly render (:gh:`9629` by `Daniel McCloy`_) |
|
|
269 |
|
|
|
270 |
- Fix bug where :meth:`mne.io.Raw.plot` raised an error when plotting raw dipole data (:gh:`9771` by `Eric Larson`_) |
|
|
271 |
|
|
|
272 |
- Fix bug in ::meth:`mne.preprocessing.ICA.find_bads_ecg` where passing ``start`` and ``stop`` lead to erroneous data windows depending on the combination of Raw, Epochs, Evoked, and the type (int, float, None) of ``start`` and ``stop`` (:gh:`9556` by `Stefan Appelhoff`_) |
|
|
273 |
|
|
|
274 |
- Fix bug in :func:`mne.viz.set_3d_backend` and :func:`mne.viz.get_3d_backend` where the PyVistaQt-based backend was ambiguously named ``'pyvista'`` instead of ``'pyvistaqt'``; use ``set_3d_backend('pyvistaqt')`` and expect ``'pyvistaqt'`` as the output of :func:`mne.viz.get_3d_backend` instead of ``'pyvista'``, and consider using ``get_3d_backend().startswith('pyvista')`` for example for backward-compatible conditionals (:gh:`9607` by `Guillaume Favelier`_) |
|
|
275 |
|
|
|
276 |
- Fix bug in :func:`mne.viz.plot_compare_evokeds` where confidence bands were not drawn if only one condition was plotted (:gh:`9663` by `Daniel McCloy`_) |
|
|
277 |
|
|
|
278 |
- Fix bug where setting of a montage with fNIRS data got set to "unknown" coordinate frame when it should have been in "head" (:gh:`9630` by `Alex Rockhill`_) |
|
|
279 |
|
|
|
280 |
- Fix bug where "seeg", "ecog", "dbs" and "fnirs" data had coordinate frame unknown upon loading from a file when it should have been in "head" (:gh:`9580` by `Alex Rockhill`_) |
|
|
281 |
|
|
|
282 |
- Raise error when no ``trans`` is provided to :func:`mne.viz.plot_alignment` when required instead of assuming identity head->mri transform (:gh:`9585` by `Alex Rockhill`_) |
|
|
283 |
|
|
|
284 |
- Fix bug where :meth:`mne.Epochs.equalize_event_counts` failed when only one good epoch existed for one of the event types (:gh:`9758` by `Daniel McCloy`_) |
|
|
285 |
|
|
|
286 |
- Fix bug where channels with a dollar sign ($) were not being labeled "misc" in :func:`mne.io.read_raw_nihon` (:gh:`9695` by `Adam Li`_) |
|
|
287 |
|
|
|
288 |
- Fix bug where :func:`mne.io.read_raw_persyst` was lower-casing events it found in the ``.lay`` file (:gh:`9746` by `Adam Li`_) |
|
|
289 |
|
|
|
290 |
- Fix bug with Qhull when plotting OPM sensors in :func:`mne.viz.plot_alignment` (:gh:`9799` and :gh:`9804` by `Eric Larson`_) |
|
|
291 |
|
|
|
292 |
- Fix bug where :func:`mne.io.read_raw_snirf` was including the landmark index as a spatial coordinate (:gh:`9777` by `Robert luke`_) |
|
|
293 |
|
|
|
294 |
- Fix bug where `mne.Annotations` were not appending channel names when being added together (:gh:`9780` by `Adam Li`_) |
|
|
295 |
|
|
|
296 |
- `mne.viz.plot_evoked_joint` now correctly handles a ``times='peaks'`` parameter value (:gh:`9754` by `Richard Höchenberger`_) |
|
|
297 |
|
|
|
298 |
- In `mne.viz.plot_compare_evokeds`, slightly adjust the x-axis limit calculation to avoid drawing an axis that is too short (:gh:`9754` by `Richard Höchenberger`_) |
|
|
299 |
|
|
|
300 |
- Fix a bug with :func:`mne.viz.snapshot_brain_montage` with the Mayavi backend where electrodes were shown in the wrong positions, and with the PyVista backend where the snapshot always contained the electrodes but could be missing a hemisphere (:gh:`9933` by `Eric Larson`_) |
|
|
301 |
|
|
|
302 |
- In :meth:`mne.io.Raw.plot_psd` and :meth:`mne.Epochs.plot_psd`, avoid overlap between subplot titles and x-axis tick labels (:gh:`9864` by `Richard Höchenberger`_) |
|
|
303 |
|
|
|
304 |
- In :meth:`mne.Epochs.plot_psd_topomap`, the data is now scaled to match the output of :meth:`mne.Epochs.plot_psd` (:gh:`9873` by `Richard Höchenberger`_) |
|
|
305 |
|
|
|
306 |
- Fix channel locations with ``NaN`` values causing all channel locations not to be plotted in :func:`mne.viz.Brain.add_sensors` (:gh:`9911` by `Alex Rockhill`_) |
|
|
307 |
|
|
|
308 |
- Fix infinite loop bug in :func:`mne.get_montage_volume_labels` (:gh:`9940` by `Alex Rockhill`_) |
|
|
309 |
|
|
|
310 |
API changes |
|
|
311 |
~~~~~~~~~~~ |
|
|
312 |
- The :class:`mne.Info` class is now more strictly checked when attributes are set. Setting most attributes directly will lead to an error in the next release. See the docstring of :class:`mne.Info` for more information (:gh:`9867` **by new contributor** |Mathieu Scheltienne|_) |
|
|
313 |
|
|
|
314 |
- The Mayavi 3D backend has been deprecated (:gh:`9904` by `Eric Larson`_): |
|
|
315 |
|
|
|
316 |
- In 3D plotting functions, use PyVista-based backends (``'pyvistaqt'`` and ``'notebook'``) as PySurfer/Mayavi will be removed in the next version |
|
|
317 |
|
|
|
318 |
- To use the :ref:`mne kit2fiff` command-line GUI for fiducial markers, install the separate ``mne-kit-gui`` module, which can still be launched via ``$ mne kit2fiff`` |
|
|
319 |
|
|
|
320 |
- The ``mne.gui.fiducials`` GUI has been deprecated, use :ref:`mne coreg` or ``mne_kit_gui.fiducials()`` to set MRI fiducials instead |
|
|
321 |
|
|
|
322 |
- In `mne.compute_source_morph`, the ``niter_affine`` and ``niter_sdr`` parameters have been replaced by ``niter`` and ``pipeline`` parameters for more consistent and finer-grained control of registration/warping steps and iteration (:gh:`9505` by `Alex Rockhill`_ and `Eric Larson`_) |
|
|
323 |
|
|
|
324 |
- Split :func:`mne.viz.Brain.show_view` argument ``view`` into ``azimuth``, ``elevation`` and ``focalpoint`` for clearer view setting and make the default for ``row`` and ``col`` apply to all rows and columns (:gh:`9596` by `Alex Rockhill`_) |
|
|
325 |
|
|
|
326 |
- Deprecate ``solver='prox'`` in :func:`mne.inverse_sparse.mixed_norm` in favor of ``solver='cd'`` and ``solver='bcd'`` as coordinate descent solvers consistently outperform proximal gradient descent (:gh:`9608` by `Pierre-Antoine Bannier`_) |
|
|
327 |
|
|
|
328 |
- All ``mne.connectivity`` functions have moved to the ``mne-connectivity`` package; they are deprecated in MNE-Python and will be removed in version 0.25 (:gh:`9493` by `Adam Li`_). |
|
|
329 |
|
|
|
330 |
- :func:`mne.inverse_sparse.mixed_norm` now simply warns when source estimates contain no dipole, e.g. if data are too noisy and alpha is based on SURE (:gh:`9685` by `Alex Gramfort`_) |
|
|
331 |
|
|
|
332 |
- Deprecate functions :samp:`mne.datasets.{DATASET_NAME}.has_{DATASET_NAME}_data()` for these datasets: ``epilepsy_ecog``, ``fnirs_motor``, ``multimodal``, ``opm``, ``phantom_4dbti``, ``refmeg_noise``, ``sample``, ``somato``, and ``ssvep``. Use the generic :func:`mne.datasets.has_dataset` instead (:gh:`9781` by `Daniel McCloy`_ and `Adam Li`_) |
|
|
333 |
|
|
|
334 |
- :class:`mne.Report` modernization has led to multiple deprecations (:gh:`9754` by `Richard Höchenberger`_): |
|
|
335 |
|
|
|
336 |
- ``mne.Report.add_figs_to_section`` and ``mne.Report.add_slider_to_section`` have been deprecated in favor of :meth:`mne.Report.add_figure` |
|
|
337 |
|
|
|
338 |
- ``mne.Report.add_images_to_section`` has been deprecated in favor of :meth:`mne.Report.add_image` |
|
|
339 |
|
|
|
340 |
- ``mne.Report.add_bem_to_section`` has been deprecated in favor of :meth:`mne.Report.add_bem` |
|
|
341 |
|
|
|
342 |
- ``mne.Report.add_htmls_to_section`` has been deprecated in favor of :meth:`mne.Report.add_html` |
|
|
343 |
|
|
|
344 |
- In :meth:`mne.Report.parse_folder`, the ``sort_sections`` parameter has been deprecated in favor of ``sort_content`` |
|
|
345 |
|
|
|
346 |
- In :meth:`mne.Report.remove`, the ``caption`` and ``section`` parameters have been deprecated in favor of ``title`` and ``tags``, respectively |
|
|
347 |
|
|
|
348 |
- The ``mne.Report.sections`` attribute has been deprecated in favor of ``mne.Report.tags`` |
|
|
349 |
|
|
|
350 |
- The ``mne.Report.fnames`` attribute has been deprecated without replacement |
|
|
351 |
|
|
|
352 |
- :meth:`mne.Epochs.plot` and :func:`mne.viz.plot_epochs` gained parameter ``show_scalebars`` analogous to :meth:`mne.viz.plot_raw` (:gh:`9815` by `Daniel McCloy`_) |
|
|
353 |
|
|
|
354 |
- The output folder name for HF_SEF datasets is now ``hf_sef`` instead of ``HF_SEF`` (:gh:`9763` by `Adam Li`_) |
|
|
355 |
|
|
|
356 |
- Deprecate ``mne.viz.utils.center_cmap`` (:gh:`9851` by `Clemens Brunner`_) |
|
|
357 |
|
|
|
358 |
- The default partial pathlength factor of :func:`mne.preprocessing.nirs.beer_lambert_law` will change from 0.1 in 0.24 to 6.0 in the next release (:gh:`9843` by `Robert Luke`_) |
|
|
359 |
|
|
|
360 |
- ``mne.preprocessing.ICA.detect_artifacts`` has been deprecated. Please use `~mne.preprocessing.ICA.find_bads_eog` and `~mne.preprocessing.ICA.find_bads_ecg` instead (:gh:`9909` by `Richard Höchenberger`_) |
|
|
361 |
|
|
|
362 |
Authors |
|
|
363 |
~~~~~~~ |
|
|
364 |
People who contributed to this release in alphabetical order |
|
|
365 |
(people with a + are first time contributors): |
|
|
366 |
|
|
|
367 |
* Adam Li |
|
|
368 |
* Alex Rockhill |
|
|
369 |
* Alexandre Gramfort |
|
|
370 |
* Britta Westner |
|
|
371 |
* Clemens Brunner |
|
|
372 |
* Daniel McCloy |
|
|
373 |
* Darin Erat Sleiter+ |
|
|
374 |
* David Julien+ |
|
|
375 |
* Denis A. Engemann |
|
|
376 |
* Dominique Makowski+ |
|
|
377 |
* Eric Larson |
|
|
378 |
* Erica Peterson |
|
|
379 |
* Evan Hathaway |
|
|
380 |
* Evgeny Goldstein+ |
|
|
381 |
* Fede Raimondo |
|
|
382 |
* Gansheng Tan+ |
|
|
383 |
* Guillaume Favelier |
|
|
384 |
* Hubert Banville |
|
|
385 |
* Jan Sosulski+ |
|
|
386 |
* Jean-Rémi King |
|
|
387 |
* Jeff Stout |
|
|
388 |
* Johann Benerradi |
|
|
389 |
* John Samuelsson+ |
|
|
390 |
* Josh Koen+ |
|
|
391 |
* Joshua Teves+ |
|
|
392 |
* Lukas Hecker+ |
|
|
393 |
* Luke Bloy |
|
|
394 |
* Marian Dovgialo+ |
|
|
395 |
* Marijn van Vliet |
|
|
396 |
* Martin Schulz |
|
|
397 |
* Mathieu Scheltienne+ |
|
|
398 |
* Mikołaj Magnuski |
|
|
399 |
* Pierre-Antoine Bannier+ |
|
|
400 |
* Reza Shoorangiz+ |
|
|
401 |
* Richard Höchenberger |
|
|
402 |
* Riessarius Stargardsky+ |
|
|
403 |
* Robert Luke |
|
|
404 |
* Romain Derollepot+ |
|
|
405 |
* Ross Maddox |
|
|
406 |
* Ryan Law+ |
|
|
407 |
* Stefan Appelhoff |
|
|
408 |
* Steve Matindi+ |
|
|
409 |
* Timothy Gates+ |
|
|
410 |
* Valerii Chirkov |
|
|
411 |
* Xiaokai Xia+ |