Version 0.15 (2017-10-20)#
Changelog#
mne.channels.Layout.plot()
andmne.viz.plot_layout()
now allows plotting a subset of channels withpicks
argument by Jaakko LeppakangasAdd .bvef extension (BrainVision Electrodes File) to
mne.channels.read_montage
by Jean-Baptiste SchirattiAdd
mne.decoding.cross_val_multiscore()
to allow scoring of multiple tasks, typically used withmne.decoding.SlidingEstimator
, by Jean-Remi KingAdd
mne.decoding.ReceptiveField
module for modeling electrode response to input features by Chris HoldgrafAdd
mne.decoding.TimeDelayingRidge
class, used by default bymne.decoding.ReceptiveField
, to speed up auto- and cross-correlation computations and enable Laplacian regularization by Ross Maddox and Eric LarsonAdd new
mne.datasets.mtrf
dataset by Chris HoldgrafAdd example of time-frequency decoding with CSP by Laura Gwilliams
Add
mne.decoding.SPoC
to fit and apply spatial filters based on continuous target variables, by Jean-Remi King and Alexandre BarachantAdd Fieldtrip’s electromyogram dataset, by Alexandre Barachant
Add
reject_by_annotation
option tomne.preprocessing.find_eog_events()
(which is also utilised bymne.preprocessing.create_eog_epochs()
) to omit data that is annotated as bad by Jaakko LeppakangasAdd example for fast screening of event-related dynamics in frequency bands by Denis Engemann
Add
mne.time_frequency.EpochsTFR.save()
by Jaakko LeppakangasAdd butterfly mode (toggled with ‘b’ key) to
mne.io.Raw.plot()
by Jaakko LeppakangasAdd
axes
parameter to plot_topo functions by Jaakko LeppakangasAdd options to change time windowing in
mne.chpi.filter_chpi()
by Eric Larsonmne.channels.Montage.plot
,mne.channels.DigMontage.plot()
, andmne.viz.plot_montage()
now allow plotting channel locations as a topomap by Clemens BrunnerAdd
background_color
parameter tomne.Evoked.plot_topo()
andmne.viz.plot_evoked_topo()
and improve axes rendering as done inmne.viz.plot_compare_evokeds()
by Alex GramfortAdd support for GDF files in
mne.io.read_raw_edf()
by Nicolas BarascudAdd
mne.io.find_edf_events
for getting the events as they are in the EDF/GDF header by Jaakko LeppakangasSpeed up
mne.io.Raw.plot()
andmne.Epochs.plot()
using (automatic) decimation based on low-passing withdecim='auto'
parameter by Eric Larson and Jaakko LeppakangasAdd
mne.inverse_sparse.mxne_optim.dgap_l21l1
for computing the duality gap for TF-MxNE as the new stopping criterion by Daniel StrohmeierAdd option to return a list of
Dipole
objects in sparse source imaging methods by Daniel StrohmeierAdd
mne.inverse_sparse.make_stc_from_dipoles()
to generate stc objects from lists of dipoles by Daniel StrohmeierAdd
mne.channels.find_ch_connectivity
that tries to infer the correct connectivity template using channel info. If no template is found, it computes the connectivity matrix usingDelaunay
triangulation of the 2d projected channel positions by Jaakko LeppakangasAdd IO support for EGI MFF format by Jaakko Leppakangas and ramonapariciog
Add option to use matplotlib backend when plotting with
mne.viz.plot_source_estimates()
by Jaakko LeppakangasAdd
mne.channels.Montage.get_pos2d
to get the 2D positions of channels in a montage by Clemens BrunnerAdd MGH 60- and 70-channel standard montages to
mne.channels.read_montage
by Eric LarsonAdd option for embedding SVG instead of PNG in HTML for
mne.Report
by Eric LarsonAdd confidence intervals, number of free parameters, and χ² to
mne.fit_dipole()
andmne.read_dipole()
by Eric Larsonmne.SourceEstimate.data
is now writable, writing to it will also updatemne.SourceEstimate.times
by Marijn van Vlietmne.io.Raw.plot()
andmne.Epochs.plot()
now use anti-aliasing to draw signals by Clemens BrunnerAllow using saved
DigMontage
to import digitization tomne.gui.coregistration()
by Jaakko LeppakangasAdd function
mne.channels.get_builtin_montages()
to list all built-in montages by Clemens Brunnermne.decoding.SlidingEstimator
andmne.decoding.GeneralizingEstimator
now accept**fit_params
at fitting by Jean-Remi KingAdd
mne.VectorSourceEstimate
class which enables working with both source power and dipole orientations by Marijn van VlietAdd option
pick_ori='vector'
tomne.minimum_norm.apply_inverse()
to producemne.VectorSourceEstimate
by Marijn van VlietAdd support for
numpy.random.RandomState
argument toseed
instatistical clustering functions
and better documentation of exact 1-sample tests by Eric LarsonExtend
mne.viz.plot_epochs_image()
/mne.Epochs.plot_image()
with regards to grouping by or aggregating over channels. See the new example atexamples/visualization/plot_roi_erpimage_by_rt.py
by Jona SassenhagenAdd bootstrapped confidence intervals to
mne.viz.plot_compare_evokeds()
by Jona Sassenhagen and Denis EngemannAdd example on how to plot ERDS maps (also known as ERSP) by Clemens Brunner
Add support for volume source spaces to
spatial_src_connectivity
andspatio_temporal_src_connectivity
by Alex GramfortPlotting raw data (
mne.viz.plot_raw()
ormne.io.Raw.plot()
) with events now includes event numbers (if there are not more than 50 events on a page) by Clemens BrunnerAdd filtering functions
mne.Epochs.filter()
andmne.Evoked.filter()
, as well aspad
argument tomne.io.Raw.filter()
by Eric LarsonAdd high frequency somatosensory MEG dataset by Jussi Nurminen
Add reduced set of labels for HCPMMP-1.0 parcellation in
mne.datasets.fetch_hcp_mmp_parcellation()
by Eric LarsonEnable morphing between hemispheres with
mne.compute_morph_matrix
by Christian BrodbeckAdd
return_residual
tomne.minimum_norm.apply_inverse()
by Eric LarsonAdd
return_drop_log
tomne.preprocessing.compute_proj_eog()
andmne.preprocessing.compute_proj_ecg()
by Eric LarsonAdd time cursor and category/amplitude status message into the single-channel evoked plot by Jussi Nurminen
BUG#
Fixed a bug when creating spherical volumetric grid source spaces in
setup_volume_source_space()
by improving the minimum-distance computations, which in general will decrease the number of used source space points by Eric LarsonFix bug in
mne.io.read_raw_brainvision()
read .vhdr files with ANSI codepage by Okba Bekhelifi and Alex GramfortFix unit scaling when reading in EGI digitization files using
mne.channels.read_dig_montage
by Matt BoggessFix
picks
default inmne.io.Raw.filter()
to includeref_meg
channels by default by Eric LarsonFix
mne.decoding.CSP
order of spatial filter inpatterns_
by Alexandre Barachantmne.concatenate_epochs()
now maintains the relative position of events during concatenation by Alexandre BarachantFix bug in script
mne make_scalp_surfaces
by Denis Engemann (this bug prevented creation of high-resolution meshes when they were absent in the first place.)Fix writing of raw files with empty set of annotations by Jaakko Leppakangas
Fix bug in
mne.preprocessing.ICA.plot_properties()
where merging gradiometers would fail by Jaakko LeppakangasFix
mne.viz.plot_sensors()
to maintain proper aspect ratio by Eric LarsonFix
mne.viz.plot_topomap()
to allow 0 contours by Jaakko LeppakangasFix
mne.preprocessing.ICA
source-picking to increase threshold for rank estimation to 1e-14 by Jesper Duemose NielsenFix
mne.set_bipolar_reference()
to support duplicates in anodes by Jean-Baptiste Schiratti and Alex GramfortFix visuals of
mne.viz.plot_evoked()
and a bug where ylim changes when using interactive topomap plotting by Jaakko LeppakangasFix
mne.Evoked.plot_topomap()
when using themask
argument with paired gradiometers by Eric LarsonFix bug in
mne.Label.fill()
where an empty label raised an error, by Eric LarsonFix
mne.io.read_raw_ctf()
to also include the samples in the last block by Jaakko LeppakangasFix
mne.preprocessing.ICA.save()
to close file before attempting to delete it when write fails by Jesper Duemose NielsenFix
mne.simulation.simulate_evoked()
to use nave parameter instead of snr, by Yousra BekhtiFix
mne.read_bem_surfaces()
for BEM files missing normals by Christian BrodbeckFix
mne.transform_surface_to()
to actually copy whencopy=True
by Eric LarsonFix
mne.io.read_raw_brainvision()
to read vectorized data correctly by Jaakko Leppakangas and Phillip AldayFix
mne.connectivity.spectral_connectivity
so that ifn_jobs > 1
it does not ignore lastn_epochs % n_jobs
epochs by Mikołaj MagnuskiFix
mne.io.read_raw_edf()
to infer sampling rate correctly when reading EDF+ files where tal-channel has a higher sampling frequency by Jaakko LeppakangasFix default value of
kind='topomap'
inmne.channels.Montage.plot
to be consistent withmne.viz.plot_montage()
by Clemens BrunnerFix bug in
to_data_frame
where non-consecutive picks would make the function crash by Jaakko LeppakangasFix channel picking and drop in
mne.time_frequency.EpochsTFR
by Lukáš HejtmánekFix
mne.SourceEstimate.transform()
to properly updatemne.SourceEstimate.times
by Marijn van VlietFix
mne.viz.plot_evoked_joint()
to allow custom titles without appending information about the channels by Jaakko LeppakangasFix writing a forward solution after being processed by
mne.forward.restrict_forward_to_label()
ormne.forward.restrict_forward_to_stc()
by Marijn van VlietFix bug in
mne.viz.plot_compare_evokeds()
wheretruncate_yaxis
was ignored (default is nowFalse
), by Jona SassenhagenFix bug in
mne.viz.plot_evoked()
where all xlabels were removed when usingspatial_colors=True
, by Jesper Duemose NielsenFix field mapping
mne.make_field_map()
and MEG bad channel interpolation functions (e.g.,mne.Evoked.interpolate_bads()
) to choose a better number of components during pseudoinversion when few channels are available, by Eric LarsonFix bug in
mne.io.read_raw_brainvision()
, changed default to read coordinate information if available and added test, by Jesper Duemose NielsenFix bug in
mne.SourceEstimate.to_original_src()
where morphing failed if two vertices map to the same target vertex, by Marijn van VlietFix
mne.preprocessing.Xdawn
to give verbose error messages about rank deficiency and handle transformingmne.Evoked
, by Eric LarsonFix bug in DC and Nyquist frequency multitaper PSD computations, e.g. in
mne.time_frequency.psd_multitaper
, by Eric LarsonFix default padding type for
mne.Epochs.resample()
andmne.Evoked.resample()
to be'edge'
by default, by Eric LarsonFix
mne.inverse_sparse.mixed_norm()
,mne.inverse_sparse.tf_mixed_norm()
andmne.inverse_sparse.gamma_map()
to work with volume source space and sphere head models in MEG by Alex Gramfort and Yousra BekhtiFix
mne.Evoked.as_type()
channel renaming to append'_v'
instead of'_virtual'
to channel names to comply with shorter naming (15 char) requirements, by Eric LarsonFix treatment of CTF HPI coils as fiducial points in
mne.gui.coregistration()
by Eric LarsonFix resampling of events along with raw in
mne.io.Raw()
to now take into consideration the value offirst_samp
by Chris BaileyFix labels of PSD plots in
mne.viz.plot_raw_psd()
by Alejandro WeinsteinFix depth weighting of sparse solvers (
mne.inverse_sparse.mixed_norm()
,mne.inverse_sparse.tf_mixed_norm()
andmne.inverse_sparse.gamma_map()
) with free orientation source spaces to improve orientation estimation by Alex Gramfort and Yousra BekhtiFix the threshold in
mne.beamformer.rap_music()
to properly estimate the rank by Yousra BekhtiFix treatment of vector inverse in
mne.minimum_norm.apply_inverse_epochs()
by Emily StephenFix
mne.find_events()
when passing a list as stim_channel parameter by Alex GramfortFix parallel processing when computing covariance with shrinkage estimators by Denis Engemann
API#
Removed the
mne.datasets.megsim
dataset because it was taken down by its host (MRN). Use themne.simulation
functions instead, by Eric LarsonAdd
skip_by_annotation
tomne.io.Raw.filter()
to process data concatenated with e.g.mne.concatenate_raws()
separately. This parameter will default to the old behavior (treating all data as a single block) in 0.15 but will change toskip_by_annotation='edge'
, which will separately filter the concatenated chunks separately, in 0.16. This should help prevent potential problems with filter-induced ringing in concatenated files, by Eric LarsonICA channel names have now been reformatted to start from zero, e.g.
"ICA000"
, to match indexing schemes inmne.preprocessing.ICA
and related functions, by Stefan Repplinger and Eric LarsonAdd
mne.beamformer.make_lcmv()
andmne.beamformer.apply_lcmv()
,mne.beamformer.apply_lcmv_epochs()
, andmne.beamformer.apply_lcmv_raw()
to enable the separate computation and application of LCMV beamformer weights by Britta Westner, Alex Gramfort, and Denis Engemann.Add
weight_norm
parameter to enable both unit-noise-gain beamformer and neural activity index (weight normalization) and make whitening optional by allowingnoise_cov=None
inmne.beamformer.lcmv
,mne.beamformer.lcmv_epochs
, andmne.beamformer.lcmv_raw
, by Britta Westner, Alex Gramfort, and Denis Engemann.Add new filtering mode
fir_design='firwin'
(default in the next 0.16 release) that gets improved attenuation using fewer samples compared tofir_design='firwin2'
(default in the current 0.15 release) by Eric LarsonMake the goodness of fit (GOF) of the dipoles returned by
mne.beamformer.rap_music()
consistent with the GOF of dipoles returned bymne.fit_dipole()
by Alex Gramfort.mne.decoding.SlidingEstimator
will now replacemne.decoding.TimeDecoding
to make it generic and fully compatible with scikit-learn, by Jean-Remi King and Alex Gramfortmne.decoding.GeneralizingEstimator
will now replacemne.decoding.GeneralizationAcrossTime
to make it generic and fully compatible with scikit-learn, by Jean-Remi King and Alex Gramfortmne.viz.decoding.plot_gat_times
,mne.viz.decoding.plot_gat_matrix
are now deprecated. Use matplotlib instead as shown in the examples, by Jean-Remi King and Alex GramfortAdd
norm_trace
parameter to control single-epoch covariance normalization inmne.decoding.CSP
, by Jean-Remi KingAllow passing a list of channel names as
show_names
in functionmne.viz.plot_sensors()
and methodsmne.Evoked.plot_sensors()
,mne.Epochs.plot_sensors()
andmne.io.Raw.plot_sensors()
to show only a subset of channel names by Jaakko LeppakangasMake function
mne.io.eeglab.read_events_eeglab
public to allow loading overlapping events from EEGLAB files, by Jona Sassenhagen.mne.find_events()
mask_type
parameter will change from'not_and'
to'and'
in 0.16.Instead of raising an error, duplicate channel names in the data file are now appended with a running number by Jaakko Leppakangas
mne.io.read_raw_edf()
has now'auto'
option forstim_channel
(default in version 0.16) that automatically detects if EDF annotations or GDF events exist in the header and constructs the stim channel based on these events by Jaakko Leppakangasmne.io.Raw.plot_psd()
now rejects data annotated bad by default. Turn off withreject_by_annotation=False
, by Eric Larsonmne.set_eeg_reference()
and the related methods (e.g.,mne.io.Raw.set_eeg_reference()
) have a new argumentprojection
, which if set to False directly applies an average reference instead of adding an SSP projector, by Clemens BrunnerDeprecate
plot_trans
in favor ofmne.viz.plot_alignment()
and addbem
parameter for plotting conductor model by Jaakko Leppakangasmne.beamformer.tf_lcmv
now has araw
parameter to accommodate epochs objects that already have data loaded withpreload=True
, withmne.Epochs.load_data()
, or that are read from disk, by Eric Larsonmne.time_frequency.psd_welch
andmne.time_frequency.psd_array_welch()
now use a Hamming window (instead of a Hann window) by Clemens Brunnerpicks
parameter inmne.beamformer.lcmv
,mne.beamformer.lcmv_epochs
,mne.beamformer.lcmv_raw
,mne.beamformer.tf_lcmv
andmne.beamformer.rap_music()
is now deprecated and will be removed in 0.16, by Britta Westner, Alex Gramfort, and Denis Engemann.The keyword argument
frequencies
has been deprecated in favor offreqs
in various time-frequency functions, e.g.mne.time_frequency.tfr_array_morlet()
, by Eric LarsonAdd
patterns=False
parameter inmne.decoding.ReceptiveField
. Turn on to compute inverse model coefficients, by Nicolas BarascudThe
scale
,scale_time
, andunit
parameters have been deprecated in favor ofscalings
,scalings_time
, andunits
inmne.viz.plot_evoked_topomap()
and related functions, by Eric Larsonloose
parameter in inverse solvers has now a default value'auto'
depending if the source space is a surface, volume, or discrete type by Alex Gramfort and Yousra BekhtiThe behavior of
'mean_flip'
label-flipping inmne.extract_label_time_course()
and related functions has been changed such that the flip, instead of having arbitrary sign, maximally aligns in the positive direction of the normals of the label, by Eric LarsonDeprecate force_fixed and surf_ori in
mne.read_forward_solution()
by Daniel Strohmeiermne.convert_forward_solution()
has a new argumentuse_cps
, which controls whether information on cortical patch statistics is applied while generating surface-oriented forward solutions with free and fixed orientation by Daniel Strohmeiermne.write_forward_solution()
writes a forward solution as a forward solution with free orientation in X/Y/Z RAS coordinates if it is derived from a forward solution with free orientation and as a forward solution with fixed orientation in surface-based local coordinates otherwise by Daniel Strohmeierloose=None
in inverse solvers is deprecated, use explicitlyloose=0
for fixed constraint andloose=1.0
for free orientations by Eric LarsonZero-channel-value in PSD calculation in
mne.viz.plot_raw_psd()
has been relaxed from error to warning by Alejandro WeinsteinExpose “rank” parameter in
mne.viz.plot_evoked_white()
to correct rank estimates on the spot during visualization by Denis Engemann, Eric Larson, Alex Gramfort.Show channel name under mouse cursor on topography plots by Jussi Nurminen
Return maximum response amplitude from
mne.Evoked.get_peak()