mne_bids.mark_channels#
- mne_bids.mark_channels(bids_path, *, ch_names, status, descriptions=None, verbose=None)[source]#
Update status and description of channels in an existing BIDS dataset.
- Parameters:
- bids_path
BIDSPath The recording to update. The
mne_bids.BIDSPathinstance passed here must have the.rootattribute set. The.datatypeattribute may be set. If.datatypeis not set and only one data type (e.g., only EEG or MEG data) is present in the dataset, it will be selected automatically.- ch_names
str|listofstr The name(s) of the channel(s) to mark with a
status(and optionally adescription). The special value"all"will mark all channels.Changed in version 0.16: The behavior of passing an empty list will change in version 0.17. In version 0.16 and older, an empty list would mark all channels. In version 0.17 and newer, an empty list will be a no-op (no channels will be marked/changed).
- status‘good’ | ‘bad’ |
listofstr The status of the channels (‘good’, or ‘bad’). If it is a list, then must be a list of ‘good’, or ‘bad’ that has the same length as
ch_names.- descriptions
None|str|listofstr Descriptions of the reasons that lead to the marking (‘good’ or ‘bad’) of the channel(s). If a list, it must match the length of
ch_names. IfNone, no descriptions are added.- verbose
bool|str|int|None Control verbosity of the logging output. If
None, use the default verbosity level. See the logging documentation andmne.verbose()for details. Should only be passed as a keyword argument.
- bids_path
Notes
If the ‘status’ or ‘status_description’ columns were not present in the corresponding tsv file before using this function, they may be created with default values (‘good’ for status, ‘n/a’ for status_description) for all channels that are not differently specified (by using
ch_names,status, anddescriptions).Examples
Mark a single channel as bad.
>>> root = Path('./mne_bids/tests/data/tiny_bids').absolute() >>> bids_path = BIDSPath(subject='01', task='rest', session='eeg', ... datatype='eeg', root=root) >>> mark_channels(bids_path=bids_path, ch_names='C4', status='bad', ... verbose=False)
Mark multiple channels as bad, and add a description as to why.
>>> bads = ['C3', 'PO10'] >>> descriptions = ['very noisy', 'continuously flat'] >>> mark_channels(bids_path, ch_names=bads, status='bad', ... descriptions=descriptions, verbose=False)
Mark all channels with a new description, while keeping them as a “good” channel.
>>> descriptions = ['resected', 'resected'] >>> mark_channels(bids_path=bids_path, ch_names=['C3', 'C4'], ... descriptions=descriptions, status='good', ... verbose=False)
Examples using mne_bids.mark_channels#
Interactive data inspection and bad channel selection