Version 1.5.0 (2023-08-14)#
Enhancements#
Add reader for NSx files (Blackrock Microsystems Data Acquisition Systems) (#11432 by new contributor Proloy Das)
Add
cmapargument for themne.viz.plot_sensors()(#11720 by new contributor Gennadiy Belonosov)Return unmodified instance if new sampling frequency is identical to the original in
mne.io.Raw.resample(),mne.Epochs.resample(),mne.Evoked.resample()andmne.SourceEstimate.resample()(#11736 by new contributor Gennadiy Belonosov)When failing to locate a file, we now print the full path in quotation marks to help spot accidentally added trailing spaces (#11718 by Richard Höchenberger)
Add standard montage lookup table for
easycap-M43(#11744 by new contributor Diptyajit Das)Added
mne.preprocessing.eyetracking.Calibrationto store eye-tracking calibration info, andmne.preprocessing.eyetracking.read_eyelink_calibration()to read calibration data from EyeLink systems (#11719 by Scott Huberty)Ocular
mne.Annotationsread in bymne.io.read_raw_eyelink()are now channel aware. This means if the left eye blinked, the associated annotation will store this in the'ch_names'key. (#11746 by Scott Huberty)Added
mne.preprocessing.eyetracking.interpolate_blinks()to linear interpolate eyetrack signals during blink periods. (#11740 by Scott Huberty)Added a section for combining eye-tracking and EEG data to the preprocessing tutorial “working with eye tracker data in MNE-Python” (#11770 by Scott Huberty)
Added a
show_bytesoption to mne show_fiff to show byte offsets (#11800 by Eric Larson)Add
mne.Annotations.count()andmne.count_annotations()to count unique annotations (#11796 by Clemens Brunner)Split the display of
mne.preprocessing.ICA.plot_overlay()between sensor types and display the RMS for MEG sensors and the GFP for EEG sensors in the second panel instead of the channel average (#11830 by Mathieu Scheltienne)Add
mne.Info.set_channel_types(),mne.Info.rename_channels(),mne.Info.plot_sensors(),mne.Info.anonymize(),mne.Info.set_meas_date()(#11839 by Alex Rockhill)Curry and NEDF raw files can now also be read with the generic
mne.io.read_raw()function (#11841 by Richard Höchenberger)
Bugs#
Fix bug in
mne.bem.convert_flash_mris()to handle missing “flash5_reg.mgz” when processing “flash30” data. (#11842 by new contributor Hamza Abdelhedi)Fix bug where epochs
event_idwas not kept bymne.channels.combine_channels()(#11786 by new contributor Samuel Louviot)Fix bug where user-provided codec was not used to read annotations when loading EEGLAB
.setfiles (#11773 by new contributor Yiping Zuo)Fix bug that required curv.*h files to create Brain object (#11704 by new contributor Aaron Earle-Richardson)
Extended test to highlight bug in
mne.stats.permutation_t_test()(#11575 by new contributor Joshua Calder-Travis)Fix bug that used wrong indices for line/label styles (sometimes causing an
IndexError) inmne.preprocessing.ICA.plot_sources()under certain conditions (#11808 by new contributor Joshua Calder-Travis)Fix bug with
read_raw_snirf()to handle files with measurement time containing milliseconds (#11804 by new contributor Daniel Tse)Fix loading of EDF with mixed sampling frequencies with
mne.io.read_raw_edf(): Upsampling is now applied to the entire signal and no longer block based, significantly reducing edge artifacts (#11549 by Simon Kern)Fix bug where
mne.io.read_raw_cnt()imports unnecessary durations (#11828 by Jacob Woessner)Fix bug where
mne.viz.Brain.add_volume_labels()used an incorrect orientation (#11730 by Alex Rockhill)Fix bug with
mne.forward.restrict_forward_to_label()where cortical patch information was not adjusted (#11694 by Eric Larson)Fix bug with PySide6 compatibility (#11721 by Eric Larson)
Fix bug with
mne.io.Raw,mne.SourceEstimate, and related classes where thedecimateandshift_timemethods were errantly added (#11853 by Eric Larson)Fix hanging interpreter with matplotlib figures using
mne/viz/_mpl_figure.pyin spyder console and jupyter notebooks (#11696 by Mathieu Scheltienne)Fix bug with overlapping text for
mne.Evoked.plot()(#11698 by Alex Rockhill)Fix bug with
mne.preprocessing.corrmap()where the template iteration had non-standard map averaging (#11857 by Eric Larson)For
mne.io.read_raw_eyelink(), the default value of thegap_descriptionparameter is now'BAD_ACQ_SKIP', following MNE convention (#11719 by Scott Huberty)Fix bug with
mne.io.read_raw_fil()where datasets without sensor positions would not import (#11733 by George O’Neill)Fix bug with
mne.chpi.compute_chpi_snr()where cHPI being off for part of the recording or bad channels being defined led to an error or incorrect behavior (#11754, #11755 by Eric Larson)Allow int-like for the argument
idofmake_fixed_length_events(#11748 by Mathieu Scheltienne)Fix bugs with
mne.decodingclasses (#11846 by Eric Larson): -mne.decoding.ReceptiveFieldnow setsrf.fit_intercept_duringfit()rather than overwritingrf.fit_intercept-mne.decoding.SlidingEstimatornow returns the samedtypeasX(usuallyfloat64) insl.transform(X)rather than always returningintFix bug with
mne.beamformer.make_lcmv()where the source space was not checked properly when thelabelargument was provided (#11852 by Eric Larson)Fix bug where
mne.io.read_raw_egi()did not properly set the EEG reference location for the reference channel itself (#11822 by Eric Larson)Fix bug with legacy
plot_psd()method where passed axes were not used (#11778 by Daniel McCloy)blink
mne.Annotationsread in bymne.io.read_raw_eyelink()now begin with'BAD_', i.e.'BAD_blink', because ocular data are missing during blinks. (#11746 by Scott Huberty)Fix bug where mne show_fiff could fail with an ambiguous error if the file is corrupt (#11800 by Eric Larson)
Fix bug where annotation FIF files lacked an end block tag (#11800 by Eric Larson)
Fix display of
Annotationsinmne.preprocessing.ICA.plot_sourceswhen therawhasraw.first_samp != 0and doesn’t have a measurement date (#11766 by Mathieu Scheltienne)Fix bug in read_raw_eyelink, where STATUS information of samples was always assumed to be in the file. Performance and memory improvements were also made. (#11823 by Scott Huberty)
Fix closing of a topographic map created from an interactive drag on an Evoked or PSD plot (#11862 by Mathieu Scheltienne)
API changes#
The
baselineargument can now be array-like (e.g.list,tuple,np.ndarray, …) instead of only atuple(#11713 by Clemens Brunner)The
eventsandevent_idparameters ofEpochs.plot()now accept boolean values; see docstring for details (#11445 by Daniel McCloy and Clemens Brunner)Deprecated
gap_descriptionkeyword argument ofmne.io.read_raw_eyelink(), which will be removed in mne version 1.6, in favor of usingmne.Annotations.rename()(#11719 by Scott Huberty)