|
2 | 2 | "cells": [ |
3 | 3 | { |
4 | 4 | "cell_type": "code", |
5 | | - "execution_count": null, |
| 5 | + "execution_count": 2, |
6 | 6 | "metadata": {}, |
7 | 7 | "outputs": [], |
8 | 8 | "source": [ |
|
16 | 16 | }, |
17 | 17 | { |
18 | 18 | "cell_type": "code", |
19 | | - "execution_count": null, |
| 19 | + "execution_count": 3, |
20 | 20 | "metadata": {}, |
21 | 21 | "outputs": [], |
22 | 22 | "source": [ |
23 | | - "subject_id = '0006'\n", |
24 | | - "task = 'ssvep'\n", |
| 23 | + "#subject_id = '0008'\n", |
| 24 | + "#task = 'ssvep'\n", |
25 | 25 | "bids_root = '.'" |
26 | 26 | ] |
27 | 27 | }, |
|
32 | 32 | "outputs": [], |
33 | 33 | "source": [ |
34 | 34 | "#read EEG mff data\n", |
35 | | - "eeg_raw = mne.io.read_raw_egi('sourcedata/s06/eeg/s06/s06_ssvep_20230313_113128.mff/',preload=True)\n", |
| 35 | + "eeg_raw = mne.io.read_raw_egi('sourcedata/s06/eeg/s06/s06_plr_20230313_115649.mff/',preload=True)\n", |
36 | 36 | "eeg_raw_df = eeg_raw.to_data_frame()\n", |
37 | 37 | "\n", |
38 | 38 | "#get the EEG events from the stim stim channel\n", |
39 | | - "eeg_events = mne.find_events(eeg_raw, stim_channel='STI 014')\n", |
| 39 | + "#eeg_events = mne.find_events(eeg_raw, stim_channel='STI 014', shortest_event = 1)\n", |
| 40 | + "eeg_events = mne.find_events(eeg_raw, shortest_event = 1)\n", |
40 | 41 | "\n", |
| 42 | + "#create the event dictionary..\n", |
| 43 | + "eeg_event_dict = qst.get_event_dict(eeg_raw,eeg_events)" |
| 44 | + ] |
| 45 | + }, |
| 46 | + { |
| 47 | + "cell_type": "code", |
| 48 | + "execution_count": null, |
| 49 | + "metadata": {}, |
| 50 | + "outputs": [], |
| 51 | + "source": [ |
41 | 52 | "#handle task specific EEG event interpretation..\n", |
42 | | - "eeg_events, eeg_stims, eeg_iti, eeg_event_dict = qst.eeg_event_test(eeg_events,task_name='ssvep')" |
| 53 | + "eeg_events, eeg_stims, eeg_iti, eeg_event_dict = qst.eeg_event_test(eeg_events,eeg_event_dict,task_name='plr')" |
| 54 | + ] |
| 55 | + }, |
| 56 | + { |
| 57 | + "cell_type": "code", |
| 58 | + "execution_count": null, |
| 59 | + "metadata": {}, |
| 60 | + "outputs": [], |
| 61 | + "source": [ |
| 62 | + "fig=px.scatter(x=eeg_events[:,0],y=eeg_events[:,2])\n", |
| 63 | + "fig.show()" |
43 | 64 | ] |
44 | 65 | }, |
45 | 66 | { |
|
49 | 70 | "outputs": [], |
50 | 71 | "source": [ |
51 | 72 | "#read the asc eye tracking data and convert it to a dataframe\n", |
52 | | - "et_raw = mne.io.read_raw_eyelink ('sourcedata/s06/eyetracking/s06ssvep.asc')\n", |
| 73 | + "et_raw = mne.io.read_raw_eyelink ('sourcedata/s06/eyetracking/s06plr.asc')\n", |
53 | 74 | "et_raw_df = et_raw.to_data_frame()\n", |
54 | 75 | "\n", |
| 76 | + "#get the events from the annotation structure\n", |
| 77 | + "et_annot_events, et_annot_event_dict = mne.events_from_annotations(et_raw)" |
| 78 | + ] |
| 79 | + }, |
| 80 | + { |
| 81 | + "cell_type": "code", |
| 82 | + "execution_count": 15, |
| 83 | + "metadata": {}, |
| 84 | + "outputs": [ |
| 85 | + { |
| 86 | + "name": "stdout", |
| 87 | + "output_type": "stream", |
| 88 | + "text": [ |
| 89 | + "Number of eye-tracking stimulus onset DIN events: 32\n" |
| 90 | + ] |
| 91 | + } |
| 92 | + ], |
| 93 | + "source": [ |
55 | 94 | "#handle task specific ET event interpretation..\n", |
56 | | - "et_events, et_stims, et_iti = qst.et_event_test(et_raw_df,task_name='ssvep')" |
| 95 | + "et_event_raw_df, et_events, et_stims, et_iti = qst.et_event_test(et_raw_df,task_name='plr')" |
57 | 96 | ] |
58 | 97 | }, |
59 | 98 | { |
|
62 | 101 | "metadata": {}, |
63 | 102 | "outputs": [], |
64 | 103 | "source": [ |
65 | | - "eeg_et_raw = qst.eeg_et_combine(eeg_raw, et_raw, eeg_stims, et_stims)" |
| 104 | + "fig=px.scatter(x=et_events['index'],y=et_events['DIN_diff'])\n", |
| 105 | + "fig.show()" |
66 | 106 | ] |
67 | 107 | }, |
68 | 108 | { |
|
71 | 111 | "metadata": {}, |
72 | 112 | "outputs": [], |
73 | 113 | "source": [ |
74 | | - "scalings=dict(eyegaze=1e1)\n", |
75 | | - "eeg_et_raw.plot(events=eeg_events,scalings=scalings)" |
| 114 | + "qst.show_sync_offsets(eeg_stims,et_stims)" |
76 | 115 | ] |
77 | 116 | }, |
78 | 117 | { |
|
81 | 120 | "metadata": {}, |
82 | 121 | "outputs": [], |
83 | 122 | "source": [ |
84 | | - "bids_path = mne_bids.BIDSPath(subject=subject_id, task=task, root=bids_root)\n", |
85 | | - "mne_bids.write_raw_bids(eeg_raw, bids_path, events=eeg_events, event_id=eeg_event_dict, overwrite=True, allow_preload=True, format='EDF')" |
| 123 | + "eeg_et_raw = qst.eeg_et_combine(eeg_raw, et_raw, eeg_stims, et_stims)" |
86 | 124 | ] |
87 | 125 | }, |
88 | 126 | { |
89 | 127 | "cell_type": "code", |
90 | | - "execution_count": null, |
| 128 | + "execution_count": 18, |
91 | 129 | "metadata": {}, |
92 | 130 | "outputs": [], |
93 | 131 | "source": [ |
94 | | - "qst.show_sync_offsets(eeg_stims,et_stims)" |
| 132 | + "eeg_et_raw_df = eeg_et_raw.to_data_frame()" |
95 | 133 | ] |
96 | 134 | }, |
97 | 135 | { |
|
100 | 138 | "metadata": {}, |
101 | 139 | "outputs": [], |
102 | 140 | "source": [ |
103 | | - "#plot the event latencies\n", |
104 | | - "fig = px.scatter(x=eeg_events[:,0],y=eeg_events[:,2])\n", |
| 141 | + "fig=px.line(x=eeg_et_raw_df['time'],y=eeg_et_raw_df['pupil_right'])\n", |
105 | 142 | "fig.show()" |
106 | 143 | ] |
107 | 144 | }, |
|
111 | 148 | "metadata": {}, |
112 | 149 | "outputs": [], |
113 | 150 | "source": [ |
114 | | - "#show the stimulus DIN event inter-trial intervals... this should be replicated in the eye-tracking recording..\n", |
115 | | - "fig = px.line(y=eeg_iti)\n", |
116 | | - "fig.show()" |
| 151 | + "scalings=dict(eyegaze=1e2)\n", |
| 152 | + "eeg_et_raw.plot(events=eeg_events,duration=4,scalings=scalings)\n", |
| 153 | + "#eeg_et_raw.plot(scalings=scalings)" |
117 | 154 | ] |
118 | 155 | }, |
119 | 156 | { |
|
122 | 159 | "metadata": {}, |
123 | 160 | "outputs": [], |
124 | 161 | "source": [ |
125 | | - "fig = px.scatter(x=et_events['index'],y=et_events['DIN'])\n", |
| 162 | + "fig=px.scatter(x=et_events['index'],y=et_events['DIN_diff'])\n", |
126 | 163 | "fig.show()" |
127 | 164 | ] |
128 | 165 | }, |
|
132 | 169 | "metadata": {}, |
133 | 170 | "outputs": [], |
134 | 171 | "source": [ |
135 | | - "fig = px.scatter(x=et_events['index'],y=et_events['DIN_diff'])\n", |
| 172 | + "fig=px.scatter(x=et_events['time'],y=et_events['index'].diff())\n", |
136 | 173 | "fig.show()" |
137 | 174 | ] |
138 | 175 | }, |
|
142 | 179 | "metadata": {}, |
143 | 180 | "outputs": [], |
144 | 181 | "source": [ |
145 | | - "fig = px.scatter(x=et_events['index'],y=et_events['index'].diff())\n", |
| 182 | + "fig=px.line(x=et_raw_df['time'],y=et_raw_df['DIN'])\n", |
146 | 183 | "fig.show()" |
147 | 184 | ] |
148 | 185 | }, |
|
152 | 189 | "metadata": {}, |
153 | 190 | "outputs": [], |
154 | 191 | "source": [ |
155 | | - "fig = px.line(y=et_iti)\n", |
| 192 | + "scalings=dict(eyegaze=1e5)\n", |
| 193 | + "eeg_et_raw.plot(events=eeg_events,duration=4,scalings=scalings)\n", |
| 194 | + "#eeg_et_raw.plot(scalings=scalings)" |
| 195 | + ] |
| 196 | + }, |
| 197 | + { |
| 198 | + "cell_type": "code", |
| 199 | + "execution_count": null, |
| 200 | + "metadata": {}, |
| 201 | + "outputs": [], |
| 202 | + "source": [ |
| 203 | + "bids_path = mne_bids.BIDSPath(subject=subject_id, task=task, root=bids_root)\n", |
| 204 | + "mne_bids.write_raw_bids(eeg_raw, bids_path, events=eeg_events, event_id=eeg_event_dict, overwrite=True, allow_preload=True, format='EDF')" |
| 205 | + ] |
| 206 | + }, |
| 207 | + { |
| 208 | + "cell_type": "code", |
| 209 | + "execution_count": null, |
| 210 | + "metadata": {}, |
| 211 | + "outputs": [], |
| 212 | + "source": [ |
| 213 | + "#plot the event latencies\n", |
| 214 | + "fig = px.scatter(x=eeg_events[:,0],y=eeg_events[:,2])\n", |
156 | 215 | "fig.show()" |
157 | 216 | ] |
158 | 217 | }, |
|
162 | 221 | "metadata": {}, |
163 | 222 | "outputs": [], |
164 | 223 | "source": [ |
165 | | - "fig = px.scatter(y=eeg_et_offset)\n", |
| 224 | + "#show the stimulus DIN event inter-trial intervals... this should be replicated in the eye-tracking recording..\n", |
| 225 | + "fig = px.line(y=eeg_iti)\n", |
166 | 226 | "fig.show()" |
167 | 227 | ] |
168 | 228 | } |
|
185 | 245 | "pygments_lexer": "ipython3", |
186 | 246 | "version": "3.8.10" |
187 | 247 | }, |
188 | | - "orig_nbformat": 4 |
| 248 | + "orig_nbformat": 4, |
| 249 | + "vscode": { |
| 250 | + "interpreter": { |
| 251 | + "hash": "4d51abd469969a131aa91b4c30bbe09eccdda015d2c1385281ae2bb665bb8f08" |
| 252 | + } |
| 253 | + } |
189 | 254 | }, |
190 | 255 | "nbformat": 4, |
191 | 256 | "nbformat_minor": 2 |
|
0 commit comments