Skip to content

v1.5.x

v1.5.0 (2023-11-30)

This release contains a number of very important bug fixes that address problems related to decoding, time-frequency analysis, and inverse modeling. All users are encouraged to update.

🆕 New features & enhancements

⚠ Behavior changes

  • The default cache directory is now _cache within the derivatives folder when using memory_location=True, set memory_subdir="joblib" to get the behavior from v1.4 (#778 by @larsoner)
  • Before cleaning epochs via ICA, we used to reject any epochs execeeding the ica_reject criteria. However, this may lead to the unnecessary exclusion of epochs that could have been salvaged through ICA cleaning. Now, we only apply ica_reject to the epochs used for ICA fitting. After the experimental epochs have been cleaned with ICA (preprocessing/apply_ica step), any remaining large-amplitude artifacts can be removed via reject, which is used in the last preprocessing step, preprocessing/ptp_reject. (#806 by @hoechenberger)
  • MVPA / decoding used to be performed on un-cleaned epochs in the past. Now, cleaned epochs will be used by default (please also see the "Bug fixes" section below). (#796 by @hoechenberger)

⚕ Code health

🐛 Bug fixes

  • Fixed bug where cache would not invalidate properly based on output file changes and steps could be incorrectly skipped. All steps will automatically rerun to accommodate the new, safer caching scheme (#756 by @larsoner)
  • Fixed bug with parallelization across runs for Maxwell filtering (#761 by @larsoner)
  • Fixed bug where head position files were not written with a proper suffix and extension (#761 by @larsoner)
  • Fixed bug where default values for decoding_csp_times and decoding_csp_freqs were not set dynamically based on the config parameters (#779 by @larsoner)
  • Fixed bug where the MNE logger verbosity was not respected inside parallel jobs (#813 by @larsoner)
  • A number of processing steps erroneously always operated on un-cleaned epochs (sensor/decoding_full_epochs, sensor/decoding_time_by_time, sensor/decoding_csp); or operated on un-cleaned epochs (without PTP rejection) if no ICA or SSP was requested (sensor/ime_frequency, sensor/make_cov) The bug in sensor/make_cov could propagate to the source level, as the covariance matrix is used for inverse modeling. (#796 by @hoechenberger)
  • Bad channels may have been submitted to MVPA (full epochs decoding, time-by-time decoding, CSP-based decoding) when not using Maxwell filtering (i.e., usually only EEG data was affected). This has now been fixed and data from bad channels is omitted from decoding. (#817 by @hoechenberger)