본문 바로가기
Brain Engineering/MNE

Preprocessing : Data Loading (2)

by goatlab 2022. 4. 5.
728x90
반응형
SMALL

Loading EEG data

 

EEG 데이터는 주어진 경로에서 직접 로드할 수 있다. 데이터가 이미 epoch된 경우 mne.read_epochs() 함수를 사용하여 '.fif' 파일에서 epoch된 데이터를 읽을 수 있다.

 

## Loading Epoched data 

# The file name should end with'-epo.fif':
data_file = '../datasets/817_1_PDDys_ODDBALL_Clean_curated-epo'

# Read the EEG epochs:
epochs = mne.read_epochs(data_file + '.fif', verbose='error')
Reading ../datasets/817_1_PDDys_ODDBALL_Clean_curated-epo.fif ...
    Found the data of interest:
        t =    -100.00 ...     500.00 ms
        0 CTF compensation matrices available
189 matching events found
No baseline correction applied
Not setting metadata
0 projection items activated

 

데이터를 Epoch로 읽을 때 3D 배열에 저장된다. 이 배열의 데이터에 액세스하려면 두 가지 방법을 사용할 수 있다.

 

## Accessing to the data

# The data can be accessed via:
epochs_data_1 = epochs._data
#or 
epochs_data_2 = epochs.get_data()

#To check whether the two different ways returns the same data
if epochs_data_1.all() == epochs_data_2.all():
    print("Output: Same data!")
else:
    print("Output: Data is not the same!")
Output: Same data!

 

실험 조건의 레이블은 다음과 같이 액세스되는 사전에 저장된다.

 
epochs.event_id
{'Novel': 202, 'Standard': 201, 'Target': 200}

 

특정 실험 조건에 속하는 Epoch에 액세스하려면 다음과 같이 해당 레이블을 참조하면 된다.

 

novels = epochs['Novel']
tmin = epochs.tmin
tmax = epochs.tmax

print('Start time before the event' , tmin)
print('Stop time after the event' , tmax)
Start time before the event -0.1 Stop time after the event 0.5

 

Obtain average ERP data from epoched data

 

평균 이벤트 관련 가능성은 사용 가능한 모든 에포크를 평균화하여 생성된다.

 

evoked = epochs.average()

 

Epoch를 평균화할 때 평균화는 시도에 대해 수행되기 때문에 총 채널 수와 시점 수는 변경되지 않는다. 이것은 첫 번째 차원이 채널이고 두 번째 차원인 2D 배열을 남긴다.

 

evoked_data = evoked.data
n_channels = len(evoked_data) # or len(evoked.ch_names)
print("Number of channels: " + str(n_channels))

n_times = len(evoked_data[0,:]) # or len(evoked.times)
print("Number of time instances: " + str(n_times))
Number of channels: 60
Number of time instances: 301

 

다시, 첫 번째 전극에 대한 평균 에포크를 시각화할 수 있다. 단일 시도 에포크와 비교할 때 평균 에포크는 훨씬 더 부드럽다.

 

plt.plot(evoked._data[0,:].T)
plt.title("Average epoched data, for electrode 0")
plt.show()

 

https://neuro.inf.unibe.ch/AlgorithmsNeuroscience/Tutorial_files/DataLoading.html

 

Data Loading

Data Loading Tutorial #1: Loading EEG Data This tutorial focuses on loading different representations of EEG data. To import data into python, we ...

neuro.inf.unibe.ch

 

728x90
반응형
LIST