Changes

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.ttest_1samp.diff renamed to testnd.ttest_1samp.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

  • API changes:
    • A new global configure() function replaces module-level configuration functions.
    • Dataset: when a one-dimensional array is assigned to an unused key, the array is now automatically converted to a Var object.
    • SourceSpace.vertno has been renamed to SourceSpace.vertices.
  • Plotting:
    • The new name argument allows setting the window title without adding a title to the figure.
    • Plots that reresent time have a new method to synchronize the time axis on multiple plots: link_time_axis().
    • Plot source space time series: plot.brain.butterfly()
  • ANOVAs now support mixed models with between- and within-subjects factors (see examples at test.anova()).
  • load.fiff: when generating epochs from raw data, a new tstop argument allows specifying the time interval exclusive of the last sample.
  • New functions:
  • New methods:
  • MneExperiment pipeline:

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:
    • A new MneExperiment.sessions attribute replaces defaults['experiment'], with support for multiple sessions in one experiment (see Setting up the file structure).
    • The MneExperiment.epochs parameter sel_epoch has been removed, use base instead.
    • The setting raw='clm' has been renamed to raw='raw'.
    • Custom preprocessing pipelines (see MneExperiment.raw).
    • The model parameter for ANOVA tests is now optional (see MneExperiment.tests).
  • Reverse correlation using boosting().
  • Loading and saving *.wav files (load.wav() and save.wav()).

New in 0.24

  • API:
    • MneExperiment: For data from the NYU New York system converted with mne < 0.13, the MneExperiment.meg_system attribute needs to be set to "KIT-157" to distinguish it from data collected with the KIT UMD system.
    • masked_parameter_map() method of cluster-based test results: use of pmin=None is deprecated, use pmin=1 instead.
  • New test: test.TTestRel.
  • MneExperiment.make_report_rois() includes corrected p-values in reports for tests in more than one ROI
  • MneExperiment.make_rej() now has a decim parameter to improve display performance.
  • MneExperiment: BEM-solution files are now created dynamically with mne and are not cached any more. This can lead to small changes in results due to improved numerical precision. Delete old files to free up space with mne_experiment.rm('bem-sol-file', subject='*').
  • New MneExperiment.make_report_coreg() method.
  • New MneExperiment: analysis parameter connectivity
  • plot.TopoButterfly: press Shift-T for a large topo-map with sensor names.

New in 0.23

New in 0.22

  • Epoch Rejection GUI:
    • New “Tools” menu.
    • New “Info” tool to show summary info on the rejection.
    • New “Find Bad Channels” tool to automatically find bad channels.
    • Set marked channels by clicking on topo-map.
    • Faster page redraw.
  • plot.Barplot and plot.Boxplot: new cells argument to customize the order of bars/boxes.
  • MneExperiment: new method MneExperiment.show_rej_info().
  • NDVar: new method NDVar.label_clusters().
  • plot.configure(): option to revert to wxPython backend for plot.brain.

New in 0.21

  • MneExperiment:
    • New epoch parameters: trigger_shift and vars (see MneExperiment.epochs).
    • load_selected_events(): new vardef parameter to load variables from a test definition.
    • Log files stored in the root directory.
    • Parcellations (MneExperiment.parcs) based on combinations can also include split commands.
  • New Factor method: Factor.floodfill().
  • Model methods: get_table() replaced with as_table(), new head() and tail().
  • API: .sort_idx methods renamed to .sort_index.

New in 0.20

  • MneExperiment: new analysis parameter select_clusters='all' to keep all clusters in cluster tests (see select_clusters (cluster selection criteria)).
  • Use testnd.configure() to limit the number of CPUs that are used in permutation cluster tests.

New in 0.19

  • Two-stage tests (see 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 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.
  • 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

  • MneExperiment.brain_plot_defaults can be used to customize PySurfer plots in movies and reports.
  • 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 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 MneExperiment.variables entries with unspecified values.

New in 0.16

  • New function for plotting a legend for annot-files: plot.brain.annot_legend() (automatically used in reports).
  • Epoch definitions in MneExperiment.epochs can now include a 'base' parameter, which will copy the given “base” epoch and modify it with the current definition.
  • MneExperiment.make_mov_ttest() and MneExperiment.make_mov_ga_dspm() are fixed but require PySurfer 0.6.
  • New function: table.melt_ndvar().
  • API: plot.brain function signatures changed slightly to accommodate more layout-related arguments.
  • API: use Brain.image() instead of plot.brain.image().

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.t_contrast_rel: support for unary operation abs.

New in 0.13

  • The gui.select_epochs() GUI can now also be used to set bad channels. 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:
    • API: Subclasses should remove the subject and experiment parameters from MneExperiment.label_events().
    • API: MneExperiment can now be imported directly from eelbrain.
    • API: The MneExperiment._defaults attribute should be renamed to MneExperiment.defaults.
    • A draft for a guide at The MneExperiment Pipeline.
    • Cached files are now saved in a separate folder at root/eelbrain-cache. The cache can be cleared using MneExperiment.clear_cache(). To preserve cached test results, move the root/test folder into the root/eelbrain-cache folder.

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 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().
  • 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 for recipe-regression.

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).