Version 1.6.0 (2023-11-20)#
Enhancements#
Add support for Neuralynx data files with
mne.io.read_raw_neuralynx()
(#11969 by new contributor Kristijan Armeni and new contributor Ivan Skelin)Improve tests for saving splits with
mne.Epochs
(#11884 by Dmitrii Altukhov)Added functionality for linking interactive figures together, such that changing one figure will affect another, see Using the event system to link figures and
mne.viz.ui_events
. Current figures implementing UI events aremne.viz.plot_topomap()
andmne.viz.plot_source_estimates()
(#11685 #11891 by Marijn van Vliet)HTML anchors for
mne.Report
now reflect thesection-title
of the report items rather than using a global incrementorglobal-N
(#11890 by Eric Larson)Added public
mne.io.write_info()
to complementmne.io.read_info()
(#11918 by Eric Larson)Added option
remove_dc
to toRaw.compute_psd()
,Epochs.compute_psd()
, andEvoked.compute_psd()
, to allow skipping DC removal when computing Welch or multitaper spectra (#11769 by Nikolai Chapochnikov)Add the possibility to provide a float between 0 and 1 as
n_grad
,n_mag
andn_eeg
incompute_proj_raw
,compute_proj_epochs
andcompute_proj_evoked
to select the number of vectors based on the cumulative explained variance (#11919 by Mathieu Scheltienne)Add extracting all time courses in a label using
mne.extract_label_time_course()
without applying an aggregation function (likemean
) (#12001 by Hamza Abdelhedi)Added support for Artinis fNIRS data files to
mne.io.read_raw_snirf()
(#11926 by Robert Luke)Add helpful error messages when using methods on empty
mne.Epochs
-objects (#11306 by Martin Schulz)Add support for passing a
dict
assensor_color
to specify per-channel-type colors inmne.viz.plot_alignment()
(#12067 by Eric Larson)Add inferring EEGLAB files’ montage unit automatically based on estimated head radius using
read_raw_eeglab(..., montage_units="auto")
(#11925 by Jack Zhang, #11951 by Eric Larson)Add
EpochsSpectrumArray
andSpectrumArray
to support creating power spectra fromNumPy array
data (#11803 by Alex Rockhill)Add support for writing forward solutions to HDF5 and convenience function
mne.Forward.save()
(#12036 by Eric Larson)Refactored internals of
mne.read_annotations()
(#11964 by Paul Roujansky)Add support for drawing MEG sensors in mne coreg (#12098 by Eric Larson)
Improve string representation of
mne.Covariance
(#12181 by Eric Larson)Add
check_version=True
to mne sys_info to check for a new release on GitHub (#12146 by Eric Larson)Bad channels are now colored gray in addition to being dashed when spatial colors are used in
mne.viz.plot_evoked()
and related functions (#12142 by Eric Larson)By default MNE-Python creates matplotlib figures with
layout='constrained'
rather than the defaultlayout='tight'
(#12050, #12103 by Mathieu Scheltienne and Eric Larson)Enhance
plot_evoked_field()
with a GUI that has controls for time, colormap, and contour lines (#11942 by Marijn van Vliet)Add
mne.viz.ui_events.UIEvent
linking for interactive colorbars, allowing users to link figures and change the colormap and limits interactively. This supportsplot_evoked_topomap()
,plot_ica_components()
,plot_tfr_topomap()
,plot_projs_topomap()
,plot_image()
, andplot_image()
(#12057 by Santeri Ruuskanen)Add example KIT phantom dataset in
mne.datasets.phantom_kit.data_path()
and KIT phantom dataset tutorial (#12105 by Judy D Zhu and Eric Larson)make_metadata()
now acceptstmin=None
andtmax=None
, which will bound the time window used for metadata generation by event names (instead of a fixed time). That way, you can now for example generate metadata spanning from one cue or fixation cross to the next, even if trial durations vary throughout the recording (#12118 by Richard Höchenberger)Add support for passing multiple labels to
mne.minimum_norm.source_induced_power()
(#12026 by Erica Peterson, Eric Larson, and Daniel McCloy )Added documentation to
mne.io.Raw.set_montage()
andmne.add_reference_channels()
to specify that montages should be set after adding reference channels (#12160 by Jacob Woessner)Add argument
splash
to the function using theqt
browser backend to allow enabling/disabling the splash screen (#12185 by Mathieu Scheltienne)ICA
’s HTML representation (displayed in Jupyter notebooks andmne.Report
) now includes all optional fit parameters (e.g., max. number of iterations) (#12194, by Richard Höchenberger)
Bugs#
Fix bug where
mne.io.read_raw_gdf()
would fail due to improper usage ofnp.clip
(#12168 by new contributor Rasmus Aagaard)Fix bugs with
mne.preprocessing.realign_raw()
where the start ofother
was incorrectly cropped; and onsets and durations inother.annotations
were left unsynced with the resampled data (#11950 by new contributor Qian Chu)Fix bug where
encoding
argument was ignored when reading annotations from an EDF file (#11958 by new contributor Andrew Gilbert)Mark tests
test_adjacency_matches_ft
andtest_fetch_uncompressed_file
as network tests (#12041 by new contributor Maksym Balatsko)Fix bug with
mne.channels.read_ch_adjacency()
(#11608 by new contributor Ivan Zubarev)Fix bug where
epochs.get_data(..., scalings=...)
would errantly modify the preloaded data (#12121 by new contributor Pablo Mainar and Eric Larson)Fix bugs with saving splits for
Epochs
(#11876 by Dmitrii Altukhov)Fix bug with multi-plot 3D rendering where only one plot was updated (#11896 by Eric Larson)
Fix bug where
verbose
level was not respected inside parallel jobs (#12154 by Eric Larson)Fix bug where subject birthdays were not correctly read by
mne.io.read_raw_snirf()
(#11912 by Eric Larson)Fix bug where warnings were emitted when computing spectra for channels marked as bad (#12186 by Eric Larson)
Fix bug with
mne.chpi.compute_head_pos()
for CTF data where digitization points were modified in-place, producing an incorrect result during a save-load round-trip (#11934 by Eric Larson)Fix bug where non-compliant stimulus data streams were not ignored by
mne.io.read_raw_snirf()
(#11915 by Johann Benerradi)Fix bug with
pca=False
inmne.minimum_norm.compute_source_psd()
(#11927 by Alex Gramfort)Fix bug with notebooks when using PyVista 0.42 by implementing
trame
backend support (#11956 by Eric Larson)Removed preload parameter from
mne.io.read_raw_eyelink()
, because data are always preloaded no matter what preload is set to (#11910 by Scott Huberty)Fix bug with
mne.viz.Brain.get_view()
where callingshow_view()
with returned parameters would change the view (#12000 by Eric Larson)Fix bug with
mne.viz.Brain.show_view()
wheredistance=None
would change the view distance (#12000 by Eric Larson)Fix bug with
add_annotation()
when reading an annotation from a file with both hemispheres shown (#11946 by Marijn van Vliet)Fix bug with reported component number and errant reporting of PCA explained variance as ICA explained variance in
mne.Report.add_ica()
(#12155, #12167 by Eric Larson and Richard Höchenberger)Fix bug with axis clip box boundaries in
mne.viz.plot_evoked_topo()
and related functions (#11999 by Eric Larson)Fix bug with
subject_info
when loading data from and exporting to EDF file (#11952 by Paul Roujansky)Fix bug where
mne.Info
HTML representations listed all channel counts instead of good channel counts under the heading “Good channels” (#12145 by Eric Larson)Fix rendering glitches when plotting Neuromag/TRIUX sensors in
mne.viz.plot_alignment()
and related functions (#12098 by Eric Larson)Fix bug with delayed checking of
info["bads"]
(#12038 by Eric Larson)Fix bug with mne coreg where points inside the head surface were not shown (#12147, #12164 by Eric Larson)
Fix bug with
mne.viz.plot_alignment()
wheresensor_colors
were not handled properly on a per-channel-type basis (#12067 by Eric Larson)Fix handling of channel information in annotations when loading data from and exporting to EDF file (#11960 #12017 #12044 by Paul Roujansky)
Add missing
overwrite
andverbose
parameters toTransform.save()
(#12004 by Marijn van Vliet)Fix parsing of eye-link
Annotations
whenapply_offsets=False
is provided toread_raw_eyelink()
(#12003 by Mathieu Scheltienne)Correctly prune channel-specific
Annotations
when creatingEpochs
without the channel(s) included in the channel specific annotations (#12010 by Mathieu Scheltienne)Fix
plot_volume_source_estimates()
withVolSourceEstimate
which include a list of vertices (#12025 by Mathieu Scheltienne)Add support for non-ASCII characters in Annotations, Evoked comments, etc when saving to FIFF format (#12080 by Daniel McCloy)
Correctly handle passing
"eyegaze"
or"pupil"
tomne.io.Raw.pick()
(#12019 by Scott Huberty)Fix bug with
mne.time_frequency.Spectrum.plot()
and related functions where bad channels were not marked (#12142 by Eric Larson)Fix bug with
plot_raw()
where changingMNE_BROWSER_BACKEND
viaset_config()
would have no effect within a Python session (#12078 by Santeri Ruuskanen)Improve handling of
method
argument in the channel interpolation function to supportstr
and raise helpful error messages (#12113 by Mathieu Scheltienne)Fix combination of
DIN
event channels into a single synthetic trigger channelSTI 014
by the MFF reader ofmne.io.read_raw_egi()
(#12122 by Mathieu Scheltienne)Fix bug with
mne.io.read_raw_eeglab()
andmne.read_epochs_eeglab()
where automatic fiducial detection would fail for certain files (#12165 by Clemens Brunner)Fix concatenation of
raws
withnp.nan
in the device to head transformation (#12198 by Mathieu Scheltienne)Fix bug with
mne.viz.plot_compare_evokeds()
where the title was not displayed whenaxes='topo'
(#12192 by Jacob Woessner)Fix bug with
mne.io.read_raw_cnt()
where the bad channels were not properly read (#12189 by Jacob Woessner)Fix bug where iterating over
Raw
would result in an error (#12205 by Clemens Brunner)
API changes#
The default for
mne.Epochs.get_data()
ofcopy=False
will change tocopy=True
in 1.7. Set it explicitly to avoid a warning (#12121 by new contributor Pablo Mainar and Eric Larson)mne.preprocessing.apply_maxfilter
andmne maxfilter
have been deprecated and will be removed in 1.7. Usemne.preprocessing.maxwell_filter()
(see this tutorial) in Python or the command-line utility from MEGINmaxfilter
andmne.bem.fit_sphere_to_headshape()
instead (#11938 by Eric Larson)mne.io.kit.read_mrk()
reading pickled files is deprecated using something likenp.savetxt(fid, pts, delimiter="\t", newline="\n")
to save your points instead (#11937 by Eric Larson)Replace legacy
inst.pick_channels
andinst.pick_types
withinst.pick
(whereinst
is an instance ofRaw
,Epochs
, orEvoked
) wherever possible (#11907 by Clemens Brunner)The
reset_camera
parameter has been removed in favor ofdistance="auto"
inmne.viz.set_3d_view()
,mne.viz.Brain.show_view()
, and related functions (#12000 by Eric Larson)Several unused parameters from
mne.gui.coregistration()
are now deprecated: tabbed, split, scrollable, head_inside, guess_mri_subject, scale, andadvanced_rendering
. All arguments are also now keyword-only. (#12147 by Eric Larson)