728x90
반응형
SMALL
수면다원검사 (Polysomnography data)
MNE 패키지를 사용하여 Python에서 데이터를 로드하고 전처리한다.
>>> import mne
>>> raw = mne.io.read_raw_edf('yasa_example_night_young.edf', preload=True)
>>> raw
YASA는 PSG 데이터를 시각화하거나 스크롤하는 것을 허용하지 않는다. 그러나 이것은 무료 EDFBrowser 소프트웨어를 사용하여 수행할 수 있다. |
채널 선택
채널 이름은 다음과 같이 표시할 수 있다.
>>> print(raw.ch_names)
['ROC-A1', 'LOC-A2', 'C3-A2', 'O2-A1', 'C4-A1', 'O1-A2', 'EMG1-EMG2', 'Fp1-A2', 'Fp2-A1', 'F7-A2',
'F3-A2', 'FZ-A2', 'F4-A1', 'F8-A1', 'T3-A2', 'CZ-A2', 'T4-A1', 'T5-A2', 'P3-A2', 'PZ-A2', 'P4-A1',
'T6-A1', 'EKG-R-EKG-L']
EOG, EMG 및 EKG 채널을 제거한다.
>>> raw.drop_channels(['ROC-A1', 'LOC-A2', 'EMG1-EMG2', 'EKG-R-EKG-L'])
>>> chan = raw.ch_names
>>> print(chan)
['C3-A2', 'O2-A1', 'C4-A1', 'O1-A2', 'Fp1-A2', 'Fp2-A1', 'F7-A2', 'F3-A2', 'FZ-A2',
'F4-A1', 'F8-A1', 'T3-A2', 'CZ-A2', 'T4-A1', 'T5-A2', 'P3-A2', 'PZ-A2', 'P4-A1', 'T6-A1']
다운샘플링 및 필터링
데이터의 샘플링 주파수 (Hz)는 다음과 같이 지정다.
>>> print(raw.info['sfreq'])
200.00
따라서 데이터의 현재 샘플링 주파수는 200Hz이다. 계산 속도를 높이기 위해 데이터를 100Hz로 다운샘플링한다.
>>> raw.resample(100)
>>> sf = raw.info['sfreq']
>>> sf
100.0
선택적으로 0.3-45Hz 대역통과 필터를 적용할 수 있다.
# We use "verbose" and ";" to disable the text output
>>> raw.filter(0.3, 45)
마지막으로 다음을 사용하여 기본 데이터에 액세스할 수 있다.
>>> data = raw.get_data() * 1e6
>>> print(data.shape)
(19, 2892000)
이 예 data에서 행은 채널 (19개의 EEG 채널)을 나타내고 열은 데이터 샘플 (채널당 최대 300만 샘플)을 나타내는 2차원 NumPy 배열이다.
또한 데이터에 백만 (=1e6)을 곱했다. 이는 MNE가 EDF 파일을 로드할 때 데이터를 마이크로볼트 (표준 EEG 단위)에서 볼트로 변환하기 때문이다. 따라서 이 작업을 되돌린다. 즉 볼트에서 마이크로볼트로 변환한다.
https://raphaelvallat.com/yasa/build/html/quickstart.html
728x90
반응형
LIST
'Somnology > YASA' 카테고리의 다른 글
[YASA] Spectral analyses (0) | 2022.04.25 |
---|---|
[YASA] Sleep statistics and stage-transition matrix (0) | 2022.04.25 |
[YASA] Data loading and preprocessing (Hypnogram) (2) (0) | 2022.04.25 |
[YASA] Prerequisites (0) | 2022.04.25 |
YASA (Yet Another Spindle Algorithm) (0) | 2022.04.22 |