Version 0.17 (2018-11-19)#
Changelog#
Add new tutorial for
mne.Annotations
andevents
by Joan Massich and Alex GramfortAdd support for saving
mne.Annotations
as CSV and TXT files by Joan Massich and Alex GramfortAdd
mne.Epochs.shift_time()
that shifts the time axis ofmne.Epochs
by Thomas HartmannAdd
mne.viz.plot_arrowmap()
computes arrowmaps using Hosaka-Cohen transformation from magnetometer or gradiometer data, these arrows represents an estimation of the current flow underneath the MEG sensors by Sheraz KhanAdd
mne.io.read_raw_fieldtrip()
,mne.read_epochs_fieldtrip()
andmne.read_evoked_fieldtrip()
to import FieldTrip data. By Thomas Hartmann and Dirk Gütlin.Add
rank
parameter tomne.compute_covariance()
,mne.cov.regularize()
and related functions to preserve data rank and speed up computation using low-rank computations during regularization by Eric Larson and Denis EngemannAdd new function
mne.read_annotations()
that can read annotations in EEGLAB, BrainVision, EDF and Brainstorm formats by Joan Massich and Alex Gramfort.Add capability to read and save Epochs containing complex data (e.g. after Hilbert-transform) using
mne.Epochs.save()
andmne.read_epochs()
, by Stefan Repplinger, Eric Larson and Alex GramfortAdd optically pumped magnetometer dataset and example by Rasmus Zetter and Eric Larson
Add
origin
parameter tomne.io.Raw.time_as_index()
to allowtimes
to be relative to thisorigin
by Joan MassichAdd
title
argument tomne.SourceEstimate.plot()
by Eric Larsonmne.io.Raw.set_annotations()
now changesorig_time
to matchmeas_date
and shiftself.annotations.onset
accordingly. Previous behavior is deprecated and would be removed in 0.18. Work by Joan MassichAdd
mne.compute_source_morph()
which creates amne.SourceMorph
object to unify morphing any type of source estimates (surface or volume) from one subject to another for group studies. It is now possible to do group studies when working on the volume with MNE. Work by Tommy Clausner during GSOC 2018 with the help of Alex Gramfort and Eric Larson.Add ability to pass threshold for EOG to
mne.preprocessing.find_eog_events()
andmne.preprocessing.create_eog_epochs()
by Peter MolfeseAdd possibility to save
mne.VolSourceEstimate
andmne.MixedSourceEstimate
to HDF5 format (file extension .h5) withmne.VolSourceEstimate.save()
andmne.MixedSourceEstimate.save()
by Alex GramfortAdd
replace
parameter tomne.io.Raw.add_events()
to allow adding events while removing the old ones on the stim channel by Alex GramfortAdd ability to pass
axes
tots_args
andtopomap_args
ofmne.viz.plot_evoked_joint()
by Jona SassenhagenAdd ability to pass a precomputed forward solution to
mne.simulation.simulate_raw()
by Eric LarsonAdd ability to read and write beamformers with
mne.beamformer.read_beamformer()
andmne.beamformer.Beamformer.save
by Eric LarsonAdd resting-state source power spectral estimation example
sphx_glr_auto_examples_datasets_plot_opm_rest_data.py
by Eric Larson, Denis Engemann, and Luke BloyAdd
mne.channels.make_1020_channel_selections()
to group 10/20-named EEG channels by location, by Jona SassenhagenAdd helmet for Artemis123 for
mne.viz.plot_alignment()
by Eric LarsonAdd support for reading MATLAB
v7.3+
files inmne.io.read_raw_eeglab()
andmne.read_epochs_eeglab()
via pymatreader by Steven Gutstein, Eric Larson, and Thomas HartmannAdd support for raw PSD plots in
mne.Report.parse_folder()
viaraw_psd
argument ofmne.Report
by Eric LarsonAdd
trig_shift_by_type
parameter inmne.io.read_raw_brainvision()
to allow to specify offsets for arbitrary marker types by Henrich KolkhorstAdd progress bar support to
mne.decoding.SlidingEstimator
andmne.decoding.GeneralizingEstimator
by Eric LarsonAdd interactive visualization of volume source estimates using
mne.viz.plot_volume_source_estimates()
by Mainak JasAdd
mne.head_to_mri()
to convert positions from head coordinates to MRI RAS coordinates, by Joan Massich and Alex GramfortAdd improved CTF helmet for
mne.viz.plot_alignment()
by Eric LarsonAdd handling in
mne.combine_evoked()
andmne.grand_average()
for input with the same channels in different orders, if required, by Jona SassenhagenAdd
split_naming
parameter to themne.io.Raw.save
method to allow for BIDS-compatible raw file name construction by Teon BrooksAdd
origin
parameter tomne.Evoked.interpolate_bads()
and related methods by Eric LarsonAdd automated MEG helmet shape approximation to
mne.viz.plot_alignment()
by Eric LarsonAdd capability to save a
mne.Report
to an HDF5 file tomne.Report.save()
by Marijn van VlietAdd
mne.open_report()
to read back amne.Report
object that was saved to an HDF5 file by Marijn van VlietAdd multi-taper estimation to
mne.minimum_norm.compute_source_psd()
by Eric LarsonAdd support for custom, e.g. robust, averaging methods in
mne.Epochs.average()
by Jona SassenhagenAdd support for Neuromag 122 system by Alex Gramfort
Add function
mne.io.read_annotations_brainvision
for reading directly Brainvision marker files by Alex GramfortAdd
mne.Report.remove()
method to remove existing figures from a report, by Marijn van VlietAdd sign to output of max-power orientation for
mne.beamformer.make_dics()
by Eric LarsonAdd support for
pick_ori='max-power'
whenweight_norm=None
inmne.beamformer.make_lcmv()
by Marijn van VlietAdd support for
weight_norm='nai'
for allpick_ori
options inmne.beamformer.make_lcmv()
by Marijn van VlietAdd support for
weight_norm='nai'
tomne.beamformer.make_dics()
by Marijn van VlietAdd parameter
rank=None
tomne.beamformer.make_dics()
by Marijn van VlietAdd parameter
rank='full'
tomne.beamformer.make_lcmv()
, which can be set toNone
to auto-compute the rank of the covariance matrix before regularization by Marijn van VlietHandle different time vectors in topography plots using
mne.viz.plot_evoked_topo()
by Jussi NurminenSpeed up
mne.inverse_sparse.mixed_norm()
if thesolver
parameter is set tobcd
usingscipy.linalg.get_blas_funcs()
by Quentin Bertrand
Bug#
Fix bug with scaling of data in
mne.cov._compute_covariance_auto
that was affecting themne.decoding.SPoC
estimator by David SabbaghFix bug in
mne.minimum_norm.compute_source_psd()
where thestc.times
output was scaled by 1000, by Eric LarsonFix default values for
'diagonal_fixed'
estimation method ofmne.compute_covariance()
to be0.1
for all channel types, as inmne.cov.regularize()
by Eric LarsonFix reading edf file annotations by Joan Massich
Fix bug with reading events from BrainVision files by Stefan Appelhoff
Fix bug where
mne.io.read_raw_eeglab()
would warn when the stim channel is populated with an array of zeros by Joan MassichFix 2nd column of events in BrainVision to no longer store duration but rather be contained by
raw.annotations
by Alex GramfortFix checking of the correctness of the
prepared=True
argument inmne.minimum_norm.apply_inverse()
and related functions by Eric LarsonFix bug of not showing ERD’s in baseline rescaled tfr topomaps if grads are combined by Erkka Heinila
Fix bug with FIF I/O where strings were written in UTF-8 format instead of Latin-1 by Eric Larson
Fix bug with reading measurement dates from BrainVision files by Stefan Appelhoff
Fix bug with
mne.fit_dipole
where the residual was returned asndarray
instead ofmne.Evoked
instance, by Eric LarsonFix bug with
mne flash_bem
whenflash30
is not used by Eric LarsonFix bug with
mne.stats.permutation_cluster_test()
andmne.stats.spatio_temporal_cluster_test()
wherethreshold=None
was not calculated properly for a f-oneway test by Daniel McCloy and Eric LarsonFix bug with channel names in
mgh70
montage inmne.channels.read_montage
by Eric LarsonFix duplication of
info['hpi_meas']
andinfo['hpi_results']
by Sara SommarivaFix bug in
mne.io.read_raw_edf()
when reading large files on Windows by Marcin KoculakFix check in
mne.viz.plot_sensors()
for invalid channel locations by Eric LarsonFix bug in
mne.io.read_raw_edf()
where GDF files hadinfo['highpass']
andinfo['lowpass']
set to NaN andinfo['meas_date']
set incorrectly, by Eric LarsonFix bug in
mne.preprocessing.ICA.apply()
to handle arrays asexclude
property by Joan MassichFix bug in
method='eLORETA'
formne.minimum_norm.apply_inverse()
when using a sphere model and savedinv
by Eric LarsonFix bug in
mne.io.Raw
where warnings were emitted when objects were deleted by Eric LarsonFix vector data support for
mne.VolSourceEstimate
by Christian BrodbeckFix bug with IIR filtering axis in
mne.filter.filter_data()
by Eric LarsonFix bug with non-boxcar windows in
mne.io.Raw.resample()
andmne.filter.resample()
by Eric LarsonFix bug in
mne.minimum_norm.apply_inverse()
where applying an MEG-only inverse would raise an error about needing an average EEG reference by Eric LarsonFix bug in
inst.apply_proj()
where an average EEG reference was always added by Eric LarsonFix bug in
mne.time_frequency.tfr_morlet()
,mne.time_frequency.tfr_multitaper()
, andmne.time_frequency.tfr_stockwell()
where not all data channels were picked by Eric LarsonFix bug in
mne.preprocessing.ICA.plot_overlay()
andmne.make_field_map()
for CTF data with compensation by Eric LarsonFix bug in
mne.create_info()
passingint
asch_names
on Windows by Eric LarsonFix bug in
mne.realtime.RtEpochs
where events during the buildup of the buffer were not correctly processed when incoming data buffers are smaller than the epochs by Henrich KolkhorstFix bug in
mne.io.read_raw_brainvision()
where 1-indexed BrainVision events were not being converted into 0-indexed mne events by Steven BethardFix bug in
mne.viz.plot_snr_estimate()
andmne.minimum_norm.estimate_snr()
where the inverse rank was not properly utilized (especially affecting SSS’ed MEG data) by Eric LarsonFix error when saving stc as nifti image when using volume source space formed by more than one label by Alex Gramfort
Fix error when interpolating MEG channels with compensation using reference channels (like for CTF data) by Alex Gramfort
Fix bug in
mne.make_sphere_model()
where EEG sphere model coefficients were not optimized properly by Eric LarsonFix bug in
mne.io.read_raw_ctf()
to read bad channels and segments from CTF ds files by Luke BloyFix problem with
mne.io.Raw.add_channels()
whereraw.info['bads']
was replicated by Eric LarsonFix bug with
mne.Epochs
where an error was thrown when resizing data (e.g., duringmne.Epochs.drop_bad()
) by Eric LarsonFix naming of
raw.info['buffer_size_sec']
to beraw.buffer_size_sec
as it is a writing parameter rather than a measurement parameter by Eric LarsonFix EGI-MFF parser not to require
dateutil
package by Eric LarsonFix error when running LCMV on MEG channels with compensation using reference channels (like for CTF data) by Alex Gramfort
Fix the use of
sklearn.model_selection.cross_val_predict()
withmne.decoding.SlidingEstimator
by Alex GramfortFix event sample number increase when combining many Epochs objects with
mne.concatenate_epochs()
with by Jasper van den BoschFix title of custom slider images to
mne.Report
by Marijn van VlietFix missing initialization of
self._current
inmne.Epochs
by Henrich KolkhorstFix processing of data with bad segments and acquisition skips with new
skip_by_annotation
parameter inmne.preprocessing.maxwell_filter()
by Eric LarsonFix symlinking to use relative paths in
mne flash_bem
andmne watershed_bem
by Eric LarsonFix error in mne coreg when saving with scaled MRI if fiducials haven’t been saved by Ezequiel Mikulan
Fix normalization error in
mne.beamformer.make_lcmv()
whenpick_ori='normal', weight_norm='unit_noise_gain'
by Marijn van VlietFix MNE-C installation instructions by buildqa
Fix computation of max-power orientation in
mne.beamformer.make_dics()
whenpick_ori='max-power', weight_norm='unit_noise_gain'
by Marijn van Vliet
API#
Deprecated separate reading of annotations and synthesis of STI014 channels in readers by Joan Massich:
Deprecated
mne.io.read_annotations_eeglab
Deprecated
annot
andannotmap
parameters inread_raw_edf()
Deprecated
stim_channel
parameters inread_raw_edf()
,read_raw_brainvision()
, andread_raw_eeglab()
Annotations are now added to
raw
instances directly upon reading asraw.annotations
. They can also be read separately withmne.read_annotations()
for EEGLAB, BrainVision, EDF, and Brainstorm formats. Usemne.events_from_annotations(raw.annotations)
to convert these to events instead of the old way (using STI014 channel synthesis followed bymne.find_events(raw)
).- In 0.17 (this release)
Use
read_raw_...(stim_channel=False)
to disable warnings (and stim channel synthesis), but other arguments forstim_channel
will still be supported.- In 0.18
The only supported option will be
read_raw_...(stim_channel=False)
, and all stim-channel-synthesis arguments will be removed. At this point,stim_channel
should be removed from scripts for future compatibility, butstim_channel=False
will still be acceptable for backward compatibility.- In 0.19
The
stim_channel
keyword arguments will be removed fromread_raw_...
functions.
Calling
mne.io.pick.pick_info
removing channels that are needed by compensation matrices (info['comps']
) no longer raisesRuntimeException
but instead logs an info level message. By Luke Bloymne.Epochs.save()
now has the parameterfmt
to specify the desired format (precision) saving epoched data, by Stefan Repplinger, Eric Larson and Alex GramfortDeprecated
mne.SourceEstimate.morph_precomputed
,mne.SourceEstimate.morph
,mne.compute_morph_matrix
,mne.morph_data_precomputed
andmne.morph_data
in favor ofmne.compute_source_morph()
, by Tommy ClausnerPrepare transition to Python 3. This release will be the last release compatible with Python 2. The next version will be Python 3 only.
CUDA support now relies on CuPy instead of
PyCUDA
andscikits-cuda
. It can be installed usingconda install cupy
. By Eric LarsonFunctions requiring a color cycle will now default to Matplotlib rcParams colors, by Stefan Appelhoff
mne.Evoked.plot_image()
has gained the ability toshow_names
, and if a selection is provided togroup_by
,axes
can now receive adict
, by Jona SassenhagenCalling
mne.Epochs.decimate()
withdecim=1
no longer copies the data by Henrich KolkhorstRemoved blocking (waiting for new epochs) in
mne.realtime.RtEpochs.get_data()
by Henrich KolkhorstWarning messages are now only emitted as
warnings.warn_explicit()
rather than also being emitted aslogging
messages (unless a logging file is being used) to avoid duplicate warning messages, by Eric LarsonDeprecated save_stc_as_volume function in favor of
mne.VolSourceEstimate.as_volume()
andmne.VolSourceEstimate.save_as_volume()
by Alex Gramfortsrc.kind
now equals to'mixed'
(and not'combined'
) for a mixed source space (made of surfaces and volume grids) by Alex GramfortDeprecation of
mne.io.Raw.annotations
property in favor ofmne.io.Raw.set_annotations()
by Joan MassichThe default value of
stop_receive_thread
inmne.realtime.RtEpochs.stop
has been changed toTrue
by Henrich KolkhorstUsing the
mne.io.Raw.add_channels()
on an instance with memmapped data will now resize the memmap file to append the new channels on Windows and Linux, by Eric Larsonmne.io.Raw.annotations
when missing is set to an emptymne.Annotations
rather thanNone
by Joan Massich and Alex GramfortMismatches in CTF compensation grade are now checked in inverse computation by Eric Larson