What was new in previous releases?¶

Version 0.8 (2021-07-15)¶

This release brings numerous improvements and fixes based on feedback from our users, including those working with very large datasets. MNE-BIDS now handles previously-overlooked edge cases, offers a much more efficient way to store data on macOS and Linux (using symbolic links), and lays the groundwork for supporting BIDS derivatives, i.e., storing modified data.

Notable changes¶

  • You can now write preloaded and potentially modified data with mne_bids.write_raw_bids() by passing allow_preload=True. This is a first step towards supporting derivative files.

  • mne_bids.BIDSPath now has property getters and setters for all BIDS entities. What this means is that you can now do things like bids_path.subject = '01' instead of bids_path.update(subject='01').

  • We now support Deep Brain Stimulation (DBS) data.

  • The way we handle anatomical landmarks was greatly revamped to ensure we’re always using the correct coordinate systems. A new function, mne_bids.get_anat_landmarks, helps with extracting fiducial points from anatomical scans.

  • When creating a BIDS dataset from FIFF files on macOS and Linux, MNE-BIDS can now optionally generate symbolic links to the original files instead of copies. Simply pass symlink=True to mne_bids.write_raw_bids(). This can massively reduce the storage space requirements.

Authors¶

Detailed list of changes¶

Enhancements¶

