Prawidłowo zaplanowane badanie naukowe przewiduje:
Instrukcja omawia każdy z punktów na przykładzie ekspermentu P300 wzrokowe.
Mózg w reakcji na spodziewany bodziec wizualny generuje charakterystyczną odpowiedź po ~300 ms od momentu wystąpienia bodźca, tzw. wzrokowy potencjał P300
Celem eksperymentu jest zweryfikowanie, czy hipoteza badawcza jest prawdziwa, tzn. czy w odpowiedzi na spodziewany bodziec wzrokowy mózg wygeneruje charakterystyczny potencjał (po czasie około 300ms od momentu wystąpienia bodźca).
Założenia:
Tak opisany eksperyment można stworzyć za pomocą biblioteki Psychopy. Na potrzeby instrukcji w zbiorze eksperymentów demonstracyjnych biblioteki Psychopy umieszczono ekspermyment EEG_P300wz. Eksperyment spełnia powyższe założenia.
Do przeprowadzenia eksperymentu użyto 32-kanałowego wzmacniacza oraz wodnych elektrod firmy TMSI. Schemat podłączenia elektrod do wzmacniacza przedstawiono w tabeli. Nazwy kanałów oznaczają pozycje elektrod na głowie osoby badanej. Kolory odpowiadają oznaczeniom na ilustracji 7.
Wzmacniacz TMSI | |||||
---|---|---|---|---|---|
nr kanału | nazwa kanału | nr kanału | nazwa kanału | nr kanału | nazwa kanału |
1 | Fz | 12 | 23 | ||
2 | C4 | 13 | 24 | ||
3 | Cz | 14 | 25 | ||
4 | C3 | 15 | 26 | ||
5 | P4 | 16 | 27 | ||
6 | Pz | 17 | 28 | ||
7 | P3 | 18 | 29 | ||
8 | O2 | 19 | 30 | ||
9 | O1 | 20 | 31 | ||
10 | M2 | 21 | 32 | ||
11 | M1 | 22 | GND | AFz |
W eksperymencie domyślnie ustawiono dwa powtórzenia próby. Zwiększ liczbę powtórzeń do 20 (ilustracja 3)
Do zamocowania elektrod użyto czepka wodnego firmy TMSI (ilustracja 7)
~/.obci/psychopy
. Eksperyment rozpocznie się po kliknięciu w przycisk OK
.Analiza polega na wygenerowaniu z otrzymanego sygnału dwóch uśrednionych przebiegów. Jeden przebieg jest wynikiem uśrednienia tych fragmentów sygnału, które wystąpiły w momencie pojawienia się bodźca typu nontarget. Drugi przebieg jest wynikiem uśrednienia tych fragmentów sygnału, które wystąpiły w momencie pojawienia się bodźca typu target. Porównanie obu przebiegów pozwoli odrzucić lub przyjąć hipotezę badawczą.
Sygnał możesz:
Wykresy wygenerowano skryptem:
from obci_readmanager.signal_processing.read_manager import ReadManager
import matplotlib.pyplot as plt
import mne
# Skrypt zadziała po wpisaniu ścieżek do odpowiednich plików
# (objaśnienia poniżej)
signal_filename = "rec.raw" # w przykładzie rec.raw
xml_filename = "rec.xml" # w przykładzie rec.xml
tag_filename = "rec.tag" # w przykładzie
target_tag_name = "szachownica_target.png"
nontarget_tag_name = "szachownica_nontarget.png"
# Parametry cięcia
Tmin = -0.1
Tmax = 0.7
# Wczytanie sygnału do Readmanager-a
mgr = ReadManager(xml_filename, signal_filename, tag_filename)
# Konwersja wczytanego sygnału do MNE
raw = mgr.get_mne_raw()
# Montaż uszny
raw_custom, _ = mne.set_eeg_reference(raw, ['M1', 'M2'])
# Filtr pasmowoprzepustowy 1-30Hz
raw_custom.filter(1, 30)
# Wykres sygnału bez kanałów referencyjnych (M1, M2) i kanłów O1, O2
raw_custom.plot(n_channels=7, title="P300")
# Etykiety epok
events_description = mgr.mne_events()[1]
target_id = [events_description[i] for i in mgr.mne_events()[1]
if target_tag_name in i][0]
nontarget_id = [events_description[i] for i in mgr.mne_events()[1]
if nontarget_tag_name in i][0]
# Pocięcie sygnału (od Tmin s. przed wystąpieniem znacznika do Tmax s.
# po wystąpieniu znacznika)
title='EEG original reference'
target_epochs = mne.Epochs(raw_custom, events=mgr.mne_events()[0],
event_id=target_id, tmin=Tmin,
tmax=Tmax).load_data().apply_baseline().average()
nontarget_epochs = mne.Epochs(raw_custom, events=mgr.mne_events()[0],
event_id=nontarget_id, tmin=Tmin,
tmax=Tmax).load_data().apply_baseline().average()
# Wykres z pozycjami elektrod
raw.plot_sensors(show_names=True)
# Ze względu na słabą jakość sygnału na elektrodach w pozycjach O1, O2,
# nie umieszczono przebiegów z tych elektrod. Przebiegi na elektrodach
# M1, M2 są pomijalne, ponieważ są to elektrody referencyjne
fig, ax = plt.subplots(2, 1)
plot1 = mne.viz.plot_evoked(target_epochs, exclude=['M1','M2','O1','O2'],
show = False, titles = 'P300 target',
spatial_colors=True, selectable=True, axes=ax[0])
plot2 = mne.viz.plot_evoked(nontarget_epochs, exclude=['M1','M2','O1','O2'],
show = False, titles = 'P300 nontarget',
spatial_colors=True, selectable=True, axes=ax[1])
fig2, ax2 = plt.subplots(1,2, figsize=(8,4))
plot3 = mne.viz.plot_evoked(target_epochs, exclude=['M1','M2','O1','O2'],
show = False, titles = 'P300 target',
spatial_colors=True, selectable=True,
axes=ax2[1])
plot4 = target_epochs.plot_topomap(times=[0.325], size=3., show = False,
axes=ax2[0])
fig2.show()
fig.show()
target_epochs.plot_joint(times=[0, 0.15, 0.3, 0.325],
exclude=['M1', 'M2', 'O1', 'O2'])
mne.viz.plot_evoked_topo(target_epochs.drop_channels(['O1','O2','M1','M2']),
legend = True, color = 'red', background_color='w')
Po eksporcie sygnału do formatu eeglab (ilustracja 13).
możesz analizować go wykorzytując bibliotekę eeglab. Część możliwości biblioteki przedstawiono na ilustracjach 14,15.
Na podstawie otrzymanych wyników przyjmij lub odrzuć hipotezę badawczą.
Jeżeli w uśrednionych przebiegach kilkaset milisekund od momentu wystąpienia bodźca widoczne będzie pozytywne wychylenie, obrazujące wzrost wartości sygnału jest to potencjał wywołany. W przebiegu uśrednionym po bodźcach typu 'target' wzrost tego napięcia powinien występować po około 300 ms od momentu wystapienia bodźca (w przykładzie 336ms) i być dużo wyraźniejszy od innych wychyleń. Taką zmianę w zapisie aktywności elektrycznej mózgu określa się mianem komponenty lub potencjału P300.
Ocena jakościowa wyników pozwala na przyjęcie hipotezy badawczej.
Prawidłowo zrealizowane badanie należy uzupełnić o analizę ilościową zagadnienia. Analiza ilościowa pozwala na wykazanie statystycznej różnicy pomiędzy uśrednionymi przebiegami. W tym celu można posłużyć się prostymi testami statystycznymi takim jak test różnic.
Wykorzystany w przykładzie schemat eksperymentu jest standardową procedurą do badania potencjałów wywołanych. Funkcjonuje pod nazwą oddball.
POWODZENIA!