mne_bids.update_sidecar_json

mne_bids.update_sidecar_json(bids_path, entries, verbose=True)[source]

Update sidecar files using a dictionary or JSON file.

Will update metadata fields inside the path defined by bids_path.fpath according to the entries. If a field does not exist in the corresponding sidecar file, then that field will be created according to the entries. If a field does exist in the corresponding sidecar file, then that field will be updated according to the entries.

For example, if InstitutionName is not defined in the sidecar json file, then trying to update InstitutionName to Martinos Center will update the sidecar json file to have InstitutionName as Martinos Center.

Parameters
bids_pathmne_bids.BIDSPath

The set of paths to update. The mne_bids.BIDSPath instance passed here must have the .root attribute set. The .datatype attribute may be set. If .datatype is not set and only one data type (e.g., only EEG or MEG data) is present in the dataset, it will be selected automatically. This must uniquely identify an existing file path, else an error will be raised.

entriesdict | str | pathlib.Path

A dictionary, or JSON file that defines the sidecar fields and corresponding values to be updated to.

verbosebool

The verbosity level.

Raises
RuntimeError

If the specified bids_path.fpath cannot be found in the dataset.

RuntimeError

If the bids_path.fpath does not have .json extension.

Notes

This function can only update JSON files.

Sidecar JSON files include files such as *_ieeg.json, *_coordsystem.json, *_scans.json, etc.

You should double check that your update dictionary is correct for the corresponding sidecar JSON file because it will perform a dictionary update of the sidecar fields according to the passed in dictionary overwriting any information that was previously there.

Examples

>>> # update sidecar json file
>>> bids_path = BIDSPath(root='./', subject='001', session='001',
                         task='test', run='01', suffix='ieeg',
                         extension='.json')
>>> entries = {'PowerLineFrequency': 50}
>>> update_sidecar_json(bids_path, entries)
>>> # update sidecar coordsystem json file
>>> bids_path = BIDSPath(root='./', subject='001', session='001',
                         suffix='coordsystem', extension='.json')
>>> entries = {'iEEGCoordinateSystem,': 'Other'}
>>> update_sidecar_json(bids_path, entries)

Examples using mne_bids.update_sidecar_json