API and behavior changes¶

  • Writing datasets via write_raw_bids(), will now never overwrite dataset_description.json file, by Adam Li (#765)

  • When writing BIDS datasets, MNE-BIDS now tags them as BIDS 1.6.0 (we previously tagged them as BIDS 1.4.0), by Richard Höchenberger (#782)

  • mne_bids.read_raw_bids() now passes allow_maxshield=True to the MNE-Python reader function by default when reading FIFF files. Previously, extra_params=dict(allow_maxshield=True) had to be passed explicitly, by Richard Höchenberger (#787)

  • The raw_to_bids command has lost its --allow_maxshield parameter. If writing a FIFF file, we will now always assume that writing data before applying a Maxwell filter is fine, by Richard Höchenberger (#787)

  • mne_bids.BIDSPath.find_empty_room() now first looks for an AssociatedEmptyRoom field in the MEG JSON sidecar file to retrieve the empty-room recording; only if this information is missing, it will proceed to try and find the best-matching empty-room recording based on measurement date (i.e., fall back to the previous behavior), by Richard Höchenberger (#795)

  • If mne_bids.read_raw_bids() encounters raw data with the STI 014 stimulus channel and this channel is not explicitly listed in *_channels.tsv, it is now automatically removed upon reading, by Richard Höchenberger (#823)

  • mne_bids.get_anat_landmarks() was added to clarify and simplify the process of generating landmarks that now need to be passed to mne_bids.write_anat(); this deprecates the arguments raw, trans and t1w of mne_bids.write_anat(), by Alex Rockhill and Alexandre Gramfort (#827)

  • write_raw_bids() now accepts preloaded raws as input with some caveats if the new parameter allow_preload is explicitly set to True. This enables some preliminary support for items such as uncommon file formats, generated data, and processed derivatives, by Sin Kim (#819)

  • MNE-BIDS now writes all TSV data files with a newline character at the end of the file, complying with UNIX/POSIX standards, by Stefan Appelhoff (#831)

Requirements¶

  • For downloading OpenNeuro datasets, openneuro-py is now required to run the examples and build the documentation, by Alex Rockhill (#753)

  • MNE-BIDS now depends on setuptools. This package is normally installed by your Python distribution automatically, so we don’t expect any users to be affected by this change, by Richard Höchenberger (#794)

  • MNE-BIDS now requires Python 3.7 or higher, because Python 3.6 is soon reaching its end of life.

Bug fixes¶

Version 0.7 (2021-03-22)¶

This release brings numerous enhancements and bug fixes that enhance reading and writing BIDS data, and improve compatibility with the latest BIDS specifications.

Notable changes¶

  • Channel names in *_channels.tsv and *_electrodes.tsv files now always take precedence over the names stored in the raw files.

  • When reading data where the same trial type refers to different trigger values, we will now automatically create hierarchical event names in the form of trial_type/value1, trial_type/value2` etc.

  • mne_bids.write_raw_bids() now allows users to specify a format conversion via the new format parameter.

  • Various improvements to data reading and mne_bids.BIDSPath make working with real-life data easier.

  • Many bug fixes in mne_bids.write_raw_bids() and in the MNE-BIDS Inspector.

Authors¶

Detailed list of changes¶

Enhancements¶

API and behavior changes¶

Requirements¶

  • For writing BrainVision files, pybv version 0.5 is now required to allow writing of non-voltage channels, by Adam Li (#670)

Bug fixes¶

Version 0.6 🎄 (2020-12-16)¶

These are challenging days for many of us, and to make your lives ever so slightly easier, we’ve been working hard to deliver this early Christmas present 🎁 And even if you do not celebrate Christmas, we are quite certain you will like what we got for you! So – what are you waiting for? It’s time to unwrap!

Notable changes¶

  • The new Inspector, which can be invoked via mne_bids.inspect_dataset(), allows you to interactively explore your raw data, change the bad channels selection, and edit mne.Annotations. It also performs automated detection of flat data segments or channels, to assist you during visual inspection. The capabilities of the inspector will be further expanded in upcoming releases of MNE-BIDS.

  • To further assist you during data inspection, we have added a function to summarize all events present in a dataset, mne_bids.stats.count_events().

  • Sidecar JSON files can now be updated using a template via mne_bids.update_sidecar_json().

  • You can now read and write FLASH MRI images using mne_bids.write_anat(). We also fixed some issues with MRI defacing along the way.

  • Event durations are now preserved upon reading and writing data (we used to set all event durations to zero before).

Authors¶

Detailed list of changes¶

Enhancements¶

API changes¶

Requirements¶

  • Writing BrainVision data now requires pybv 0.4 or later.

Bug fixes¶

Version 0.5 (2020-10-22)¶

This is a big release with lots of changes, many of them breaking existing code. But do not fear: migration is easy, and you will love what we have been cooking for you!

Notable changes¶

  • We introduce mne_bids.BIDSPath, a new class for all BIDS file and folder operations. All functions in MNE-BIDS that previously accepted filenames and folder locations (e.g. bids_root) have been updated to work with BIDSPath. Others have been removed. Consequently, you will need to update your existing code, too. See the API changes section for an overview of which functions have changed or have been removed, and follow this introduction and our to learn about the basics of BIDSPath. Don’t worry – it’s going to be a breeze! đŸ€—

  • MNE-BIDS now requires MNE-Python 0.21.

  • The new function mne_bids.make_report() can help you populate a paragraph of your next paper’s methods section!

  • You can now interactively mark channels as bad using mne_bids.mark_bad_channels.

  • Elekta/Neuromag/MEGIN fine-calibration and crosstalk files can now be stored in your BIDS dataset via mne_bids.write_meg_calibration() and mne_bids.write_meg_crosstalk().

  • When writing a raw file that contains annotations, these will now be converted to and stored as events by mne_bids.write_raw_bids().

Authors¶

The following people have contributed to this release of MNE-BIDS:

Detailed list of changes¶

Enhancements¶

Bug fixes¶

API changes¶

In the transition to using mne_bids.BIDSPath, the following functions have been updated:

The following functions have been removed:

Further API changes:

Version 0.4 (2020-04-04)¶

Changelog¶

Bug¶

Authors¶

People who contributed to this release (in alphabetical order):

Version 0.3 (2019-12-17)¶

Changelog¶

Bug¶

  • Fixed bug in mne_bids.datasets.fetch_faces_data where downloading multiple subjects was impossible, by Stefan Appelhoff (#262)

  • Fixed bug where read_raw_bids() would throw a ValueError upon encountering strings in the “onset” or “duration” column of events.tsv files, by Stefan Appelhoff (#234)

  • Allow raw data from KIT systems to have two marker files specified, by Matt Sanderson (#173)

API¶

  • read_raw_bids() no longer optionally returns events and event_id but returns the raw object with mne.Annotations, whenever an events.tsv file is present, by Stefan Appelhoff (#209)

Authors¶

People who contributed to this release (in alphabetical order):

Version 0.2 (2019-04-26)¶

Changelog¶

Bug¶

  • Normalize the length of the branches in mne_bids.print_dir_tree() by the length of the root path, leading to more adequate visual display, by Stefan Appelhoff (#192)

  • Assert a minimum required MNE-version, by Dominik Welke (#166)

  • Add function in mne_bids.utils to copy and rename CTF files mne_bids.utils.copyfile_ctf, by Romain Quentin (#162)

  • Encoding of BrainVision .vhdr/.vmrk files is checked to prevent encoding/decoding errors when modifying, by Dominik Welke (#155)

  • The original units present in the raw data will now correctly be written to channels.tsv files for BrainVision, EEGLAB, and EDF, by Stefan Appelhoff (#125)

  • Fix logic with inferring unknown channel types for CTF data, by Mainak Jas (#129)

  • Fix the file naming for FIF files to only expose the part key-value pair when files are split, by Teon Brooks (#137)

  • Allow files with no stim channel, which could be the case for example in resting state data, by Mainak Jas (#167)

  • Better handling of unicode strings in TSV files, by Mainak Jas (#172)

  • Fix separator in scans.tsv to always be /, by Matt Sanderson (#176)

  • Add seeg to mne_bids.utils._handle_datatype when determining the kind of ieeg data, by Ezequiel Mikulan (#180)

  • Fix problem in copying CTF files on Network File System due to a bug upstream in Python, by Mainak Jas (#174)

  • Fix problem in copying BTi files. Now, a utility function ensures that all the related files such as config and headshape are copied correctly, by Mainak Jas (#135)

  • Fix name of “sample” and “value” columns on events.tsv files, by Ezequiel Mikulan (#185)

  • Update function to copy KIT files to the meg directory, by Matt Sanderson (#187)

API¶

Authors¶

People who contributed to this release (in alphabetical order):

Version 0.1 (2018-11-05)¶

Changelog¶

Bug¶

  • Correctly handle the case when measurement date is not available, by Mainak Jas (#23)

  • Fix counting of miscellaneous channels, by Matt Sanderson (#49)

  • The source data is now copied over to the new BIDS directory. Previously this was only true for FIF data, by Stefan Appelhoff (#55)

  • Fix ordering of columns in scans.tsv, by Matt Sanderson (#68)

  • Fix bug in how artificial trigger channel STI014 is handled in channels.tsv for KIT systems, by Matt Sanderson (#72)

  • Fix channel types for KIT system in channels.tsv, by Matt Sanderson (#76)

  • Fix the way FIF files are named to satisfy the BIDS part parameters of the filename construction, Teon Brooks (#102)

  • Fix how overwriting of data is handled, by Matt Sanderson (#99)

Authors¶

People who contributed to this release (in alphabetical order):