Version 1.13.0.dev66+ge2ec87a2e (development) (2026-05-21)#
Dependencies#
Updated minimum for:
Core dependency
matplotlib >= 3.9
Changes implemented via CI action created by Thomas Binns. (#13899)
Bugfixes#
Fix
modeparameter inget_point_spread()andget_cross_talk()to correctly map public mode names ('max','svd') to internal names, expose previously hidden modes'sum'and'maxval'in the public API, and raiseValueErrorfor invalid mode values, by new contributor Famous077. (#13754)Improved colocated OPM topomap handling by recognizing additional OPM coil types (FieldLine and Kernel), by Pragnya Khandelwal. (#13825)
Fix bug where logging messages were sometimes errantly printed, by Eric Larson. (#13843)
Fixed incorrect label orientation for nodes in the 0–90° polar range (the 12–3 o’clock quadrant) of the connectivity circle plot, by new contributor Pavel Popov. (#13855)
Fixed an indexing bug in fNIRS support in
mne.io.BaseRaw.interpolate_bads()(and related methods) that could errantly use incorrect donor channels, by new contributor Kalle Makela. (#13856)Add a
memmapkeyword argument tomne.io.BaseRaw.load_data(), allowing loading deferred raw data into a memory-mapped file after object creation, by Aniket Singh Yadav. (#13858)Fix handling of optional dependencies that don’t specify a version attribute, by new contributor Baris Talar. (#13870)
Improved error message when FreeSurfer executable is not found, by new contributor Ayushi Satodiya. (#13874)
Fix bug with
mne.preprocessing.ICA.plot_properties()when usingrejectinmne.preprocessing.ICA.fit(), by Eric Larson. (#13885)Fix bug where
pickswas ignored inmne.Epochs.apply_function()whenchannel_wise=False, by Thomas Binns. (#13894)
API changes by deprecation#
In
mne.Evoked.animate_topomap()thevminandvmaxkeyword arguments have been deprecated in favor ofvlim, by Eric Larson. (#13905)
New features#
It is now possible to concatenate raw objects with
mne.concatenate_raws()as long as they inherit fromBaseRaw, even if their specific types differ (e.g.,RawandRawArray), by Clemens Brunner. (#13263)Add a preprocessing example showing how to explore epoch quality before rejection using robust statistics (peak-to-peak amplitude, variance, and kurtosis) inspired by FASTER (Nolan et al., 2010) and Delorme et al. (2007), by Aman Srivastava. (#13710)
Add
annotation_colorsparameter tomne.io.Raw.plot()andmne.Epochs.plot()to allow users to specify custom colors for annotations by passing a dict mapping annotation description strings to colors (for example,annotation_colors=dict(bad_segment="orange")), by Clemens Brunner. (#13838)Add dark theme support (
theme="light","dark", or"auto") to the'matplotlib'browser backend used bymne.io.Raw.plot(),mne.Epochs.plot(), andmne.preprocessing.ICA.plot_sources(), by Clemens Brunner. (#13861)Fix
mne.preprocessing.nirs.beer_lambert_law()to support explicitly providedsd_distancesduring Beer-Lambert conversion. When valid source-detector distances are already present inraw.info, overriding them now emits a warning, and when all inferred distances are invalid and no explicit distances are provided, aValueErroris raised instead of silently producing zero concentrations, by new contributor Kalle Makela. (#13875)Add
overridesparameter tomne.io.read_raw_brainvision()for reading non-spec-compliant.vhdrfiles where the header contradicts the actual layout (e.g. renamed BIDS siblings, missingMarkerFile=, truncated[Channel Infos]). Accepts a dict with keysdata_fname,marker_fname,n_channels,sfreq,ch_names,units_fallback,data_orientation,data_format, andbinary_format; see the function docstring for details. Missing or emptyMarkerFile=is now also tolerated natively (per the BV Core Data Format spec). WhenMarkerFile=names a path that does not exist (common after BIDS renames),mne.io.read_raw_brainvision()now falls back to the co-located<stem>.vmrknext to the.vhdrand warns, instead of raisingFileNotFoundError, by Bruno Aristimunha. (#13884)Improved
mne.Reportby:Using
"agg"backend for 2D plots to avoid windows unnecessarily popping upImproving
add_stc()by using direct capture of brain images, allowing direct control of image size usingstc_plot_kwargs["size"]Improving
add_evokeds()evoked topomap plotting by usingmne.Evoked.animate_topomap()withbutterfly=Truerather than re-plotting each topomap in a loop
Also improved
mne.Evoked.animate_topomap()by deduplicating code withmne.Evoked.plot_topomap(). Changes by Eric Larson. (#13905)
Other changes#
Adopting the diataxis framework by improving the phantom dipole tutorial, by Carina Forster. (#13584)
Reorganized EDF submodule structure by moving private functionality into the public
mne.ionamespace to improve module consistency and avoid exposing private modules in the Credits page, by Aniket Singh Yadav. (#13673)Remove
numpy.ndarrayfromcolormapparameter inmne.viz.plot_source_estimates()to solve documentation conflict , by new contributor Lifeng Qiu Lin. (#13797)Adding checks in
mne.stats.permutation_t_test()to warn the user when provided with bad input values, by Himanshu Mahor. (#13813)Added regression coverage for colocated triaxial OPM topomap handling in
plot_joint()andICA.plot_components(), by Pragnya Khandelwal. (#13842)Added a helper to split colocated OPM overlap sets into radial and tangential channel groups, and updated topomap regression coverage to use shared triaxial OPM fixtures, by Pragnya Khandelwal. (#13847)
Fixed typos in error messages when reading measurement info, by new contributor Seth Bashford. (#13881)
Fixed the
funshape description inmne.Epochs.apply_function()’s docstring, by new contributor Bhargav Kowshik. (#13891)