48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
# Authors: The MNE-Python contributors.
|
|
# License: BSD-3-Clause
|
|
# Copyright the MNE-Python contributors.
|
|
|
|
import os.path as op
|
|
|
|
import numpy as np
|
|
import pytest
|
|
|
|
from mne import Epochs, EvokedArray, create_info, events_from_annotations
|
|
from mne.channels import make_standard_montage
|
|
from mne.datasets.testing import _pytest_param, data_path
|
|
from mne.io import read_raw_nirx
|
|
from mne.preprocessing.nirs import beer_lambert_law, optical_density
|
|
|
|
fname_nirx = op.join(
|
|
data_path(download=False), "NIRx", "nirscout", "nirx_15_2_recording_w_overlap"
|
|
)
|
|
|
|
|
|
@pytest.fixture()
|
|
def fnirs_evoked():
|
|
"""Create an fnirs evoked structure."""
|
|
montage = make_standard_montage("biosemi16")
|
|
ch_names = montage.ch_names
|
|
ch_types = ["eeg"] * 16
|
|
info = create_info(ch_names=ch_names, sfreq=20, ch_types=ch_types)
|
|
evoked_data = np.random.randn(16, 30)
|
|
evoked = EvokedArray(evoked_data, info=info, tmin=-0.2, nave=4)
|
|
evoked.set_montage(montage)
|
|
evoked.set_channel_types(
|
|
{"Fp1": "hbo", "Fp2": "hbo", "F4": "hbo", "Fz": "hbo"}, verbose="error"
|
|
)
|
|
return evoked
|
|
|
|
|
|
@pytest.fixture(params=[_pytest_param()])
|
|
def fnirs_epochs():
|
|
"""Create an fnirs epoch structure."""
|
|
raw_intensity = read_raw_nirx(fname_nirx, preload=False)
|
|
raw_od = optical_density(raw_intensity)
|
|
raw_haemo = beer_lambert_law(raw_od, ppf=6.0)
|
|
evts, _ = events_from_annotations(raw_haemo, event_id={"1.0": 1})
|
|
evts_dct = {"A": 1}
|
|
tn, tx = -1, 2
|
|
epochs = Epochs(raw_haemo, evts, event_id=evts_dct, tmin=tn, tmax=tx)
|
|
return epochs
|