Source code for mne_nirs.channels._short
# Authors: Robert Luke <mail@robertluke.net>
#
# License: BSD (3-clause)
import mne
from mne.io import BaseRaw
from mne.preprocessing.nirs import source_detector_distances
from mne.utils import _validate_type
[docs]
def get_short_channels(raw, max_dist=0.01):
"""
Return channels with a short source-detector separation.
Parameters
----------
raw : instance of Raw
Raw instance containing fNIRS data.
max_dist : number
Maximum distance of returned channels (m).
Returns
-------
raw : instance of Raw
Raw instance with only short channels.
"""
short_chans = raw.copy().load_data()
_validate_type(short_chans, BaseRaw, "raw")
picks = mne.pick_types(
short_chans.info, meg=False, eeg=False, fnirs=True, exclude=[]
)
if not len(picks):
raise RuntimeError("Short channel extraction for NIRS signals only.")
dists = source_detector_distances(short_chans.info, picks=picks)
short_chans.pick(picks[dists < max_dist])
return short_chans
[docs]
def get_long_channels(raw, min_dist=0.015, max_dist=0.045):
"""
Return channels with a long source detector separation.
Parameters
----------
raw : instance of Raw
Raw instance containing fNIRS data.
min_dist : number
Minimum distance of returned channels (m).
max_dist : number
Maximum distance of returned channels (m).
Returns
-------
raw : instance of Raw
Raw instance with only long channels.
"""
long_chans = raw.copy().load_data()
_validate_type(long_chans, BaseRaw, "raw")
picks = mne.pick_types(
long_chans.info, meg=False, eeg=False, fnirs=True, exclude=[]
)
if not len(picks):
raise RuntimeError("Short channel extraction for NIRS signals only.")
dists = source_detector_distances(long_chans.info, picks=picks)
long_chans.pick(picks[(dists > min_dist) & (dists < max_dist)])
return long_chans