- Add :func:`mne.cuda.set_cuda_device` and config variable
MNE_CUDA_DEVICE
to select among multiple GPUs (by numeric device ID) by `Daniel McCloy`_. - Add :func:`mne.channels.make_standard_montage` to create :class:`mne.channels.DigMontage` from templates by `Joan Massich`_ and `Alex Gramfort`_.
- Add :func:`mne.channels.compute_dev_head_t` to compute Device-to-Head transformation from a montage by `Joan Massich`_ and `Alex Gramfort`_.
- Add :func:`mne.channels.read_dig_fif` to read digitization coordinates from
.fif
files by `Joan Massich`_ and `Alex Gramfort`_. - Add :func:`mne.channels.read_dig_egi` to read digitization coordinates from EGI
.xml
files by `Joan Massich`_ and `Alex Gramfort`_. - Add :func:`mne.channels.read_dig_polhemus_isotrak` and :func:`mne.channels.read_polhemus_fastscan` to read Polhemus data by `Joan Massich`_
- Add
mne.channels.read_dig_captrack
to read BrainVision CapTrak (BVCT) digitization coordinate files by `Stefan Appelhoff`_ and `Joan Massich`_ - Add :func:`mne.channels.make_dig_montage` to create :class:`mne.channels.DigMontage` objects out of np.arrays by `Joan Massich`_
- Add :func:`mne.channels.read_custom_montage` to read various EEG electrode locations files by `Joan Massich`_ and `Alex Gramfort`_.
- Add support for making epochs with duplicated events, by allowing three policies: "error" (default), "drop", or "merge" in :class:`mne.Epochs` by `Stefan Appelhoff`_
- Allow :meth:`mne.Annotations.crop` to support negative
tmin
andtmax
by `Joan Massich`_ - Unknown events code in GDF are now visible in the
event_id
by `Théodore Papadopoulo`_ - Now :func:`mne.io.read_raw_ctf` populates
raw.annotations
with the markers inMarkerFile.mrk
if any by `Joan Massich`_ - Add options for controlling the use of the
-T1
flag and the location of the brainmask output in :ref:`mne watershed_bem` by `Eric Larson`_ - Add support to :func:`mne.read_annotations` to read CTF marker files by `Joan Massich`_
- Do not convert effective number of averages (
nave
attribute of :class:`mne.Evoked`) to integer except when saving to FIFF file by `Daniel McCloy`_. - Add automatic fiducial position estimation in :ref:`mne coreg` using MNI Talairach fiducial locations in :func:`mne.coreg.get_mni_fiducials` by `Jon Houck`_ and `Eric Larson`_
- Add support for :ref:`mne coreg` scaling surrogate subjects without surface reconstructions, such as those created for volumetric analyses only (e.g., with
recon-all -autorecon1
) by `Eric Larson`_ - Add reader for Curry data in :func:`mne.io.read_raw_curry` by `Dirk Gütlin`_
- Butterfly channel plots now possible for :meth:`mne.Epochs.plot_psd` with
average=False
. Infrastructure for this function now shared with analogous Raw function, found inmne.viz.utils
by `Jevri Hanna`_ - Add option not to orthogonalize power envelopes with
orthogonalize=False
inmne.connectivity.envelope_correlation
by `Denis Engemann`_ - Accept filenames of raw .fif files that end in
_meg.fif
to enable complicance with the Brain Imaging Data Structure by `Stefan Appelhoff`_ - Add function to check the type of a FIF file using :func:`mne.what` and :ref:`mne what` by `Eric Larson`_
- Add support for specifying the initial time and/or position and providing a :class:`mne.SourceMorph` instead of :class:`mne.SourceSpaces` in :func:`mne.viz.plot_volume_source_estimates` by `Eric Larson`_
- Speed up morph map generation in :func:`mne.read_morph_map` by ~5-10x by using :func:`numba.jit` by `Eric Larson`_
- Speed up :func:`mne.setup_volume_source_space`, especially when
volume_label is not None
by `Eric Larson`_ - Speed up :ref:`mne coreg` interactive and automated (ICP) alignment by using nearest-neighbor calculations in the MRI coordinate frame, by `Eric Larson`_
- Add :func:`mne.dig_mri_distances` to compute the distances between digitized head points and the MRI head surface by `Alex Gramfort`_ and `Eric Larson`_
- Add scale bars for data channels in :func:`mne.io.Raw.plot` by `Eric Larson`_
- Add :func:`mne.viz.plot_brain_colorbar` to plot a colorbar appropriately matched to a :func:`mne.viz.plot_source_estimates` plot by `Eric Larson`_
- Add support for showing head surface (to visualize digitization fit) while showing a single-layer BEM to :func:`mne.viz.plot_alignment` by `Eric Larson`_
- Add option
include_tmax=True
to cropping methods :meth:`mne.io.Raw.crop`, :meth:`mne.Epochs.crop`, :meth:`mne.Evoked.crop`, :meth:`mne.SourceEstimate.crop`, :meth:`mne.Dipole.crop`, and :meth:`mne.time_frequency.AverageTFR.crop` by `Eric Larson`_ - Change the behavior of :meth:`mne.io.Raw.plot` for
scalings='auto'
andremove_dc=True
to compute the scalings on the data with DC removed by `Clemens Brunner`_ - Allow creating annotations within existing annotations in :func:`mne.io.Raw.plot` by default (the old snapping behavior can be toggled by pressing 'p') by `Clemens Brunner`_
- Add plotting of rank estimates in :func:`mne.viz.plot_cov` by `Eric Larson`_
- Add a new
mne.viz.plot_sensors_connectivity
function to visualize the sensor connectivity in 3D by `Guillaume Favelier`_ and `Alex Gramfort`_ - Add support for
info['utc_offset']
,info['device_info']
, andinfo['helium_info']
components of :class:`mne.Info` by `Eric Larson`_ - Add control over dipole colors in :func:`mne.viz.plot_dipole_locations` when using orthoview mode by `Eric Larson`_
- Use second-order-sections filtering in :meth:`mne.io.Raw.plot` and :ref:`mne browse_raw` by `Eric Larson`_
- Add re-referencing functionality for ecog and seeg channel types in :func:`mne.set_eeg_reference` by `Keith Doelling`_
- Add support for median averaging and for returning unaggregated segments in
mne.time_frequency.psd_welch
by `Richard Höchenberger`_ - :func:`io.read_raw_kit`: add support for NYU New York 2019 system update, by `Christian Brodbeck`_
- Fix setting montage eeg ref position for captrak by `Joan Massich`_
- Fix saving raw read from BDF file using
tmin
andtmax
usingpreload=False
by `Alex Gramfort`_ - Fix :func:`mne.grand_average` to use equal sum-to-one weights (like it used to, before changes to underlying :func:`mne.combine_evoked`) by `Daniel McCloy`_
- Fix :meth:`mne.io.Raw.filter` to deal with instances with no data channels properly by `Eric Larson`_
- Fix one-sample baseline issue in :class:`mne.BaseEpochs` when using
tmin=0
by `Milan Rybář`_ - Fix bug in :func:`mne.viz.plot_volume_source_estimates` where
'glass_brain'
MRIs were not transformed to MNI space, by `Eric Larson`_ - Fix bug in :func:`mne.viz.plot_volume_source_estimates` where MRIs with voxels not in RAS orientation could not be browsed properly, by `Eric Larson`_
- Fix bug in :meth:`mne.SourceMorph.apply` where output STCs had
stc.vertices
defined improperly, by `Eric Larson`_ - Fix bug in :meth:`mne.SourceMorph.apply` where the default was errantly
mri_space=False
instead ofmri_space=None
(as documented), by `Eric Larson`_ - Fix
mne.VolVectorSourceEstimate.normal
and :func:`mne.minimum_norm.apply_inverse` to only allow normal extraction/orientation for surface and discrete source spaces by `Eric Larson`_ - Fix :meth:`mne.io.Raw.set_annotations` for
meas_date
previous to 1970 by `Joan Massich`_ - Fix horizontal spacing issues in :meth:`mne.io.Raw.plot_psd` by `Jevri Hanna`_
- Fix reading of dates in BrainVision files if no "New Segment" marker is specified, no date is given, or data is missing, by `Stefan Appelhoff`_
- Fix bug with reading one-channel GDF files by `Abram Hindle`_
- Fix bug with y-axis labeling in :meth:`mne.io.Raw.plot_psd` by `Eric Larson`_
- Fix side-effect where :func:`mne.viz.plot_ica_sources` and :meth:`mne.preprocessing.ICA.plot_sources` changed the
ICA.exclude
attribute even when users didn't interact with the plot by `Daniel McCloy`_. - Fix scaling of sources in :meth:`ica.plot_sources(epochs) <mne.preprocessing.ICA.plot_sources>` by `Eric Larson`_
- Fix wrong assumptions about units in BrainVision montages and add test asserting units in "mm" or "auto", by `Stefan Appelhoff`_
- Fix scaling issue with signals in mV in EDF files read with :func:`mne.io.read_raw_edf` by `Alex Gramfort`_
- Fix :func:`mne.extract_label_time_course` behavior when using STCs generated with
apply_inverse(..., label=label)
orstc.in_label
by `Eric Larson`_ - Fix bug in :func:`mne.io.read_raw_brainvision` so that recording date timestamps are also recognized if channel reference data is negative, by `Stefan Appelhoff`_
- Fix order of
info['dig']
that was alphabetical based on channel names and not following the channel order when using :meth:`mne.io.Raw.set_montage` and amne.channels.Montage
object by `Joan Massich`_ and `Alex Gramfort`_. - Fix reading CNT files larger than 2Gb by `Joan Massich`_
- Fix reading of 4D/BTi data with different channel names and onsets in :func:`mne.io.read_raw_bti` by `Joshua Bear`_ and `Eberhard Eich`_
- Fix formula for effective number of averages in :func:`mne.combine_evoked` when
weights='equal'
by `Daniel McCloy`_. - Fix bug in :func:`mne.simulation.simulate_stc` to avoid empty stc if label vertices and source space do not intersect, by `Kostiantyn Maksymenko`_
- Fix
event_id='auto'
in :func:`mne.events_from_annotations` to recover Brainvision markers after saving it in.fif
by `Joan Massich`_ - Fix :func:`mne.read_epochs_eeglab` when epochs are stored as float. By `Thomas Radman`_
- Fix :func:`mne.Evoked.resample` and :func:`mne.Epochs.resample` not setting
inst.info['lowpass']
properly by `Eric Larson`_ - Fix checks when constructing volumetric and surface source spaces with :func:`mne.setup_volume_source_space` and :func:`mne.setup_source_space`, respectively, by `Eric Larson`_
- Fix bug in handling of :class:`mne.Evoked` types that were not produced by MNE-Python (e.g., alternating average) by `Eric Larson`_
- Fix bug in :func:`mne.read_source_estimate` where vector volumetric source estimates could not be read by `Eric Larson`_
- Fix bug in :func:`mne.inverse_sparse.mixed_norm` and :func:`mne.inverse_sparse.tf_mixed_norm` where
weights
was supplied butweights_min
was not, by `Eric Larson`_ - Fix bug in :func:`mne.set_eeg_reference` where non-EEG channels could be re-referenced by default if there were no EEG channels present, by `Eric Larson`_
- Fix bug in :func:`mne.io.Raw.plot` when using HiDPI displays and the MacOSX backend of matplotlib by `Eric Larson`_
- Fix bug in :func:`mne.viz.plot_compare_evokeds` when using Neuromag 122 system by `Eric Larson`_
- Fix bug in :func:`mne.Epochs.plot_psd` when some channels had zero/infinite
psd
values causing erroneous error messages by `Luke Bloy`_ - Fix :func:`mne.Evoked.decimate` not setting
inst.first
andinst.last
properly by `Marijn van Vliet`_ - Fix :func:`mne.io.read_raw_brainvision` not handling
Event
markers created by PyCorder correctly by `Richard Höchenberger`_ - Fix support for string-like objects (such as :class:`python:pathlib.Path`) by `Eric Larson`_
- Fix :class:`mne.Report` silently suppressing exceptions when used as a context manager by `Marijn van Vliet`_
- Deprecate
mne.channels.Montage
class,mne.channels.read_montage
andmne.channels.read_dig_montage
function by `Joan Massich`_. - Deprecate passing
Montage
,str
as montage parameter in :meth:`mne.io.Raw.set_montage` by `Joan Massich`_. - Deprecate
set_dig
parameter in :meth:`mne.io.Raw.set_montage` andupdate_ch_names
inmne.io.RawEEGLAB.set_montage
when using :class:`mne.channels.DigMontage` as by `Joan Massich`_. - Now :meth:`mne.io.Raw.set_montage` raises an error when :class:`mne.channels.DigMontage` contains only a subset of the channels in
raw.info
. It also addsraise_if_subset
parameter to ensure backward compatibility (defaults to False in 0.19, to True in 0.20, and will be removed in 0.21) by `Joan Massich`_. - Minimum dependency versions for the following libraries have been bumped up (by `Eric Larson`_):
- NumPy: 1.12.1
- SciPy: 0.18.1
- matplotlib: 2.0.2
- scikit-learn: 0.18.2
- pandas 0.19.2
- New boolean parameter
show_scrollbars
for :meth:`mne.io.Raw.plot`, :meth:`mne.Epochs.plot`, and :meth:`mne.preprocessing.ICA.plot_sources` (and associated functions) that allows hiding the scrollbars and buttons for a "zen mode" data browsing experience. When the plot window has focus, zen mode can be toggled by pressing z, by `Daniel McCloy`_. - Deprecate
mne.evoked.grand_average
in favor of :func:`mne.grand_average` (which works on both :class:`~mne.Evoked` and :class:`~mne.time_frequency.AverageTFR`) by `Daniel McCloy`_ - Deprecate
exclude
parameter in :func:`mne.viz.plot_ica_sources` and :meth:`mne.preprocessing.ICA.plot_sources`, instead always use theexclude
attribute of the ICA object by `Daniel McCloy`_. - Deprecate
montage
parameter in favor of theset_montage
method in all EEG data readers :func:`mne.io.read_raw_cnt`, :func:`mne.io.read_raw_egi`, :func:`mne.io.read_raw_edf`, :func:`mne.io.read_raw_gdf`, :func:`mne.io.read_raw_nicolet`, :func:`mne.io.read_raw_eeglab` and :func:`mne.read_epochs_eeglab` by `Alex Gramfort`_ - New parameter
clear
in :func:`mne.viz.plot_epochs_image` for clearing pre-existing axes before plotting into them by `Daniel McCloy`_ - :func:`mne.viz.plot_epochs_image` no longer supports
group_by='type'
— combining by channel type is now the default whenpicks
is a channel type string; to get individual plots for each channel, passpicks
as a list of channel names or indices by `Daniel McCloy`_ - New parameter
combine
in :func:`mne.viz.plot_compare_evokeds` for specifying method to combine information across channels by `Daniel McCloy`_ - FIFF constants related to SmartShield (
*_SMSH_*
and*_SMARTSHIELD
) have been renamed toIAS
for consistency with MEGIN, by `Eric Larson`_ - The
gfp
parameter of :func:`mne.viz.plot_compare_evokeds` is deprecated; usecombine='gfp'
instead by `Daniel McCloy`_ - The
truncate_yaxis='max_ticks'
parameter of :func:`mne.viz.plot_compare_evokeds` is deprecated; usetruncate_yaxis='auto'
instead by `Daniel McCloy`_ - The
truncate_xaxis
andtruncate_yaxis
parameters of :func:`mne.viz.plot_compare_evokeds` now perform one-sided truncation unless both areTrue
by `Daniel McCloy`_ - The
show_legend
parameter of :func:`mne.viz.plot_compare_evokeds` is renamed tolegend
by `Daniel McCloy`_ - :func:`mne.viz.plot_compare_evokeds` always returns a list of figures even when a single figure is generated by `Daniel McCloy`_
- Deprecate
average=True
andspatial_colors=False
for :func:`mne.Epochs.plot_psd` by `Jevri Hanna`_ - :func:`mne.io.read_raw_brainvision` no longer raises an error when there are inconsistencies between
info['chs']
andmontage
but warns instead by `Joan Massich`_ - Add
update_ch_names
parameter tomne.io.RawEEGLAB.set_montage
to allow updating the channel names based on the montage by `Joan Massich`_ - Reading annotations contained in GDF files with :func:`mne.io.read_raw_gdf` now returns numeric event codes as descriptions (instead of textual descriptions) due to restrictive licensing of the GDF event code table from BioSig by `Clemens Brunner`_
channels.find_ch_connectivity
now returns pre-built neighbor maps for KIT systems when available, by `Christian Brodbeck`_