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.Epochs
by 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_bem
tomne.Report.parse_folder()
by Eric LarsonAdd to
mne.viz.plot_alignment()
plotting of coordinate frame axes viashow_axes
and terrain-style interaction viainteraction
, by Eric LarsonAdd option
initial_event
tomne.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.Annotations
objects with+
or+=
operators by Clemens BrunnerAdd support for MaxShield raw files in
mne.Report
by 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
Annotations
separate frommne.io.Raw
instances viaAnnotations.save()
andread_annotations()
by Eric LarsonAdd option to unset a montage by passing
None
tomne.io.Raw.set_montage()
by Clemens BrunnerAdd sensor denoising via
mne.preprocessing.oversampled_temporal_projection()
by Eric LarsonAdd
mne.io.pick.get_channel_types
which 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_eeglab
to allow loading annotations from EEGLAB files, by Alex Gramfortmne.io.Raw.set_montage()
now accepts a string as itsmontage
argument; 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 coreg
andmne.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/*.mgz
filesScaling of
mri/trainsforms/talairach.xfm
files 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_optim
and new parametrization withalpha
andl1_ratio
instead ofalpha_space
andalpha_time
by Mathurin Massias and Daniel StrohmeierAdd
dgap_freq
parameter inmne.inverse_sparse.mxne_optim
solvers 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=False
to 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_finder
to 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.SlidingEstimator
andmne.decoding.GeneralizingEstimator
to allowmne.decoding.cross_val_multiscore()
to automatically detect whether thebase_estimator
is a classifier and use aStratifiedKFold
instead of aKFold
whencv
is 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 forthreshold
is now calculated based on the array sizes inX
, by Eric LarsonFix bug in
mne.simulation.simulate_raw()
withuse_cps=True
where CPS was not actually used by Eric LarsonFix bug in
mne.simulation.simulate_raw()
where 1- and 3-layer BEMs were not properly transformed usingtrans
by Eric LarsonFix bug in
mne.viz.plot_alignment()
where the head surface file-head.fif
was 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=False
by Clemens BrunnerFix bug in
mne.make_fixed_length_events()
when hitting corner case problems rounding to sample numbers by Eric LarsonFix bug in
mne.Epochs
when passing events as list withevent_id=None
by Alex GramfortFix bug in
mne.Report.add_figs_to_section
when passingnumpy.ndarray
by Eric LarsonFix bug in CSS class setting in
mne.Report
BEM section by Eric LarsonFix bug in
Annotations
where 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.annotations
where 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_surfaces
command where--force
(to bypass topology check failures) was ignored by Eric LarsonFix bug in
mne.preprocessing.maxwell_filter()
when providingorigin
in'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 ignoredcolorbar
argument 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.Epochs
andmne.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 coreg
where 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=1
tomne.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=False
was ignored by Eric LarsonFix bug in
mne.io.Raw.plot_psd()
whenpicks is not None
andpicks
spans more than one channel type by Eric LarsonFix bug in
mne.make_forward_solution
when 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_mask
argument frommne.viz.plot_topomap()
by Eric LarsonUnknown measurement dates are now stored as
info['meas_date'] = None
rather than using the current date.None
is 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_epochs
has been refactored intomne.time_frequency.csd_fourier()
andmne.time_frequency.csd_multitaper()
, by Marijn van Vlietmne.time_frequency.csd_array
has been refactored intomne.time_frequency.csd_array_fourier()
andmne.time_frequency.csd_array_multitaper()
, by Marijn van VlietAdded
clean_names=False
parameter 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_raw
are 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_epochs
andmne.beamformer.dics_source_power
are now deprecated in favor ofmne.beamformer.make_dics()
,mne.beamformer.apply_dics()
, andmne.beamformer.apply_dics_csd()
, by Marijn van Vliet