Version 1.2.0 (2022-10-11)#
Enhancements#
Add
vmin
andvmax
parameters tomne.Evoked.animate_topomap()
(#11073 by new contributor Mats van Es)Enable common average reference projection for ECoG, sEEG, and DBS data (optionally jointly with
joint=True
) inset_eeg_reference()
and related functions/methods (#10656 by new contributor Moritz Gerster and Eric Larson)The
trans
parameter inmne.make_field_map()
now accepts aPath
object, and uses standardised loading logic (#10784 by new contributor Andrew Quinn)Add support for computing forward solutions using OpenMEEG (#11011 by Alex Gramfort and Eric Larson)
EEGLAB files (saved as MAT versions less than v7.3) can now be imported with
mne.io.read_raw_eeglab()
without the optional dependencypymatreader
(#11006 by Clemens Brunner)Add eight source estimate comparison metrics to new submodule
mne.simulation.metrics
(#6233 by Kostiantyn Maksymenko and Alex Gramfort)Add
mne.time_frequency.csd_tfr()
to compute cross-spectral density frommne.time_frequency.EpochsTFR
(#10986 by Alex Rockhill)Improve
repr()
formne.minimum_norm.InverseOperator
when loose orientation is used (#11048 by Eric Larson)Add support for vector and volume source estimates in
mne.minimum_norm.get_point_spread()
andmne.minimum_norm.get_cross_talk()
(#8639, #11083 by Olaf Hauk, Marijn van Vliet, Alex Gramfort, and Eric Larson)mne.Epochs.plot_psd_topomap()
now suppresses redundant colorbars whenvlim='joint'
(#11051 by Daniel McCloy)Add
starting_affine
keyword argument tomne.transforms.compute_volume_registration()
to initialize an alignment with an affine (#11020 by Alex Rockhill)Add HTML representation for
Evoked
in Jupyter Notebooks (#11075 by Valerii Chirkov and Andrew Quinn)Add support for
temperature
andgsr
(galvanic skin response, i.e., electrodermal activity) channel types (#11090, #11108 by Eric Larson and Richard Höchenberger)Allow
mne.beamformer.make_dics()
to takepick_ori='vector'
to compute vector source estimates (#10980 by Alex Rockhill)Add
units
parameter tomne.io.read_raw_edf()
in case units are missing from the file (#11099 by Alex Gramfort)Add
on_missing
functionality to all of our classes that have adrop_channels
method, to control what happens when channel names are not in the object (#11077 by Andrew Quinn)Improve interpolation of bridged electrodes with
interpolate_bridged_electrodes
(#11094 by Mathieu Scheltienne)Add
mne.minimum_norm.apply_inverse_tfr_epochs()
to apply inverse methods to time-frequency resolved epochs (#11095 by Alex Rockhill)Add support for multiple probes via multiple CSV files passed to
mne.io.read_raw_hitachi()
(#11186 by Eric Larson)Add
mne.chpi.get_active_chpi()
to retrieve the number of active hpi coils for each time point (#11122 by Eduard Ort)Add example of how to obtain time-frequency decomposition using narrow bandpass Hilbert transforms to Time-frequency on simulated data (Multitaper vs. Morlet vs. Stockwell vs. Hilbert) (#11116 by Alex Rockhill)
Add
==
and!=
comparison betweenmne.Projection
objects (#11147 by Mathieu Scheltienne)Parse automatically temperature channel with
mne.io.read_raw_edf()
(#11150 by Eric Larson and Alex Gramfort)Add
unscale
option tomne.head_to_mri()
to facilitate working with surrogate MRI data (#11185 by Eric Larson)Add
encoding
parameter tomne.io.read_raw_edf()
andmne.io.read_raw_bdf()
to support custom (non-UTF8) annotation channel encodings (#11154 by Clemens Brunner)mne.preprocessing.ICA
gained a new method,get_explained_variance_ratio()
, that allows the retrieval of the proportion of variance explained by ICA components (#11141 by Richard Höchenberger)Add
on_baseline
tomne.preprocessing.ICA.apply()
,mne.preprocessing.ICA.plot_overlay()
, andmne.viz.plot_ica_overlay()
to allow reapplying baseline correction after applying ICA (#11232 by Eric Larson)Add config option
MNE_REPR_HTML
to disable HTML repr in notebook environments (#11159 by Clemens Brunner)
Bugs#
Fix bug in
mne.io.Raw.crop()
where argumentinclude_tmax
was not considered in checkingtmax
in bounds (#11196 by Lukas Gemein)Fix bug in
mne.io.read_raw_eeglab()
where unlabeled fiducials caused reading errors (#11074 by new contributor Sebastiaan Mathot)Fix bug in
mne.time_frequency.read_csd()
that returnedprojs
as a list of dict instead ofmne.Projection
(#11072 by new contributor Chetan Gohil)Fix bug in
mne.decoding.TimeFrequency()
that prevented cloning if constructor arguments were modified (#11004 by new contributor Daniel Carlström Schad)Fix bug in
repr
of decoding estimator classes (e.g.,mne.decoding.SlidingEstimator
) where the parameters where not stored in the result string but instead just printed tosys.stdout
(#11190 by new contributor Dominik Wetzel)Document
height
andweight
keys ofsubject_info
entry inmne.Info
(#11019 by new contributor Sena Er)Fix bug in
mne.viz.Brain
constructor where the first argument was namedsubject_id
instead ofsubject
(#11049 by Eric Larson)Fix bug in mne coreg where the MEG helmet position was not updated during ICP fitting (#11084 by Eric Larson)
Fix bug in
read_raw_curry()
, andread_raw_cnt()
where digitization points were not read properly (#11145 by Eric Larson)Fix bug in
mne.minimum_norm.apply_inverse_epochs()
where the average EEG projector was not checked properly (#11182 by Eric Larson)Fix bug in
mne.viz.plot_filter()
when plotting filters created usingoutput='ba'
mode withcompensation
turned on. (#11040 by Marian Dovgialo)Fix bugs in documentation of surface
SourceSpaces
(#11171 by Eric Larson)Fix bug in
mne.viz.plot_compare_evokeds()
where automatic legend labels could be excessively long; they are now abbreviated with...
when necessary (#11181 by Eric Larson)Fix bugs with
verbose='error'
not being used properly and allowing warnings through (#11193 by Eric Larson)Fix bug in
mne.io.read_raw_bti()
where EEG, EMG, and H/VEOG channels were not detected properly, and many non-ECG channels were called ECG. The logic has been improved, and any channels of unknown type are now labeled asmisc
(#11102 by Eric Larson)Fix bug in
mne.viz.plot_topomap()
when providingsphere="eeglab"
(#11081 by Mathieu Scheltienne)Fix bug in
mne.Dipole.to_mri()
where MRI RAS rather than MRI surface RAS was returned (#11185 by Eric Larson)Fix bug in
epochs.save
where theverbose
parameter defaulted toTrue
instead ofNone
(#11191 by Eric Larson)The string and HTML representation of
mne.preprocessing.ICA
reported incorrect values for the explained variance. This information has been removed from the representations, and should instead be retrieved via the newget_explained_variance_ratio()
method (#11141 by Richard Höchenberger)Fix bug in
mne.Evoked.plot()
and related methods where anp.nan
location value in any channel causes spatial colours to fail (#6870 by Simeon Wong)Fix bug in
mne.preprocessing.ICA.find_bads_muscle()
where epochs caused an error when passed as theinst
(#11197 by Alex Rockhill)Fix bug in readers where EEG coordinates were assumed to be in head coordinates but no fiducial points were present. Estimated fiducial locations will now be added automatically to reflect the assumption of locations being in the head coordinate frame (#11212 by Stefan Appelhoff and Eric Larson)
The duration of raw data sometimes wasn’t displayed correctly in Jupyter notebooks by omitting fractions of a second. We now always round up to the next full second so a duration of less than 1 second will not be displayed as a duration of zero anymore (#11203 by Richard Höchenberger)
Fix bug in
mne.Report.add_ica()
and where baselines were not reapplied to the data wheninst
is Epochs or Evoked (#11232 by Eric Larson)
API changes#
In meth:
mne.Evoked.plot
, the default value of thespatial_colors
parameter has been changed to'auto'
, which will use spatial colors if channel locations are available (#11201 by new contributor Hüseyin Orkun Elmas and Daniel McCloy)Starting with this release we now follow the Python convention of using
FutureWarning
instead ofDeprecationWarning
to signal user-facing changes to our API (#11120 by Daniel McCloy)The
names
parameter ofmne.viz.plot_arrowmap()
andmne.viz.plot_regression_weights()
has been deprecated; sensor names will be automatically drawn from theinfo_from
ormodel
parameter (respectively), and can be hidden, shown, or altered via theshow_names
parameter (#11123 by Daniel McCloy)The
bands
parameter ofmne.Epochs.plot_psd_topomap()
now acceptsdict
input; legacytuple
input is supported, but discouraged for new code (#11050 by Daniel McCloy)The
mne.head_to_mri()
new function parameterkind
default will change from'ras'
to'mri'
(#11185 by Eric Larson)The
show_toolbar
argument tomne.viz.Brain
is being removed by deprecation (#11049 by Eric Larson)New classes
Spectrum
andEpochsSpectrum
, created via new methodsRaw.compute_psd()
,Epochs.compute_psd()
, andEvoked.compute_psd()
(#10184 by Daniel McCloy)Functions/methods for plotting topomaps now have more consistent signatures; most have gained parameters for finer control of the topomap image and/or colorbar. See docstrings for details (#11123 by Daniel McCloy)
In
mne.viz.plot_topomap()
, passingaxes=None
will now create a newFigure
instead of plotting into the current axes (#11123 by Daniel McCloy)In
mne.viz.plot_topomap()
, the parametershow_names
has been deprecated, use thenames
parameter instead (#11123 by Daniel McCloy)In
mne.viz.plot_topomap()
,plot_tfr_topomap()
,plot_evoked_topomap()
, and related class methodsmne.Covariance.plot_topomap()
,mne.Evoked.plot_topomap()
, andmne.time_frequency.AverageTFR.plot_topomap()
: the parametersvmin
andvmax
are deprecated in favor ofvlim
, for consistency with otherplot_topomap
functions and methods (#11123 by Daniel McCloy)In
mne.viz.plot_tfr_topomap()
,plot_evoked_topomap()
, and related class methodsmne.Covariance.plot_topomap()
,mne.Evoked.plot_topomap()
, andmne.time_frequency.AverageTFR.plot_topomap()
: thetitle
parameter has been deprecated; use matplotlib’sfig.suptitle()
instead (#11123 by Daniel McCloy)In functions/methods for plotting topomaps, the
outlines='skirt'
option is deprecated; usesphere='eeglab'
for similar functionality (#11123 by Daniel McCloy)The
mne.epochs.add_channels_epochs
function has been deprecated in favor ofepochs.add_channels
(#11180 by Eric Larson)The PSD functions that operate on Raw/Epochs/Evoked instances (
mne.time_frequency.psd_welch
andmne.time_frequency.psd_multitaper
) are deprecated; for equivalent functionality createSpectrum
orEpochsSpectrum
objects instead and then runspectrum.get_data(return_freqs=True)
(#10184 by Daniel McCloy)Added new class
mne.preprocessing.EOGRegression
to allow more flexibility when using regression to reduce EOG artifacts (#11046 by Marijn van Vliet)New parameter
exclude
added tomne.preprocessing.regress_artifact()
to prevent regression from being applied to certain channels (#11046 by Marijn van Vliet)