Version 1.10.0 (2025-07-14)#
Bugfixes#
Fixed behavior of
mne.viz.plot_source_estimates()where thetitlewas not displayed properly, by new contributor Shristi Baral. (#12828)Return events when requested even when current matches the desired sfreq in
mne.io.Raw.resample()by new contributor Roy Eric Wieske. (#13070)Fix bug in
mne.io.read_raw_gdf(), by new contributor Rongfei Jin. (#13113)Fixed CTF cHPI coil location detection in
mne.chpi.extract_chpi_locs_ctf()by new contributor Shresth Keshari. (#13123)Fix bug with sampling frequency estimation in snirf files, by Daniel McCloy and new contributor Yixiao Shen. (#13184)
Fix bug where
mne.gui.coregistration()would emit an error for some CTF datasets, by new contributor Wei Xu. (#13218)Improved the configuration json to handle with parallel access with file lock configuration by new contributor Bruno Aristimunha. (#13241)
Update
mne.viz.plot_alignment()and related functions to support PyVista deprecation of positional arguments by new contributor user27182. (#13277)Fixed bug where
mne.preprocessing.maxwell_filter_prepare_emptyroom()would not reliably identify meg channel types for matching bads across emptyroom and task, by new contributor Harrison Ritz. (#13280)Fixed bug where saving FIFF files failed when
info["subject_info"]["birthday"]was apandas.Timestampinstead ofdatetime.date, by new contributor Laurent Le Mentec. (#13284)Fixed almost-white (barely visible) channel traces when using
spatial_colors=Trueinmne.io.Raw.plot_psd(),mne.Epochs.plot_psd(), and related PSD-plot helpers, by new contributor Mojackhak. (#13286)Fix bug where
mne.export.export_raw()does not correct for recording start time (raw.first_time) when exporting Raw instances to EDF or EEGLAB formats, by Qian Chu. (#12656)Fix epoch indexing in
mne.time_frequency.EpochsTFRArraywhen initialising the class with the defaultdrop_logparameter, by Thomas Binns. (#13028)Fix loading and saving of
EpochsSpectrumobjects that contain slash-separators in their condition names, by Daniel McCloy. (#13042)Fix input boxes for the max value not showing when plotting fieldlines with
plot_evoked_field()whenshow_density=False, by Marijn van Vliet. (#13048)Fix bug with saving of anonymized data when helium info is present in measurement info, by Eric Larson. (#13056)
Fix computation of time intervals in
mne.preprocessing.compute_fine_calibration()by Eric Larson. (#13062)Fix bug in the colorbars created by
mne.viz.plot_evoked_topomap()by Santeri Ruuskanen. (#13063)Improved sklearn class compatibility and compliance, which resulted in some parameters of classes having an underscore appended to their name during
fit, such as:mne.decoding.FilterEstimatorparameterpickspassed to the initializer is set asest.picks_mne.decoding.UnsupervisedSpatialFilterparameterestimatorpassed to the initializer is set asest.estimator_
Unused
verboseclass parameters (that had no effect) were removed fromPSDEstimator,TemporalFilter, andFilterEstimatoras well. Changes by Eric Larson. (#13065)Fix bug where taper weights were not correctly applied when computing multitaper power with
mne.Epochs.compute_tfr()andmne.time_frequency.tfr_array_multitaper(), by Thomas Binns. (#13067)Fix bug cause by unnecessary assertion when loading mixed frequency EDFs without preloading
mne.io.read_raw_edf()by Simon Kern. (#13069)Fix bug with automated Mesa 3D detection for proper 3D option setting on systems with software rendering, by Eric Larson. (#13082)
Fix bug with reading digitization points from digitization strings with newer MEGIN systems, by Eric Larson. (#13083)
Fix bug when loading certain EEGLAB files that do not contain a
nodatchansfield, by Clemens Brunner. (#13097)Do not convert the first “New Segment” marker in a BrainVision file to an annotation, as it only contains the recording date (which is already available in
info["meas_date"]), by Clemens Brunner. (#13100)Take units (m or mm) into account when drawing
plot_evoked_field()on top ofBrain, by Marijn van Vliet. (#13101)Improved the handling of problematic MFF files in
mne.io.read_raw_egiby Scott Huberty. (#13145)Fix bug in
mne.bem.make_watershed_bem()where function would fail iftalairach_with_skull.ltadid not exist due to changes in Freesurfer by Peter Molfese. (#13172)Fix bug where
mne.export.export_raw()might allocate huge intermediate arrays unnecessarily, when padding data blocks during export to EDF format, by Daniel McCloy. (#13174)Fix bug with least-squares fitting of head origin using digitization points in
mne.preprocessing.maxwell_filter(), by Eric Larson. (#13178)Fix bug with
mne.viz.plot_alignment()whereeeg="projected"was not plotted, by Eric Larson. (#13179)Fixed bug with filter padding type in
mne.io.Raw.plot()and related functions to reduce edge ringing during data display, by Eric Larson. (#13183)Handle channels with potential electrode location in
maxwell_filter_prepare_emptyroom(), by Mathieu Scheltienne. (#13208)Fixed bug where the file_id is not set when the file contains a directory at the end of the file, by Théodore Papadopoulo. (#13268)
Fix bug with
mne.simulation.simulate_raw()andmne.simulation.SourceSimulatorwhere using different head positions withhead_posand a BEM would raise an error, by Eric Larson. (#13276)Fix y-axis label in PSD plot when
dB=Trueto show a more conventional label (i.e., dB/Hz or dB/√Hz), by Clemens Brunner. (#13298)Fix bug in
mne.sys_info()where calling it in Windows could lead to a an error while trying to get the amount of available memory, by Eric Larson. (#13310)Change default pupil unit scalings from micrometrs to millimeters by Scott Huberty (#13314)
Fix
mne.channels.DigMontage.rename_channels()so that the changed montage is returned instead ofNone, by Stefan Appelhoff. (#13320)
API changes by deprecation#
The backward-compatible defaults in
mne.preprocessing.maxwell_filter()ofst_overlap=Falseand`mc_interp=Nonewill change to their smooth variantsTrueand"hann", respectively, in 1.11, by Eric Larson. (#13080)
New features#
Add PCA-OBS preprocessing for the removal of heart-artefacts from EEG or ESG datasets via
mne.preprocessing.apply_pca_obs(), by new contributor Emma Bailey and new contributor Steinn Hauser Magnusson. (#13037)Add
mne.Evoked.interpolate_to()to allow interpolating EEG data to other montages, by new contributor Antoine Collas. (#13044)Allow for
topomapplotting of optically pumped MEG (OPM) sensors with overlapping channel locations. When channel locations overlap, plot the most radially oriented channel. By new contributor Harrison Ritz. (#13144)Improved error message in
mne.io.Raw.save()when attempting to overwrite a file, by new contributor Sebastian Jentschke (#13233)Add new
selectparameter tomne.viz.plot_evoked_topo()andmne.Evoked.plot_topo()to toggle lasso selection of sensors, by Marijn van Vliet. (#12071)Add source space(s) visualization(s) in
mne.Report.add_forward(), by Victor Ferat. (#12848)Added the option to return taper weights from
mne.time_frequency.tfr_array_multitaper(), and taper weights are now stored in themne.time_frequency.BaseTFRobjects, by Thomas Binns. (#12910)Add
fig.mnecontainer forColorbarinplot_connectivity_circleto allow users to access it directly, by Santeri Ruuskanen. (#13019)Added
mne.time_frequency.combine_tfr()to allow combining TFRs across tapers, by Thomas Binns. (#13054)Add the function
mne.time_frequency.combine_spectrum()for combining data acrossmne.time_frequency.Spectrumobjects, and allowmne.grand_average()to operate onmne.time_frequency.Spectrumobjects, by Thomas Binns. (#13058)Add smooth processing of tSSS windows (using overlap-add) and movement compensation (using smooth interpolation of head positions) in
mne.preprocessing.maxwell_filter()viast_overlapand`mc_interpoptions, respectively, by Eric Larson. (#13080)The
mne.Info.save()method now has anoverwriteand averboseparameter, by Stefan Appelhoff. (#13107)Add
upsamplingoption tomne.make_field_map()to allow upsampling MEG helmet surfaces for plotting, by Eric Larson. (#13179)New argument
sfreqtomne.io.read_raw_snirf(), to allow overriding the sampling frequency estimated from (possibly jittered) sampling periods in the file, by Daniel McCloy. (#13184)Add an
extrasattribute tomne.Annotationsfor storing arbitrary metadata, by Pierre Guetschel. (#13228)mne.Report.add_trans()now accepts"auto"and"fsaverage"as arguments for thetransparameter, by Stefan Appelhoff. (#13232)Add a new parameter
plot_kwargstomne.Report.add_trans(), to control low level properties of the visualization, by Stefan Appelhoff. (#13234)channel_indices_by_type()now has anexcludeparameter, by Stefan Appelhoff. (#13293)
Other changes#
Add test analytics functionality to track and analyze test performance, by new contributor Katia Al-Amir. (#13225)