Dev version¶
v1.11.0 (unreleased)¶
New features & enhancements¶
- Added
ignore_warningsconfig option to allow users to specify warnings to ignore when callingread_raw_bids(#1224 by @larsoner) - Added tracking of the current step in the terminal title (#1266 by @larsoner)
- Added a "Pipeline flow" section to the reports with an auto-generated diagram of the steps that ran for a subject and the files they passed to one another (#1291 by @larsoner)
- Added
report_image_formatconfig option to control the encoding of images embedded in reports, e.g.dict(raster="png")to trade larger reports for faster processing (#1300 by @larsoner) - Report HDF5 and HTML files are no longer rewritten when a step did not modify the report (requires MNE-Python ≥ 1.13; older versions keep the previous always-save behavior) (#1300 by @larsoner)
report_image_formatnow acceptsdict(raster="webp-lossy"), which encodes about as fast as PNG while producing reports roughly 3× smaller (requires MNE-Python ≥ 1.13) (#1304 by @larsoner)
Behavior changes¶
- The default for
mne_log_levelhas been changed from'error'to'warning'to make possible dataset and processing errors more visible (#1224 by @larsoner)
Requirements¶
- Minimum supported versions were raised to Python 3.11, MNE-Python 1.8, MNE-BIDS 0.16, and joblib 1.4.1, following SPEC 0 (#1289 by @larsoner)
Bug fixes¶
- Fixed spurious recomputation of the
initsteps on every run: the subject report was declared as a cached output but is legitimately rewritten by later steps, so its modification time always mismatched (#1300 by @larsoner) - Fixed report section ordering: run-specific sections now always appear in run order, even when parallelization across runs finishes them out of order (#1293 by @larsoner)
- All
FileLockacquisitions now time out after 10 minutes, so a contended lock raises an error naming the file rather than hanging the run forever (#1301 by @larsoner) - Handle contrasts with too few epochs for cross-validation by saving NaN scores, excluding invalid subject-level results from group statistics, and reporting the effective sample size (#1265 by @viranovskaya)
- Raise an informative error if
rest_epochs_durationis not set for resting-state data and document the parameter (#1272 by @viranovskaya) - Fixed bug where
log_levelwas not being applied to the MBPlogger (#1224 by @larsoner) - Corrected import order: remove channels before setting template montage as stated in
eeg_template_montage(#1220 by @dnacombo) - Fixed crash when concatenating epochs from runs with different bad channels. The pipeline now uses the union of bad channels across runs. (#1242 by @hoechenberger)
- Fixed a small CSP labeling glitch in the report. (#1241 by @hoechenberger)
- Fixed bug where
on_error"continue"and"debug"were not respected by theinitandfreesurfer/recon_allsteps, which could abort the whole run instead of moving on to (or debugging) the next subject (#1022 by @larsoner) - The pipeline now recognizes source space files named with a dash between the spacing letters and number (e.g.,
sample-oct-6-src.fif), avoiding needless recomputation (#1047 by @larsoner)
Code health and infrastructure¶
- Pinned Python version for development to 3.13. (#1243 by @hoechenberger)
- Improved the accounting of options used in each step (#1268 by @larsoner)
- The CSP decoding step now band-pass filters the epochs once per passband instead of once per table row, cutting its runtime roughly in half with identical results (#1304 by @larsoner)
- The pipeline flow recordings are now read and written with the standard-library
jsonmodule rather thanjson_tricks(about 8× faster for their plain-JSON schema) and memoized per process, so a step no longer re-parses the whole recording on each of its calls (#1305 by @larsoner)