Version History

Known issues

Check for open issues, or report new ones on GitHub.

  • Fixed in 0.38.3, Windows only (#52): due to unexpected data loss in multiprocessing.sharedctypes.RawArray for large arrays, permutation tests on large datasets using multiprocessing could return spurious results in which p-values for all clusters were reported as exactly 0.

Major changes

New in 0.40

  • Due to a change in randomization algorithm, the permutation distribution for vector-based mass univariate tests may be different (old and new versions are both valid randomizations).

  • boosting() now accepts data with ragged trials (trials of different lengths).

  • boosting() now stores both the l1 and l2 loss of the final fit.

  • Pipeline:

  • API:

    • Plotting parameters ncol and nrow have been renamed to columns and rows.

    • Factor cells that are not specified in labels are now ordered by their first ocurrence in x (previously order was alphabetic).

    • The pool_error argument is replaced by within_subject_error.

New in 0.39

  • testnd.LM now supports permutation-based significance testing.

  • New NDVar functions for time series and an auditory model: pad(), gammatone_bank(), edge_detector()

  • API:

    • The common ds parameter has been renamed to data to be more consistent with other packages.

    • The evaluation context for Dataset does not include from numpy import * anymore, to avoid overwriting builtins like abs(); instead, NumPy is accessible as numpy.

    • testnd.LM: The default number of permutations is now 10000 and the argument order has changed slightly to be consistent with other testnd tests. To use testnd.LM for two-stage tests, set samples=0.

    • plot.Barplot parameter c renamed to color.

New in 0.38

  • boosting() optimized (as a consequence, the progress bar has been disabled).

New in 0.37

New in 0.36

New in 0.35

New in 0.34

New in 0.33

New in 0.32

  • Requires at least Python 3.7

  • API changes:

    • Consistent class names for tests in test, testnd and pipeline.

    • plot.Timeplot argument order: second and third argument switched to facilitate plotting single category.

    • Significance markers for trends (.05 < p ≤ .1) are disabled by default.

  • boosting():

    • When using a basis, the function now considers the effect of the basis when normalizing predictors. This change leads to slightly different results, so TRFs should not be compared between this and previous versions. To facilitate keeping track of this change, it corresponds to a change in the BoostingResult.algorithm_version attribute from -1 to 0.

    • Different tstart/tstop for different predictors (contributed by Joshua Kulasingham)

    • Cross-validation of model fit (test parameter)

  • plot.Style to control advanced plotting options by category (see Boxplot example).

  • New functions/methods:

  • MneExperiment pipeline:

    • Methods with decim parameter now also have samplingrate parameter

    • More control over Events

New in 0.31

New in 0.30

New in 0.29

New in 0.28

  • Transition to Python 3.6

  • API changes:

    • testnd.ANOVA: The match parameter is now determined automatically and does not need to be specified anymore in most cases.

    • testnd.TTestOneSample.diff renamed to testnd.TTestOneSample.difference.

    • plot.Histogram: following matplotlib, the normed parameter was renamed to density.

    • Previously capitalized argument and attribute names Y, X and Xax are now lowercase.

    • Topomap-plot argument order changed to provide consistency between different plots.

  • NDVar and Var support for round(x)

  • MneExperiment pipeline:

    • Independent measures t-test

New in 0.27

New in 0.26

New in 0.25

  • Installation with conda (see Installing) and $ eelbrain launch script (see Getting Started).

  • API:

    • NDVar objects now inherit names through operations.

    • Assignment to a Dataset overwrites variable .name attributes, unless the Dataset key is a pythonified version of .name.

  • GUI/plotting:

    • When using iPython 5 or later, GUI start and stop is now automatic. It is possible to revert to the old behavior with plot.configure().

    • There are new hotkeys for most plots (see the individual plots’ help for details).

    • Plots automatically rescale when the window is resized.

  • MneExperiment:

  • Deconvolution using boosting().

  • Loading and saving *.wav files (load.wav() and save.wav()).

New in 0.24

New in 0.23

New in 0.22

New in 0.21

New in 0.20

New in 0.19

  • Two-stage tests (see pipeline.MneExperiment.tests).

  • Safer cache-handling. See note at Analysis.

  • Dataset.head() and Dataset.tail() methods for more efficiently inspecting partial Datasets.

  • The default format for plots in reports is now SVG since they are displayed correctly in Safari 9.0. Use plot.configure() to change the default format.

  • API: Improvements in plot.Topomap with concomitant changes in the constructor signature. For examples see the meg/topographic plotting example.

  • API: plot.ColorList has a new argument called labels.

  • API: testnd.ANOVA attribute probability_maps renamed to p analogous to other testnd results.

  • Rejection-GUI: The option to plot the data range only has been removed.

New in 0.18

  • API: The first argument for pipeline.MneExperiment.plot_annot() is now parc.

  • API: the fill_in_missing parameter to combine() has been deprecated and replaced with a new parameter called incomplete.

  • API: Several plotting functions have a new xticklabels parameter to suppress x-axis tick labels (e.g. plot.UTSStat).

  • The objects returned by plot.brain plotting functions now contain a plot_colorbar() method to create a corresponding plot.ColorBar plot.

  • New function choose() to combine data in different NDVars on a case by case basis.

  • Rejection-GUI (gui.select_epochs()): Press Shift-i when hovering over an epoch to enter channels for interpolation manually.

  • pipeline.MneExperiment.show_file_status() now shows the last modification date of each file.

  • Under OS X 10.8 and newer running code under a notifier statement now automatically prevents the computer from going to sleep.

New in 0.17

  • pipeline.MneExperiment.brain_plot_defaults can be used to customize PySurfer plots in movies and reports.

  • pipeline.MneExperiment.trigger_shift can now also be a dictionary mapping subject name to shift value.

  • The rejection GUI now allows selecting individual channels for interpolation using the ‘i’ key.

  • Parcellations based on combinations of existing labels, as well as parcellations based on regions around points specified in MNI coordinates can now be defined in pipeline.MneExperiment.parcs.

  • Source space NDVar can be indexed with lists of region names, e.g., ndvar.sub(source=['cuneus-lh', 'lingual-lh']).

  • API: plot.brain.bin_table() function signature changed slightly (more parameters, new hemi parameter inserted to match other functions’ argument order).

  • API: combine() now raises KeyError when trying to combine Dataset objects with unequal keys; set fill_in_missing=True to reproduce previous behavior.

  • API: Previously, Var.as_factor() mapped unspecified values to str(value). Now they are mapped to ''. This also applies to pipeline.MneExperiment.variables entries with unspecified values.

New in 0.16

New in 0.15

  • The Eelbrain package on the PYPI is now compiled with Anaconda. This means that the package can now be installed into an Anaconda distribution with pip, whereas easy_install has to be used for the Canopy distribution.

  • GUI gui.select_epochs(): Set marked channels through menu (View > Mark Channels)

  • Datasets can be saved as tables in RTF format (Dataset.save_rtf()).

  • API plot.Timeplot: the default spread indicator changed to SEM, and there is a new argument for timelabels.

  • API: test.anova is now a function with a slightly changed signature. The old class has been renamed to test.ANOVA.

  • API: test.oneway was removed. Use test.ANOVA.

  • API: the default value of the plot.Timeplot parameter bottom changed from 0 to None (determined by the data).

  • API: Factor.relabel() renamed to Factor.update_labels().

  • Plotting: New option for the figure legend 'draggable' (drag the legend with the mouse pointer).

New in 0.14

  • API: the plot.Topomap argument sensors changed to sensorlabels.

  • GUI: The python/Quit Eelbrain menu command now closes all windows to ensure that unsaved documents are handled properly. In order to yield to the terminal without closing windows, use the Go/Yield to Terminal command (Command-Alt-Q).

  • testnd.TContrastRelated: support for unary operation abs.

New in 0.13

  • The gui.select_epochs() GUI can now also be used to set bad channels. pipeline.MneExperiment subclasses will combine bad channel information from rejection files with bad channel information from bad channel files. Note that while bad channel files set bad channels for a given raw file globally, rejection files set bad channels only for the given epoch.

  • Factor objects can now remember a custom cell order which determines the order in tables and plots.

  • The Var.as_factor() method can now assign all unmentioned codes to a default value.

  • MneExperiment:

New in 0.12

  • API: Dataset construction changed, allows setting the number of cases in the Dataset.

  • API: plot.SensorMap2d was renamed to plot.SensorMap.

  • MneExperiment:

    • API: The default number of samples for reports is now 10’000.

    • New epoch parameter 'n_cases': raise an error if an epoch definition does not yield expected number of trials.

    • A custom baseline period for epochs can now be specified as a parameter in the epoch definition (e.g., 'baseline': (-0.2, -0.1)). When loading data, specifying baseline=True uses the epoch’s custom baseline.

New in 0.11

  • MneExperiment:

    • Change in the way the covariance matrix is defined: The epoch for the covariance matrix should be specified in MneExperiment.epochs['cov']. The regularization is no longer part of pipeline.MneExperiment.set_inv(), but is instead set with MneExperiment.set(cov='reg') or MneExperiment.set(cov='noreg').

    • New option cov='bestreg' automatically selects the regularization parameter for each subejct.

  • Var.as_factor() allows more efficient labeling when multiple values share the same label.

  • API: Previously plot.configure_backend() is now plot.configure()

New in 0.10

  • Tools for generating colors for categories (see Plotting).

  • Plots now all largely respect matplotlib rc-parameters (see Customizing Matplotlib).

  • Fixed an issue in the testnd module that could affect permutation based p-values when multiprocessing was used.

New in 0.9

  • Factor API change: The rep argument was renamed to repeat.

  • T-values for regression coefficients through NDVar.ols_t().

  • pipeline.MneExperiment: subject name patterns and eog_sns are now handled automatically.

  • UTSStat and Barplot plots can use pooled error for variability estimates (on by default for related measures designs, can be turned off using the pool_error argument).

    • API: for consistency, the argument to specify the kind of error to plot changed to error in both plots.

New in 0.8

  • A new GUI application controls plots as well as the epoch selection GUI (see notes in the reference sections on Plotting and GUIs).

  • Randomization/Monte Carlo tests now seed the random state to make results replicable.

New in 0.6

  • New recipes (outdated).

New in 0.5

  • The eelbrain.lab and eelbrain.eellab modules are deprecated. Everything can now me imported from eelbrain directly.

New in 0.4

New in 0.3

  • Optimized clustering for cluster permutation tests.

New in 0.2

  • gui.SelectEpochs Epoch rejection GIU has a new “GA” button to plot the grand average of all accepted trials

  • Cluster permutation tests in testnd use multiple cores; To disable multiprocessing set eelbrain._stats.testnd.multiprocessing = False.

New in 0.1.7

  • gui.SelectEpochs can now be initialized with a single mne.Epochs instance (data needs to be preloaded).

  • Parameters that take NDVar objects now also accept mne.Epochs and mne.fiff.Evoked objects.

New in 0.1.5

  • plot.topo.TopoButterfly plot: new keyboard commands (t, left arrow, right arrow).