Version 0.17 (2018-11-19)#
Changelog#
Add new tutorial for
mne.Annotationsandeventsby Joan Massich and Alex GramfortAdd support for saving
mne.Annotationsas CSV and TXT files by Joan Massich and Alex GramfortAdd
mne.Epochs.shift_time()that shifts the time axis ofmne.Epochsby 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
rankparameter 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
originparameter tomne.io.Raw.time_as_index()to allowtimesto be relative to thisoriginby Joan MassichAdd
titleargument tomne.SourceEstimate.plot()by Eric Larsonmne.io.Raw.set_annotations()now changesorig_timeto matchmeas_dateand shiftself.annotations.onsetaccordingly. Previous behavior is deprecated and would be removed in 0.18. Work by Joan MassichAdd
mne.compute_source_morph()which creates amne.SourceMorphobject 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.VolSourceEstimateandmne.MixedSourceEstimateto HDF5 format (file extension .h5) withmne.VolSourceEstimate.save()andmne.MixedSourceEstimate.save()by Alex GramfortAdd
replaceparameter tomne.io.Raw.add_events()to allow adding events while removing the old ones on the stim channel by Alex GramfortAdd ability to pass
axestots_argsandtopomap_argsofmne.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.saveby Eric LarsonAdd resting-state source power spectral estimation example
sphx_glr_auto_examples_datasets_plot_opm_rest_data.pyby 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_psdargument ofmne.Reportby Eric LarsonAdd
trig_shift_by_typeparameter inmne.io.read_raw_brainvision()to allow to specify offsets for arbitrary marker types by Henrich KolkhorstAdd progress bar support to
mne.decoding.SlidingEstimatorandmne.decoding.GeneralizingEstimatorby 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_namingparameter to themne.io.Raw.savemethod to allow for BIDS-compatible raw file name construction by Teon BrooksAdd
originparameter 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.Reportto an HDF5 file tomne.Report.save()by Marijn van VlietAdd
mne.open_report()to read back amne.Reportobject 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_brainvisionfor 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=Noneinmne.beamformer.make_lcmv()by Marijn van VlietAdd support for
weight_norm='nai'for allpick_orioptions inmne.beamformer.make_lcmv()by Marijn van VlietAdd support for
weight_norm='nai'tomne.beamformer.make_dics()by Marijn van VlietAdd parameter
rank=Nonetomne.beamformer.make_dics()by Marijn van VlietAdd parameter
rank='full'tomne.beamformer.make_lcmv(), which can be set toNoneto 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 thesolverparameter is set tobcdusingscipy.linalg.get_blas_funcs()by Quentin Bertrand
Bug#
Fix bug with scaling of data in
mne.cov._compute_covariance_autothat was affecting themne.decoding.SPoCestimator by David SabbaghFix bug in
mne.minimum_norm.compute_source_psd()where thestc.timesoutput was scaled by 1000, by Eric LarsonFix default values for
'diagonal_fixed'estimation method ofmne.compute_covariance()to be0.1for 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.annotationsby Alex GramfortFix checking of the correctness of the
prepared=Trueargument 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_dipolewhere the residual was returned asndarrayinstead ofmne.Evokedinstance, by Eric LarsonFix bug with
mne flash_bemwhenflash30is not used by Eric LarsonFix bug with
mne.stats.permutation_cluster_test()andmne.stats.spatio_temporal_cluster_test()wherethreshold=Nonewas not calculated properly for a f-oneway test by Daniel McCloy and Eric LarsonFix bug with channel names in
mgh70montage inmne.channels.read_montageby 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 asexcludeproperty by Joan MassichFix bug in
method='eLORETA'formne.minimum_norm.apply_inverse()when using a sphere model and savedinvby Eric LarsonFix bug in
mne.io.Rawwhere warnings were emitted when objects were deleted by Eric LarsonFix vector data support for
mne.VolSourceEstimateby 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()passingintasch_nameson Windows by Eric LarsonFix bug in
mne.realtime.RtEpochswhere 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.Epochswhere 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_secas it is a writing parameter rather than a measurement parameter by Eric LarsonFix EGI-MFF parser not to require
dateutilpackage 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.SlidingEstimatorby 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.Reportby Marijn van VlietFix missing initialization of
self._currentinmne.Epochsby Henrich KolkhorstFix processing of data with bad segments and acquisition skips with new
skip_by_annotationparameter inmne.preprocessing.maxwell_filter()by Eric LarsonFix symlinking to use relative paths in
mne flash_bemandmne watershed_bemby 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_eeglabDeprecated
annotandannotmapparameters inread_raw_edf()Deprecated
stim_channelparameters inread_raw_edf(),read_raw_brainvision(), andread_raw_eeglab()
Annotations are now added to
rawinstances 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_channelwill 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_channelshould be removed from scripts for future compatibility, butstim_channel=Falsewill still be acceptable for backward compatibility.- In 0.19
 The
stim_channelkeyword arguments will be removed fromread_raw_...functions.
Calling
mne.io.pick.pick_inforemoving channels that are needed by compensation matrices (info['comps']) no longer raisesRuntimeExceptionbut instead logs an info level message. By Luke Bloymne.Epochs.save()now has the parameterfmtto 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_precomputedandmne.morph_datain 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
PyCUDAandscikits-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,axescan now receive adict, by Jona SassenhagenCalling
mne.Epochs.decimate()withdecim=1no 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 asloggingmessages (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.kindnow equals to'mixed'(and not'combined') for a mixed source space (made of surfaces and volume grids) by Alex GramfortDeprecation of
mne.io.Raw.annotationsproperty in favor ofmne.io.Raw.set_annotations()by Joan MassichThe default value of
stop_receive_threadinmne.realtime.RtEpochs.stophas been changed toTrueby 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.annotationswhen missing is set to an emptymne.Annotationsrather thanNoneby Joan Massich and Alex GramfortMismatches in CTF compensation grade are now checked in inverse computation by Eric Larson