Hi,
We are pleased to announce the new 0.13 release of MNE-Python. As usual this release comes with new features, many improvements to usability, visualization and documentation and bug fixes.
A couple of major API changes are being implemented, so we recommend that users read through the changes carefully.
Support for Python 2.6 has been dropped, and the minimum supported dependencies are now NumPy 1.8, SciPy 0.12, and Matplotlib 1.3.
A few highlights
============
Our filtering functionality has been significantly improved:
In FIR filters the parameters filter_length, l_trans_bandwidth, and h_trans_bandwidth are now automatically determined. We also added a phase argument in e.g. in mne.io.Raw.filter(). This means that the new recommended defaults are l_trans_bandwidth='auto', h_trans_bandwidth='auto', and filter_length='auto'. This should generally reduce filter artifacts at the expense of slight decrease in effective filter stop-band attenuation. For details see Defaults in MNE-Python.
An improved phase='zero' zero-phase FIR filtering has been added.
We added a second-order sections (instead of (b, a) form) IIR filtering which commonly has less numerical error
We added a generic array-filtering function mne.filter.filter_data() for numpy arrays.
Constructing IIR filters in mne.filter.construct_iir_filter() will default to output='sos' in 0.14
We extended and tuned our visualization functionality:
The ordering parameters ‘selection’ and ‘position’ were added to mne.viz.plot_raw() to allow plotting of specific regions of the sensor array.
mne.viz.plot_trans() now also shows head position indicators.
We have new plotting functions for independent component properties, similar to `pop_prop` in EEGLAB.
There is a new function mne.viz.plot_compare_evokeds() to show multiple evoked time courses at a single location, or the mean over a ROI, or the GFP. This is achieved by automatically averaging and calculating a confidence interval if multiple subjects are given.
We now have an interactive colormap option in our image plotting functions.
Subsets of sensors can now be interactively selected by the so called lasso selector. Checkout mne.viz.plot_sensors() and mne.viz.plot_raw() when using order=’selection’ or order=’position’.
In viz.plot_bem() brain surfaces can now be plotted.
mne.preprocessing.ICA.plot_components() can now be used interactively.
We refactored and extended our multvariate statistical analysis functionality and made it more compatible with scikit-klearn:
The mne.decoding.TimeFrequency allows to transform signals in scikit-learn pipelines.
the mne.decoding.UnsupervisedSpatialFilter provides interface for scikit-learn decomposition algorithms such that they can be easily used with MNE data.
We added support for multiclass decoding in mne.decoding.CSP.
And as always many more good things:
There is now a --filterchpi option to mne browse_raw.
mne.Evoked objects can now be decimated with mne.Evoked.decimate().
Functional near-infrared spectroscopy (fNIRS) data can now be processed.
MaxShield (IAS) can now be read for evoked data (e.g., from the acquisition machine) in mne.read_evokeds()
We added a single trial container for time-frequency representations (mne.time_frequency.EpochsTFR), an average parameter to mne.time_frequency.tfr_morlet() and mne.time_frequency.tfr_multitaper(). This way time-frequency transforms can be easily computed on single trial epochs without averaging.
Notable API changes
================
Components obtained from mne.preprocessing.ICA are now sorted by explained variance
Adding an EEG reference channel using mne.io.add_reference_channels() will now use its digitized location from the FIFF file if present.
The add_eeg_ref argument in core functions like mne.io.read_raw_fif() and mne.Epochs has been deprecated in favor of using mne.set_eeg_reference() and equivalent instance methods like raw.set_eeg_reference().
When CTF gradient compensation is applied to raw data, it is no longer reverted on save of mne.io.Raw.save().
Weighted addition and subtraction of Evoked as ev1 + ev2 and ev1 - ev2 have been deprecated, use explicit mne.combine_evoked(...,weights='nave') instead.
Deprecated support for passing a lits of filenames to mne.io.Raw constructor, use mne.io.read_raw_fif() and mne.concatenate_raws() instead.
Now channels with units of ‘C’, ‘µS’, ‘uS’, ‘ARU’ and ‘S’ will be turned to misc by default in mne.io.read_raw_brainvision().
Add mne.io.anonymize_info() function to anonymize measurements and add methods to mne.io.Raw, mne.Epochs and mne.Evoked.
Deprecated the baseline parameter in mne.Evoked. Use mne.Epochs.apply_baseline() instead.
The default dataset location has been changed from examples/ in the MNE-Python root directory to ~/mne_data in the user’s home directory
mne.decoding.EpochsVectorizer has been deprecated in favor of mne.decoding.Vectorizer.
Deprecated mne.time_frequency.cwt_morlet() and mne.time_frequency.single_trial_power() in favour of mne.time_frequency.tfr_morlet()with parameter average=False.
Extended Infomax is now the new default in mne.preprocessing.infomax() (extended=True).
For a full list of improvements and API changes, see:
http://martinos.org/mne/stable/whats_new.html#version-0-13
To install the latest release the following command should do the job:
pip install --upgrade --user mne
As usual we welcome your bug reports, feature requests, critiques and
contributions.
Some links:
- https://github.com/mne-tools/mne-python (code + readme on how to install)
- http://martinos.org/mne/stable/ (full MNE documentation)
Follow us on Twitter: https://twitter.com/mne_python
Regards,
The MNE-Python developers
People who contributed to this release (in alphabetical order):
* Alexander Rudiuk
* Alexandre Barachant
* Alexandre Gramfort
* Asish Panda
* Camilo Lamus
* Chris Holdgraf
* Christian Brodbeck
* Christopher J. Bailey
* Christopher Mullins
* Clemens Brunner
* Denis A. Engemann
* Eric Larson
* Federico Raimondo
* Félix Raimundo
* Guillaume Dumas
* Jaakko Leppakangas
* Jair Montoya
* Jean-Remi King
* Johannes Niediek
* Jona Sassenhagen
* Jussi Nurminen
* Keith Doelling
* Mainak Jas
* Marijn van Vliet
* Michael Krause
* Mikolaj Magnuski
* Nick Foti
* Phillip Alday
* Simon-Shlomo Poil
* Teon Brooks
* Yaroslav Halchenko