Version 0.16 (2018-05-01)#
Changelog#
Add possibility to pass dict of floats as argument to
mne.make_ad_hoc_cov()by Nathalie GayraudAdd support for metadata in
mne.Epochsby Chris Holdgraf, Alex Gramfort, Jona Sassenhagen, and Eric LarsonAdd support for plotting a dense head in
mne.viz.plot_alignment()by Eric LarsonAllow plotting in user-created mayavi Scene in
mne.viz.plot_alignment()by Daniel McCloyReduce memory consumption and do not require data to be loaded in
mne.Epochs.apply_baseline()by Eric LarsonAdd option
render_bemtomne.Report.parse_folder()by Eric LarsonAdd to
mne.viz.plot_alignment()plotting of coordinate frame axes viashow_axesand terrain-style interaction viainteraction, by Eric LarsonAdd option
initial_eventtomne.find_events()by Clemens BrunnerLeft and right arrow keys now scroll by 25% of the visible data, whereas Shift+left/right scroll by a whole page in
mne.io.Raw.plot()by Clemens BrunnerAdd support for gantry tilt angle determination from Elekta FIF file header by Chris Bailey
Add possibility to concatenate
mne.Annotationsobjects with+or+=operators by Clemens BrunnerAdd support for MaxShield raw files in
mne.Reportby Eric LarsonAdd ability to plot whitened data in
mne.io.Raw.plot(),mne.Epochs.plot(),mne.Evoked.plot(), andmne.Evoked.plot_topo()by Eric LarsonWorkaround for reading EGI MFF files with physiological signals that also present a bug from the EGI system in
mne.io.read_raw_egi()by Federico RaimondoAdd support for reading subject height and weight in
info['subject_info']by Eric LarsonImprove online filtering of raw data when plotting with
mne.io.Raw.plot()to filter in segments in accordance with the defaultskip_by_annotation=('edge', 'bad_acq_skip')ofmne.io.Raw.filter()to avoid edge ringing by Eric LarsonAdd support for multiple head position files, plotting of sensors, and control of plotting color and axes in
mne.viz.plot_head_positions()by Eric LarsonAdd ability to read and write
Annotationsseparate frommne.io.Rawinstances viaAnnotations.save()andread_annotations()by Eric LarsonAdd option to unset a montage by passing
Nonetomne.io.Raw.set_montage()by Clemens BrunnerAdd sensor denoising via
mne.preprocessing.oversampled_temporal_projection()by Eric LarsonAdd
mne.io.pick.get_channel_typeswhich returns all available channel types in MNE by Clemens BrunnerUse standard PCA instead of randomized PCA whitening prior to ICA to increase reproducibility by Clemens Brunner
Plot sEEG electrodes in
mne.viz.plot_alignment()by Alex GramfortAdd support for any data type like sEEG or ECoG in covariance related functions (estimation, whitening and plotting) by Alex Gramfort and Eric Larson
Add function
mne.io.read_annotations_eeglabto allow loading annotations from EEGLAB files, by Alex Gramfortmne.io.Raw.set_montage()now accepts a string as itsmontageargument; this will set a builtin montage, by Clemens BrunnerAdd 4D BTi phantom dataset
mne.datasets.phantom_4dbti.data_path(), by Alex GramfortChanged the background color to grey in
mne.viz.plot_alignment()to make helmet more visible, by Alex GramfortAdd
mne.io.Raw.reorder_channels(),mne.Evoked.reorder_channels(), etc. to reorder channels, by Eric LarsonAdd to
mne coregandmne.gui.coregistration()by Eric Larson:Improved visibility of points inside the head
Projection of EEG electrodes
Orientation of extra points toward the surface
Scaling points by distance to the head surface
Display of HPI points
ICP fitting with convergence criteria
Faster display updates
Scaling of
mri/*.mgzfilesScaling of
mri/trainsforms/talairach.xfmfiles for conversion to MNI space
Add ability to exclude components interactively by clicking on their labels in
mne.preprocessing.ICA.plot_components()by Mikołaj MagnuskiAdd reader for manual annotations of raw data produced by Brainstorm by Anne-Sophie Dubarry
Add eLORETA noise normalization for minimum-norm solvers by Eric Larson
Tighter duality gap computation in
mne.inverse_sparse.tf_mxne_optimand new parametrization withalphaandl1_ratioinstead ofalpha_spaceandalpha_timeby Mathurin Massias and Daniel StrohmeierAdd
dgap_freqparameter inmne.inverse_sparse.mxne_optimsolvers to control the frequency of duality gap computation by Mathurin Massias and Daniel StrohmeierAdd support for reading Eximia files by Eric Larson and Federico Raimondo
Add the Picard algorithm to perform ICA for
mne.preprocessing.ICA, by Pierre Ablin and Alex GramfortAdd ability to supply a mask to the plot in
mne.viz.plot_evoked_image()by Jona SassenhagenAdd
connectivity=Falseto cluster-based statistical functions to perform non-clustering stats by Eric LarsonAdd
mne.time_frequency.csd_morlet()andmne.time_frequency.csd_array_morlet()to estimate cross-spectral density using Morlet wavelets, by Marijn van VlietAdd multidictionary time-frequency support to
mne.inverse_sparse.tf_mixed_norm()by Mathurin Massias and Daniel StrohmeierAdd new DICS implementation as
mne.beamformer.make_dics(),mne.beamformer.apply_dics(),mne.beamformer.apply_dics_csd()andmne.beamformer.apply_dics_epochs(), by Marijn van Vliet and Susanna Aro
Bug#
Fix bug in EEG interpolation code to do nothing if there is no channel to interpolate by Mainak Jas
Fix bug in
mne.preprocessing.peak_finderto output datatype consistently and added input check for empty vectors by Tommy ClausnerFix bug in
mne.io.read_raw_brainvision()to use the correct conversion for filters from time constant to frequency by Stefan AppelhoffFix bug with events when saving split files using
mne.Epochs.save()by Eric LarsonFix bug in
mne.decoding.SlidingEstimatorandmne.decoding.GeneralizingEstimatorto allowmne.decoding.cross_val_multiscore()to automatically detect whether thebase_estimatoris a classifier and use aStratifiedKFoldinstead of aKFoldwhencvis not specified, by Jean-Rémi KingFix bug in
mne.set_eeg_reference()to remove an average reference projector when setting the reference to[](i.e. do not change the existing reference) by Clemens BrunnerFix bug in threshold-free cluster enhancement parameter validation (
mne.stats.permutation_cluster_1samp_test()andmne.stats.permutation_cluster_test()) by Clemens BrunnerFix bug in
mne.io.Raw.plot()to correctly display event types when annotations are present by Clemens BrunnerFix bug in
mne.stats.spatio_temporal_cluster_test()default value forthresholdis now calculated based on the array sizes inX, by Eric LarsonFix bug in
mne.simulation.simulate_raw()withuse_cps=Truewhere CPS was not actually used by Eric LarsonFix bug in
mne.simulation.simulate_raw()where 1- and 3-layer BEMs were not properly transformed usingtransby Eric LarsonFix bug in
mne.viz.plot_alignment()where the head surface file-head.fifwas not used even though present by Chris BaileyFix bug when writing compressed sparse column matrices (e.g., Maxwell filtering cross-talk matrices) by Marijn van Vliet and Eric Larson
Fix bug in
mne.io.Raw.plot_psd()to correctly deal withreject_by_annotation=Falseby Clemens BrunnerFix bug in
mne.make_fixed_length_events()when hitting corner case problems rounding to sample numbers by Eric LarsonFix bug in
mne.Epochswhen passing events as list withevent_id=Noneby Alex GramfortFix bug in
mne.Report.add_figs_to_sectionwhen passingnumpy.ndarrayby Eric LarsonFix bug in CSS class setting in
mne.ReportBEM section by Eric LarsonFix bug in
Annotationswhere annotations that extend to the end of a recording were not extended properly by Eric LarsonFix bug in
mne.io.Raw.filter()to properly raw data with acquisition skips in separate segments by Eric LarsonFix bug in
mne.preprocessing.maxwell_filter()where homogeneous fields were not removed for CTF systems by Eric LarsonFix computation of average quaternions in
mne.preprocessing.maxwell_filter()by Eric LarsonFix bug in writing
raw.annotationswhere empty annotations could not be written to disk, by Eric LarsonFix support for writing FIF files with acquisition skips by using empty buffers rather than writing zeros by Eric Larson
Fix bug in the
mne make_scalp_surfacescommand where--force(to bypass topology check failures) was ignored by Eric LarsonFix bug in
mne.preprocessing.maxwell_filter()when providingoriginin'meg'coordinate frame for recordings with a MEG to head transform (i.e., non empty-room recordings) by Eric LarsonFix bug in
mne.viz.plot_cov()that ignoredcolorbarargument by Nathalie GayraudFix bug when picking CTF channels that could cause data saved to disk to be unreadable by Eric Larson
Fix bug when reading event latencies (in samples) from eeglab files didn’t translate indices to 0-based python indexing by Mikołaj Magnuski
Fix consistency between
mne.Epochsandmne.stats.linear_regression_raw()in converting between samples and times (mne.stats.linear_regression_raw()now rounds, instead of truncating) by Phillip AldayFix bug in
mne coregwhere sphere surfaces were scaled by Eric LarsonFix bug in
mne.Evoked.plot_topomap()when usingproj='interactive'mode by Eric LarsonFix bug when passing
show_sensors=1tomne.viz.plot_compare_evokeds()resulted in sensors legend placed in lower right of the figure (position 4 in matplotlib), not upper right by Mikołaj MagnuskiFix handling of annotations when cropping and concatenating raw data by Alex Gramfort and Eric Larson
Fix bug in
mne.preprocessing.create_ecg_epochs()wherekeep_ecg=Falsewas ignored by Eric LarsonFix bug in
mne.io.Raw.plot_psd()whenpicks is not Noneandpicksspans more than one channel type by Eric LarsonFix bug in
mne.make_forward_solutionwhen passing data with compensation channels (e.g. CTF) that contain bad channels by Alex GramfortFix bug in
mne.SourceEstimate.get_peak()andmne.VolSourceEstimate.get_peak()when there is only a single time point by Marijn van VlietFix bug in
mne.io.read_raw_edf()when reading BDF files stimulus channels are now not scaled anymore by Clemens Brunner
API#
Channels with unknown locations are now assigned position
[np.nan, np.nan, np.nan]instead of[0., 0., 0.], by Eric LarsonRemoved unused
image_maskargument frommne.viz.plot_topomap()by Eric LarsonUnknown measurement dates are now stored as
info['meas_date'] = Nonerather than using the current date.Noneis also now used when anonymizing data and when determining the machine ID for writing files, by Mainak Jas and Eric Larsonmne.Evoked.plot()will now append the number of epochs averaged for the evoked data in the first plot title, by Eric LarsonChanged the line width in
mne.viz.plot_bem()from 2.0 to 1.0 for better visibility of underlying structures, by Eric LarsonChanged the behavior of
mne.io.Raw.pick_channels()and similar methods to be consistent withmne.pick_channels()to treat channel list as a set (ignoring order) – if reordering is necessary useinst.reorder_channels, by Eric LarsonChanged the labeling of some plotting functions to use more standard capitalization and units, e.g. “Time (s)” instead of “time [sec]” by Eric Larson
mne.time_frequency.csd_epochshas been refactored intomne.time_frequency.csd_fourier()andmne.time_frequency.csd_multitaper(), by Marijn van Vlietmne.time_frequency.csd_arrayhas been refactored intomne.time_frequency.csd_array_fourier()andmne.time_frequency.csd_array_multitaper(), by Marijn van VlietAdded
clean_names=Falseparameter tomne.io.read_raw_ctf()for control over cleaning of main channel names and compensation channel names from CTF suffixes by Oleh KozynetsThe functions
lcmv,lcmv_epochs, andlcmv_raware now deprecated in favor ofmne.beamformer.make_lcmv()andmne.beamformer.apply_lcmv(),mne.beamformer.apply_lcmv_epochs(), andmne.beamformer.apply_lcmv_raw(), by Britta WestnerThe functions
mne.beamformer.dics,mne.beamformer.dics_epochsandmne.beamformer.dics_source_powerare now deprecated in favor ofmne.beamformer.make_dics(),mne.beamformer.apply_dics(), andmne.beamformer.apply_dics_csd(), by Marijn van Vliet