NeuroAnalyzer tutorials: ERPs
Initialize NeuroAnalyzer
using NeuroAnalyzer
using Plots
eeg = import_recording("files/s1_faces.vhdr");
load_locs!(eeg, file_name="files/standard-10-20-cap81.locs");
NeuroAnalyzer.filter!(eeg, ch="all", fprototype=:butterworth, ftype=:hp, cutoff=1, order=8);
NeuroAnalyzer.filter!(eeg, ch="all", fprototype=:iirnotch, cutoff=50, bw=2);
reference_avg!(eeg);ERP is created from epoched NeuroAnalyzer.NEURO object via erp() command. ERP object has OBJ.header.recording[:data_type] set to “erp”. First epoch of the OBJ is ERP, other epochs are the original data.
view_marker(eeg)n ID start [s] length [s] value channel
1 'New Segment' 0.0 0.0 'marker' 0
2 'Marker' 0.0 0.0 'Impedance' 0
3 'Stimulus' 20.562 0.0 's111' 0
4 'Stimulus' 20.98 0.0 's130' 0
5 'Stimulus' 21.826 0.0 's71' 0
6 'Stimulus' 25.012 0.0 's130' 0
7 'Stimulus' 25.873 0.0 's71' 0
8 'Stimulus' 29.021 0.0 's130' 0
9 'Stimulus' 30.004 0.0 's71' 0
10 'Stimulus' 33.143 0.0 's130' 0
11 'Stimulus' 33.656 0.0 's71' 0
12 'Stimulus' 36.807 0.0 's130' 0
13 'Stimulus' 37.707 0.0 's71' 0
14 'Stimulus' 40.861 0.0 's130' 0
15 'Stimulus' 41.557 0.0 's71' 0
16 'Stimulus' 44.709 0.0 's130' 0
17 'Stimulus' 45.541 0.0 's70' 0
18 'Stimulus' 48.695 0.0 's130' 0
19 'Stimulus' 49.24 0.0 's70' 0
20 'Stimulus' 52.393 0.0 's130' 0
21 'Stimulus' 53.121 0.0 's70' 0
22 'Stimulus' 56.271 0.0 's130' 0
23 'Stimulus' 57.186 0.0 's70' 0
24 'Stimulus' 60.336 0.0 's130' 0
25 'Stimulus' 61.338 0.0 's70' 0
26 'Stimulus' 64.496 0.0 's130' 0
27 'Stimulus' 65.236 0.0 's70' 0
28 'Stimulus' 68.373 0.0 's130' 0
29 'Stimulus' 69.299 0.0 's71' 0
30 'Stimulus' 72.443 0.0 's130' 0
31 'Stimulus' 73.021 0.0 's71' 0
32 'Stimulus' 76.168 0.0 's130' 0
33 'Stimulus' 77.135 0.0 's70' 0
34 'Stimulus' 80.287 0.0 's130' 0
35 'Stimulus' 81.285 0.0 's71' 0
36 'Stimulus' 84.428 0.0 's130' 0
37 'Stimulus' 85.102 0.0 's70' 0
38 'Stimulus' 88.258 0.0 's130' 0
39 'Stimulus' 88.795 0.0 's71' 0
40 'Stimulus' 91.936 0.0 's130' 0
41 'Stimulus' 92.854 0.0 's70' 0
42 'Stimulus' 95.98 0.0 's130' 0
43 'Stimulus' 96.717 0.0 's70' 0
44 'Stimulus' 99.846 0.0 's130' 0
45 'Stimulus' 100.557 0.0 's71' 0
46 'Stimulus' 103.691 0.0 's130' 0
47 'Stimulus' 104.471 0.0 's70' 0
48 'Stimulus' 107.623 0.0 's130' 0
49 'Stimulus' 108.24 0.0 's71' 0
50 'Stimulus' 111.391 0.0 's130' 0
51 'Stimulus' 112.359 0.0 's71' 0
52 'Stimulus' 115.523 0.0 's130' 0
53 'Stimulus' 116.297 0.0 's71' 0
54 'Stimulus' 119.436 0.0 's130' 0
55 'Stimulus' 120.412 0.0 's70' 0
56 'Stimulus' 123.547 0.0 's130' 0
57 'Stimulus' 124.279 0.0 's70' 0
58 'Stimulus' 127.42 0.0 's130' 0
59 'Stimulus' 128.297 0.0 's71' 0
60 'Stimulus' 131.449 0.0 's130' 0
61 'Stimulus' 132.166 0.0 's70' 0
62 'Stimulus' 135.324 0.0 's130' 0
63 'Stimulus' 136.295 0.0 's70' 0
64 'Stimulus' 139.451 0.0 's130' 0
65 'Stimulus' 140.287 0.0 's71' 0
66 'Stimulus' 143.428 0.0 's130' 0
67 'Stimulus' 144.406 0.0 's71' 0
68 'Stimulus' 147.562 0.0 's130' 0
69 'Stimulus' 148.066 0.0 's71' 0
70 'Stimulus' 151.217 0.0 's130' 0
71 'Stimulus' 152.078 0.0 's71' 0
72 'Stimulus' 155.225 0.0 's130' 0
73 'Stimulus' 155.781 0.0 's70' 0
74 'Stimulus' 158.916 0.0 's130' 0
75 'Stimulus' 159.734 0.0 's70' 0
76 'Stimulus' 162.859 0.0 's130' 0
77 'Stimulus' 163.855 0.0 's70' 0
78 'Stimulus' 166.988 0.0 's130' 0
79 'Stimulus' 167.615 0.0 's71' 0
80 'Stimulus' 170.76 0.0 's130' 0
81 'Stimulus' 171.367 0.0 's71' 0
82 'Stimulus' 174.502 0.0 's130' 0
83 'Stimulus' 175.459 0.0 's70' 0
84 'Stimulus' 178.611 0.0 's130' 0
85 'Stimulus' 179.195 0.0 's71' 0
86 'Stimulus' 182.346 0.0 's130' 0
87 'Stimulus' 182.865 0.0 's70' 0
88 'Stimulus' 186.012 0.0 's130' 0
89 'Stimulus' 186.953 0.0 's70' 0
90 'Stimulus' 190.086 0.0 's130' 0
91 'Stimulus' 190.664 0.0 's71' 0
92 'Stimulus' 193.807 0.0 's130' 0
93 'Stimulus' 194.533 0.0 's70' 0
94 'Stimulus' 197.674 0.0 's130' 0
95 'Stimulus' 198.34 0.0 's71' 0
96 'Stimulus' 201.475 0.0 's130' 0
97 'Stimulus' 202.027 0.0 's70' 0
98 'Stimulus' 205.16 0.0 's130' 0
99 'Stimulus' 206.051 0.0 's71' 0
100 'Stimulus' 209.189 0.0 's130' 0
101 'Stimulus' 209.959 0.0 's71' 0
102 'Stimulus' 213.096 0.0 's130' 0
103 'Stimulus' 213.822 0.0 's70' 0
104 'Stimulus' 216.963 0.0 's130' 0
105 'Stimulus' 217.906 0.0 's70' 0
106 'Stimulus' 224.498 0.0 's130' 0
107 'Stimulus' 225.336 0.0 's70' 0
108 'Stimulus' 228.461 0.0 's130' 0
109 'Stimulus' 229.447 0.0 's71' 0
110 'Stimulus' 232.582 0.0 's130' 0
111 'Stimulus' 233.232 0.0 's70' 0
112 'Stimulus' 236.367 0.0 's130' 0
113 'Stimulus' 237.334 0.0 's70' 0
114 'Stimulus' 240.475 0.0 's130' 0
115 'Stimulus' 241.273 0.0 's71' 0
116 'Stimulus' 244.412 0.0 's130' 0
117 'Stimulus' 245.324 0.0 's70' 0
118 'Stimulus' 248.459 0.0 's130' 0
119 'Stimulus' 249.031 0.0 's70' 0
120 'Stimulus' 252.17 0.0 's130' 0
121 'Stimulus' 252.99 0.0 's71' 0
122 'Stimulus' 256.129 0.0 's130' 0
123 'Stimulus' 256.887 0.0 's70' 0
124 'Stimulus' 260.027 0.0 's130' 0
125 'Stimulus' 260.551 0.0 's70' 0
126 'Stimulus' 263.688 0.0 's130' 0
127 'Stimulus' 264.195 0.0 's70' 0
128 'Stimulus' 267.338 0.0 's130' 0
129 'Stimulus' 268.289 0.0 's71' 0
130 'Stimulus' 271.428 0.0 's130' 0
131 'Stimulus' 272.109 0.0 's70' 0
132 'Stimulus' 275.25 0.0 's130' 0
133 'Stimulus' 275.891 0.0 's71' 0
134 'Stimulus' 279.029 0.0 's130' 0
135 'Stimulus' 279.934 0.0 's71' 0
136 'Stimulus' 283.07 0.0 's130' 0
137 'Stimulus' 283.627 0.0 's71' 0
138 'Stimulus' 286.773 0.0 's130' 0
139 'Stimulus' 287.762 0.0 's71' 0
140 'Stimulus' 290.898 0.0 's130' 0
141 'Stimulus' 291.42 0.0 's70' 0
142 'Stimulus' 294.555 0.0 's130' 0
143 'Stimulus' 295.52 0.0 's70' 0
144 'Stimulus' 298.658 0.0 's130' 0
145 'Stimulus' 299.172 0.0 's70' 0
146 'Stimulus' 302.312 0.0 's130' 0
147 'Stimulus' 303.176 0.0 's70' 0
148 'Stimulus' 306.309 0.0 's130' 0
149 'Stimulus' 306.848 0.0 's70' 0
150 'Stimulus' 309.992 0.0 's130' 0
151 'Stimulus' 310.852 0.0 's71' 0
152 'Stimulus' 313.988 0.0 's130' 0
153 'Stimulus' 314.627 0.0 's70' 0
154 'Stimulus' 317.77 0.0 's130' 0
155 'Stimulus' 318.475 0.0 's70' 0
156 'Stimulus' 321.615 0.0 's130' 0
157 'Stimulus' 322.547 0.0 's70' 0
158 'Stimulus' 325.682 0.0 's130' 0
159 'Stimulus' 326.596 0.0 's71' 0
160 'Stimulus' 329.738 0.0 's130' 0
161 'Stimulus' 330.633 0.0 's71' 0
162 'Stimulus' 333.777 0.0 's130' 0
163 'Stimulus' 334.529 0.0 's71' 0
164 'Stimulus' 337.67 0.0 's130' 0
165 'Stimulus' 338.18 0.0 's70' 0
166 'Stimulus' 341.316 0.0 's130' 0
167 'Stimulus' 341.891 0.0 's70' 0
168 'Stimulus' 345.029 0.0 's130' 0
169 'Stimulus' 346.0 0.0 's70' 0
170 'Stimulus' 349.141 0.0 's130' 0
171 'Stimulus' 349.715 0.0 's70' 0
172 'Stimulus' 352.852 0.0 's130' 0
173 'Stimulus' 353.375 0.0 's71' 0
174 'Stimulus' 356.51 0.0 's130' 0
175 'Stimulus' 357.377 0.0 's70' 0
176 'Stimulus' 360.518 0.0 's130' 0
177 'Stimulus' 361.078 0.0 's71' 0
178 'Stimulus' 364.219 0.0 's130' 0
179 'Stimulus' 364.799 0.0 's70' 0
180 'Stimulus' 367.938 0.0 's130' 0
181 'Stimulus' 368.602 0.0 's71' 0
182 'Stimulus' 371.746 0.0 's130' 0
183 'Stimulus' 372.553 0.0 's71' 0
184 'Stimulus' 375.688 0.0 's130' 0
185 'Stimulus' 376.455 0.0 's70' 0
186 'Stimulus' 379.596 0.0 's130' 0
187 'Stimulus' 380.229 0.0 's70' 0
188 'Stimulus' 383.375 0.0 's130' 0
189 'Stimulus' 384.209 0.0 's71' 0
190 'Stimulus' 387.346 0.0 's130' 0
191 'Stimulus' 388.188 0.0 's70' 0
192 'Stimulus' 391.322 0.0 's130' 0
193 'Stimulus' 392.229 0.0 's71' 0
194 'Stimulus' 395.371 0.0 's130' 0
195 'Stimulus' 396.002 0.0 's71' 0
196 'Stimulus' 399.135 0.0 's130' 0
197 'Stimulus' 399.934 0.0 's71' 0
198 'Stimulus' 403.066 0.0 's130' 0
199 'Stimulus' 403.779 0.0 's71' 0
200 'Stimulus' 406.924 0.0 's130' 0
201 'Stimulus' 407.633 0.0 's71' 0
202 'Stimulus' 410.781 0.0 's130' 0
203 'Stimulus' 411.588 0.0 's71' 0
204 'Stimulus' 414.729 0.0 's130' 0
205 'Stimulus' 415.262 0.0 's71' 0
206 'Stimulus' 420.787 0.0 's130' 0
207 'Stimulus' 421.787 0.0 's70' 0
208 'Stimulus' 424.922 0.0 's130' 0
209 'Stimulus' 425.463 0.0 's70' 0
210 'Stimulus' 428.602 0.0 's130' 0
211 'Stimulus' 429.256 0.0 's70' 0
212 'Stimulus' 432.395 0.0 's130' 0
213 'Stimulus' 433.066 0.0 's71' 0
214 'Stimulus' 436.221 0.0 's130' 0
215 'Stimulus' 436.863 0.0 's71' 0
216 'Stimulus' 440.0 0.0 's130' 0
217 'Stimulus' 440.758 0.0 's71' 0
218 'Stimulus' 443.896 0.0 's130' 0
219 'Stimulus' 444.812 0.0 's71' 0
220 'Stimulus' 447.955 0.0 's130' 0
221 'Stimulus' 448.801 0.0 's71' 0
222 'Stimulus' 451.93 0.0 's130' 0
223 'Stimulus' 452.627 0.0 's71' 0
224 'Stimulus' 455.762 0.0 's130' 0
225 'Stimulus' 456.619 0.0 's71' 0
226 'Stimulus' 459.758 0.0 's130' 0
227 'Stimulus' 460.539 0.0 's70' 0
228 'Stimulus' 463.674 0.0 's130' 0
229 'Stimulus' 464.672 0.0 's70' 0
230 'Stimulus' 467.809 0.0 's130' 0
231 'Stimulus' 468.652 0.0 's70' 0
232 'Stimulus' 471.783 0.0 's130' 0
233 'Stimulus' 472.293 0.0 's71' 0
234 'Stimulus' 475.428 0.0 's130' 0
235 'Stimulus' 476.322 0.0 's70' 0
236 'Stimulus' 479.463 0.0 's130' 0
237 'Stimulus' 480.291 0.0 's71' 0
238 'Stimulus' 483.428 0.0 's130' 0
239 'Stimulus' 484.053 0.0 's70' 0
240 'Stimulus' 487.184 0.0 's130' 0
241 'Stimulus' 487.986 0.0 's71' 0
242 'Stimulus' 491.121 0.0 's130' 0
243 'Stimulus' 491.975 0.0 's70' 0
244 'Stimulus' 495.113 0.0 's130' 0
245 'Stimulus' 495.908 0.0 's70' 0
246 'Stimulus' 499.049 0.0 's130' 0
247 'Stimulus' 499.68 0.0 's70' 0
248 'Stimulus' 502.824 0.0 's130' 0
249 'Stimulus' 503.408 0.0 's71' 0
250 'Stimulus' 506.547 0.0 's130' 0
251 'Stimulus' 507.162 0.0 's71' 0
252 'Stimulus' 510.295 0.0 's130' 0
253 'Stimulus' 511.156 0.0 's70' 0
254 'Stimulus' 514.295 0.0 's130' 0
255 'Stimulus' 515.066 0.0 's71' 0
256 'Stimulus' 518.211 0.0 's130' 0
257 'Stimulus' 518.777 0.0 's70' 0
258 'Stimulus' 521.912 0.0 's130' 0
259 'Stimulus' 522.652 0.0 's70' 0
260 'Stimulus' 525.783 0.0 's130' 0
261 'Stimulus' 526.514 0.0 's70' 0
262 'Stimulus' 529.656 0.0 's130' 0
263 'Stimulus' 530.186 0.0 's70' 0
264 'Stimulus' 533.33 0.0 's130' 0
265 'Stimulus' 534.174 0.0 's70' 0
266 'Stimulus' 537.318 0.0 's130' 0
267 'Stimulus' 538.234 0.0 's70' 0
268 'Stimulus' 541.371 0.0 's130' 0
269 'Stimulus' 541.998 0.0 's70' 0
270 'Stimulus' 545.139 0.0 's130' 0
271 'Stimulus' 545.727 0.0 's70' 0
272 'Stimulus' 548.867 0.0 's130' 0
273 'Stimulus' 549.857 0.0 's71' 0
274 'Stimulus' 553.002 0.0 's130' 0
275 'Stimulus' 553.695 0.0 's70' 0
276 'Stimulus' 556.832 0.0 's130' 0
277 'Stimulus' 557.758 0.0 's71' 0
278 'Stimulus' 560.902 0.0 's130' 0
279 'Stimulus' 561.605 0.0 's71' 0
280 'Stimulus' 564.75 0.0 's130' 0
281 'Stimulus' 565.305 0.0 's70' 0
282 'Stimulus' 568.443 0.0 's130' 0
283 'Stimulus' 569.365 0.0 's71' 0
284 'Stimulus' 572.51 0.0 's130' 0
285 'Stimulus' 573.053 0.0 's71' 0
286 'Stimulus' 576.188 0.0 's130' 0
287 'Stimulus' 577.123 0.0 's71' 0
288 'Stimulus' 580.254 0.0 's130' 0
289 'Stimulus' 581.092 0.0 's70' 0
290 'Stimulus' 584.227 0.0 's130' 0
291 'Stimulus' 584.914 0.0 's70' 0
292 'Stimulus' 588.049 0.0 's130' 0
293 'Stimulus' 588.977 0.0 's71' 0
294 'Stimulus' 592.117 0.0 's130' 0
295 'Stimulus' 592.707 0.0 's71' 0
296 'Stimulus' 595.844 0.0 's130' 0
297 'Stimulus' 596.496 0.0 's70' 0
298 'Stimulus' 599.635 0.0 's130' 0
299 'Stimulus' 600.207 0.0 's70' 0
300 'Stimulus' 603.344 0.0 's130' 0
301 'Stimulus' 604.207 0.0 's71' 0
302 'Stimulus' 607.35 0.0 's130' 0
303 'Stimulus' 607.924 0.0 's71' 0
304 'Stimulus' 611.068 0.0 's130' 0
305 'Stimulus' 611.865 0.0 's70' 0
306 'Stimulus' 616.969 0.0 's130' 0
307 'Stimulus' 617.691 0.0 's70' 0
308 'Stimulus' 620.824 0.0 's130' 0
309 'Stimulus' 621.543 0.0 's71' 0
310 'Stimulus' 624.678 0.0 's130' 0
311 'Stimulus' 625.225 0.0 's71' 0
312 'Stimulus' 628.365 0.0 's130' 0
313 'Stimulus' 628.9 0.0 's71' 0
314 'Stimulus' 632.037 0.0 's130' 0
315 'Stimulus' 632.67 0.0 's71' 0
316 'Stimulus' 635.805 0.0 's130' 0
317 'Stimulus' 636.652 0.0 's70' 0
318 'Stimulus' 639.787 0.0 's130' 0
319 'Stimulus' 640.303 0.0 's71' 0
320 'Stimulus' 643.441 0.0 's130' 0
321 'Stimulus' 644.309 0.0 's70' 0
322 'Stimulus' 647.449 0.0 's130' 0
323 'Stimulus' 648.414 0.0 's70' 0
324 'Stimulus' 651.559 0.0 's130' 0
325 'Stimulus' 652.543 0.0 's70' 0
326 'Stimulus' 655.684 0.0 's130' 0
327 'Stimulus' 656.193 0.0 's70' 0
328 'Stimulus' 659.324 0.0 's130' 0
329 'Stimulus' 659.963 0.0 's71' 0
330 'Stimulus' 663.102 0.0 's130' 0
331 'Stimulus' 663.73 0.0 's70' 0
332 'Stimulus' 666.871 0.0 's130' 0
333 'Stimulus' 667.535 0.0 's70' 0
334 'Stimulus' 670.678 0.0 's130' 0
335 'Stimulus' 671.574 0.0 's71' 0
336 'Stimulus' 674.711 0.0 's130' 0
337 'Stimulus' 675.338 0.0 's71' 0
338 'Stimulus' 678.482 0.0 's130' 0
339 'Stimulus' 679.285 0.0 's71' 0
340 'Stimulus' 682.428 0.0 's130' 0
341 'Stimulus' 682.941 0.0 's71' 0
342 'Stimulus' 686.084 0.0 's130' 0
343 'Stimulus' 686.945 0.0 's70' 0
344 'Stimulus' 690.084 0.0 's130' 0
345 'Stimulus' 690.918 0.0 's70' 0
346 'Stimulus' 694.057 0.0 's130' 0
347 'Stimulus' 694.572 0.0 's71' 0
348 'Stimulus' 697.711 0.0 's130' 0
349 'Stimulus' 698.59 0.0 's70' 0
350 'Stimulus' 701.73 0.0 's130' 0
351 'Stimulus' 702.291 0.0 's71' 0
352 'Stimulus' 705.432 0.0 's130' 0
353 'Stimulus' 706.287 0.0 's71' 0
354 'Stimulus' 709.426 0.0 's130' 0
355 'Stimulus' 710.1 0.0 's71' 0
356 'Stimulus' 713.236 0.0 's130' 0
357 'Stimulus' 713.787 0.0 's70' 0
358 'Stimulus' 716.928 0.0 's130' 0
359 'Stimulus' 717.885 0.0 's71' 0
360 'Stimulus' 721.02 0.0 's130' 0
361 'Stimulus' 721.889 0.0 's70' 0
362 'Stimulus' 725.027 0.0 's130' 0
363 'Stimulus' 725.58 0.0 's71' 0
364 'Stimulus' 728.727 0.0 's130' 0
365 'Stimulus' 729.232 0.0 's70' 0
366 'Stimulus' 732.359 0.0 's130' 0
367 'Stimulus' 733.342 0.0 's71' 0
368 'Stimulus' 736.479 0.0 's130' 0
369 'Stimulus' 737.455 0.0 's70' 0
370 'Stimulus' 740.59 0.0 's130' 0
371 'Stimulus' 741.494 0.0 's71' 0
372 'Stimulus' 744.633 0.0 's130' 0
373 'Stimulus' 745.496 0.0 's71' 0
374 'Stimulus' 748.637 0.0 's130' 0
375 'Stimulus' 749.182 0.0 's70' 0
376 'Stimulus' 752.318 0.0 's130' 0
377 'Stimulus' 753.283 0.0 's71' 0
378 'Stimulus' 756.428 0.0 's130' 0
379 'Stimulus' 757.25 0.0 's70' 0
380 'Stimulus' 760.396 0.0 's130' 0
381 'Stimulus' 761.191 0.0 's71' 0
382 'Stimulus' 764.332 0.0 's130' 0
383 'Stimulus' 764.896 0.0 's71' 0
384 'Stimulus' 768.035 0.0 's130' 0
385 'Stimulus' 768.988 0.0 's70' 0
386 'Stimulus' 772.123 0.0 's130' 0
387 'Stimulus' 773.043 0.0 's71' 0
388 'Stimulus' 776.188 0.0 's130' 0
389 'Stimulus' 776.922 0.0 's70' 0
390 'Stimulus' 780.059 0.0 's130' 0
391 'Stimulus' 780.668 0.0 's70' 0
392 'Stimulus' 783.805 0.0 's130' 0
393 'Stimulus' 784.396 0.0 's70' 0
394 'Stimulus' 787.539 0.0 's130' 0
395 'Stimulus' 788.318 0.0 's71' 0
396 'Stimulus' 791.451 0.0 's130' 0
397 'Stimulus' 792.07 0.0 's70' 0
398 'Stimulus' 795.207 0.0 's130' 0
399 'Stimulus' 796.062 0.0 's71' 0
400 'Stimulus' 799.207 0.0 's130' 0
401 'Stimulus' 799.986 0.0 's71' 0
402 'Stimulus' 803.119 0.0 's130' 0
403 'Stimulus' 803.65 0.0 's71' 0
404 'Stimulus' 806.529 0.0 's121' 0
405 'Stimulus' 806.574 0.0 's122' 0
406 'Stimulus' 806.619 0.0 's102' 0
Epoch by marker “s71” with 500 ms offset before the marker and total epoch length 2500 ms:
eeg_epoched = epoch(eeg,
marker="s71",
offset=0.5,
ep_len=2.5)
NeuroAnalyzer.plot(eeg_epoched,
ch="eeg")Create ERP, set baseline from -500 to 0 msec:
erp_s71 = average_epochs(eeg_epoched, bl=(-0.5, 0))
plot_erp(erp_s71,
ch="O2-avg")(!) Baseline segment time points must be given in seconds.
By default, baseline is subtracted after averaging, to subtract baseline prior to averaging:
erp_s71 = average_epochs(eeg_epoched,
bl=(-0.5, 0),
blfirst=true);(!) To reverse the Y axis (so that negative values are at the top), use the yrev=true option:
plot_erp(erp_s71,
ch="O2-avg",
yrev=true)To add the response time line to the plot:
plot_erp(erp_s71,
ch="O2-avg",
rt=0.18)Detect peaks:
erp_peaks(erp_s71)30×2 Matrix{Int64}:
528 384
515 375
515 387
321 485
329 377
328 381
327 386
322 459
318 377
330 377
327 381
332 387
311 487
⋮
448 318
378 293
385 291
395 331
381 325
379 325
378 326
377 285
376 328
375 335
375 335
377 332
(!) The output matrix contains the position (in samples) of the positive (first column) and negative (second column) peaks.
Plots
Butterfly plot over channels:
plot_erp(erp_s71,
ch=["O2-avg", "Fp2-avg", "F3-avg", "F4-avg"],
type=:butterfly,
avg=true)Butterfly plot over epochs:
plot_erp(erp_s71,
ch="O2-avg",
type=:butterfly,
avg=true)Mean plot over channels:
plot_erp(erp_s71,
ch="eeg",
type=:mean,
peaks=false)Mean plot over epochs:
plot_erp(erp_s71,
ch="O2-avg",
type=:mean,
peaks=false)Topographical plot of ERPs:
plot_erp(erp_s71,
ch="eeg",
type=:topo)Positive peak is at 143 ms, negative peak at 234 ms (see plot_erp() output). Draw markers and topoplots at these time points:
p1 = plot_erp(erp_s71,
ch="eeg",
type=:butterfly,
avg=true,
labels=false,
tm=[143, 234],
title="",
top_margin=10Plots.px,
channel_labels=false)
p2 = plot_topo(erp_s71,
ch="eeg",
seg=(0.143, 0.144),
large=false,
cb=false,
title="")
p3 = plot_topo(erp_s71,
ch="eeg",
seg=(0.234, 0.235),
large=false,
cb=false,
title="")
c1 = resize_canvas(plot2canvas(p2), r=0.5)
c2 = resize_canvas(plot2canvas(p3), r=0.5)
c = add_topmargin_canvas(plot2canvas(p1), c1)
c = add_to_canvas(c, c1, x=230, y=0, title="143 ms", view=false)
c = add_to_canvas(c, c2, x=400, y=0, title="234 ms", view=false)
Plot stacked channels:
plot_erp(erp_s71,
ch="eeg",
type=:stack)Plot stacked epochs:
plot_erp(erp_s71,
ch="O2-avg",
type=:stack,
tm=[143, 234])To plot stacked epochs and ERP:
p1 = plot_erp(erp_s71,
ch="O2-avg",
type=:stack,
cb=false,
title="",
xlabel="",
xticks=false)
p2 = plot_erp(erp_s71,
ch="O2-avg",
title="")
Plots.plot(p1,
p2,
layout=@layout [a{0.8h}; b{0.2h}])To plot smoothed stacked epochs and ERP:
plot_erp(erp_s71,
ch="O2-avg",
type=:stack,
smooth=true,
n=5)To plot the response time (we’ll use random values for the RT) line over the ERP stack plot:
rt = 0.28 .+ rand(-0.1:0.01:0.1, nepochs(erp_s71) - 1)
plot_erp(erp_s71,
ch="O2-avg",
type=:stack,
rt=rt)To plot the response time line over the ERP stack plot and sort epochs by RT values:
plot_erp(erp_s71,
ch="O2-avg",
type=:stack,
rt=rt,
sort_epochs=true)Analyze amplitude
Calculate amplitude at given time point:
amp_at(erp_s71, t=0.250)30×101 Matrix{Float64}:
-9.73768 -3.25917 -9.77505 … -25.9687 -22.8558 -12.2436
-10.3149 -1.48914 -7.34775 -21.811 -18.8743 -14.1784
-11.6178 -5.53582 -4.42358 -24.7734 -25.5212 -14.9751
-4.78153 -2.63223 -10.187 -17.2857 -18.5015 10.3152
-8.07072 -6.58969 -5.4957 -13.2527 1.61631 -6.71269
-11.0011 -9.82786 -9.09226 … -5.08861 -6.97248 -11.9981
-9.26919 -5.55156 -12.3329 -8.83808 -6.40816 -11.1094
-5.04383 -4.30096 -11.0938 -17.9681 -1.88604 -6.51192
-3.89647 -4.08119 -6.71253 -5.09444 3.15501 0.922566
-7.7378 -12.7435 -7.85609 -0.267596 5.39829 -10.8358
-7.92647 -8.6019 -10.4071 … 8.46042 -0.462519 -11.9801
-2.5943 -0.204067 0.287957 -1.40843 -3.9917 -13.9811
-0.950716 -12.2839 -11.7396 4.33569 -7.49293 10.5282
⋮ ⋱ ⋮
1.10352 -3.71465 2.78278 13.8079 10.5831 -1.61164
2.54106 0.738608 9.23041 18.7379 1.12622 -0.576752
4.62554 5.09456 7.42191 … 4.72673 1.71913 8.12076
8.55236 3.78735 3.11817 1.68769 7.83067 14.4732
8.01991 6.35823 11.1531 15.1048 10.3737 9.90248
6.39868 6.21693 15.1391 15.8851 10.1823 2.23683
10.6092 12.8818 20.504 12.2809 7.0627 8.82728
10.4172 18.281 8.67381 … -3.46714 11.7561 7.26518
10.285 13.6055 16.8103 8.40387 9.24672 6.61932
12.3985 19.9495 3.82913 7.03179 0.604842 10.6467
11.1539 17.4423 8.29286 0.244704 2.39256 8.982
13.2399 20.4566 12.5264 -0.245084 8.54368 11.0956
Calculate average, minimum and maximum amplitude over a time segment:
avgamp_at(erp_s71, t=(0.150, 0.250))30×101 Matrix{Float64}:
-4.57766 -0.863635 -1.05116 0.54008 … -10.819 1.94352
-4.84862 -1.20771 -0.157233 -0.993814 -10.8714 3.54908
-5.26472 -2.06828 -0.862798 -2.15083 -13.628 3.29801
-0.149862 -3.01451 1.4346 2.68725 3.91348 8.80026
-2.14534 -3.85869 1.76038 1.14358 0.809137 4.88469
-2.88549 -3.91829 -0.215551 -2.39568 … -2.08313 5.11766
-2.22541 -1.04069 -2.18836 -0.671389 -4.55374 6.7474
-0.467958 -1.6521 -0.218358 0.260555 -3.40384 6.04894
-0.156239 -4.44113 3.51455 1.39607 4.35368 5.1952
-1.38137 -6.75628 -0.529875 -0.679102 1.18254 1.07401
-0.801345 -2.52426 -3.12727 -1.70691 … -1.78364 1.43736
-0.208639 -1.75401 -1.01455 0.717619 -0.580821 4.04182
1.17913 -4.95069 2.5884 2.29881 5.22617 4.43843
⋮ ⋱ ⋮
0.0242059 -0.15604 -2.3971 -1.51991 -1.13279 -7.76304
0.918125 3.95495 -1.90558 -0.82427 -0.948886 -7.25172
1.53701 4.01835 0.892096 0.574632 … -0.162553 -0.00933076
1.45036 -3.57767 -2.07304 0.440197 7.2797 -1.12364
1.03925 1.79971 1.61047 0.808244 1.69957 -8.64757
0.294561 4.77926 -1.41483 -2.32922 -0.178806 -12.6201
3.03289 8.11358 3.9845 1.06056 1.20115 -7.91711
2.94948 6.69522 2.02709 -0.113789 … 4.03055 3.6246
1.3745 6.59274 0.0219913 -0.564119 2.05096 -10.0371
2.98107 2.47279 0.247529 0.757357 6.50471 -0.466173
2.16001 3.77779 -0.0969683 -1.53483 3.8709 -2.30907
3.84839 6.41387 2.49254 1.83415 5.41921 -0.967462
minamp_at(erp_s71, t=(0.150, 0.250))30×101 Matrix{Float64}:
-9.81804 -9.81804 -9.81804 … -9.81804 -9.81804 -9.81804
-10.6515 -10.6515 -10.6515 -10.6515 -10.6515 -10.6515
-11.6178 -11.6178 -11.6178 -11.6178 -11.6178 -11.6178
-4.78153 -4.78153 -4.78153 -4.78153 -4.78153 -4.78153
-8.96852 -8.96852 -8.96852 -8.96852 -8.96852 -8.96852
-11.7468 -11.7468 -11.7468 … -11.7468 -11.7468 -11.7468
-10.1427 -10.1427 -10.1427 -10.1427 -10.1427 -10.1427
-5.53342 -5.53342 -5.53342 -5.53342 -5.53342 -5.53342
-5.81906 -5.81906 -5.81906 -5.81906 -5.81906 -5.81906
-8.55417 -8.55417 -8.55417 -8.55417 -8.55417 -8.55417
-8.68643 -8.68643 -8.68643 … -8.68643 -8.68643 -8.68643
-5.29589 -5.29589 -5.29589 -5.29589 -5.29589 -5.29589
-1.55688 -1.55688 -1.55688 -1.55688 -1.55688 -1.55688
⋮ ⋱ ⋮
-1.1859 -1.1859 -1.1859 -1.1859 -1.1859 -1.1859
-0.770664 -0.770664 -0.770664 -0.770664 -0.770664 -0.770664
-0.353112 -0.353112 -0.353112 … -0.353112 -0.353112 -0.353112
-6.69858 -6.69858 -6.69858 -6.69858 -6.69858 -6.69858
-6.30743 -6.30743 -6.30743 -6.30743 -6.30743 -6.30743
-5.38795 -5.38795 -5.38795 -5.38795 -5.38795 -5.38795
-6.62381 -6.62381 -6.62381 -6.62381 -6.62381 -6.62381
-3.08463 -3.08463 -3.08463 … -3.08463 -3.08463 -3.08463
-10.9082 -10.9082 -10.9082 -10.9082 -10.9082 -10.9082
-10.5093 -10.5093 -10.5093 -10.5093 -10.5093 -10.5093
-11.2337 -11.2337 -11.2337 -11.2337 -11.2337 -11.2337
-8.73226 -8.73226 -8.73226 -8.73226 -8.73226 -8.73226
maxamp_at(erp_s71, t=(0.150, 0.250))30×101 Matrix{Float64}:
3.17083 10.4023 13.6413 10.8449 … -0.837317 10.7329 16.1297
3.26584 10.0643 14.7684 10.095 -0.719982 11.0754 13.8089
3.45163 9.68338 15.5717 13.4008 -4.86047 10.2427 23.323
4.89187 17.5225 16.5183 24.8802 11.4773 25.5987 24.5297
4.14945 8.77171 10.7106 13.9626 10.9452 11.0181 18.1921
5.36117 11.6684 11.3849 8.23687 … 7.78105 12.1209 17.2178
4.89598 14.2505 5.86164 9.25747 11.3676 11.1458 20.5733
6.15725 16.987 16.6587 13.6239 8.78436 10.4363 23.584
4.42228 8.23115 13.9158 16.8205 22.0872 25.8677 26.6431
4.44486 5.02027 6.41918 10.552 11.5949 8.14271 14.0762
5.27915 10.096 5.55465 10.1694 … 10.1989 13.5889 13.5477
6.09572 19.0204 9.92358 13.7489 19.6665 14.098 32.6114
3.59021 11.8417 16.2271 23.3808 15.6518 23.6793 23.5693
⋮ ⋱ ⋮
1.10352 5.91097 2.78278 5.11453 16.3265 10.5831 -1.61164
2.86049 10.5924 9.23041 11.4388 18.7379 3.44942 -0.576752
4.62554 13.0202 12.5518 13.9384 … 10.0671 5.66833 19.2654
8.7956 29.3282 13.5573 13.9377 12.6436 26.3997 22.8581
8.61952 12.7734 12.6514 16.6181 15.1048 15.6616 11.0307
7.16129 11.3369 15.1391 15.9134 15.8851 10.1823 2.23683
11.2419 21.7868 23.7519 19.7359 13.6524 14.5603 8.82728
10.6301 35.1815 23.1945 17.7729 … 6.37265 19.0179 20.5161
11.9722 20.9103 19.6738 18.628 11.0846 14.925 6.78769
14.1835 37.2152 13.7752 21.8457 17.4363 36.184 22.4349
13.2338 28.8693 18.6345 14.9196 16.4761 26.1582 15.6525
14.7899 30.5116 29.6832 19.7979 17.6042 30.3794 21.4683
Non-phase-locked signal
Calculate non-phase-locked signal (signal - ERP):
erp_s71_npl = npl(erp_s71);EROs and EROp
Calculate EROs (Event-Related Oscillations) spectrogram:
s, f, t = eros(erp_s71, ch="Fp1-avg")
plot_eros(s,
f,
t,
tm=[143, 234],
frq_lim=(0, 40))Calculate EROp (Event-Related Oscillations) power-spectrum:
p, f = erop(erp_s71, ch="Fp1-avg")
plot_erop(p,
f,
frq_lim=(0, 40))Dissimilarity
eeg_epoched = epoch(eeg,
marker="s71",
offset=0.5, ep_len=2.5)
erp_s71 = average_epochs(eeg_epoched,
bl=(-0.5, 0))
eeg_epoched = epoch(eeg,
marker="s130",
offset=0.5, ep_len=2.5)
erp_s130 = average_epochs(eeg_epoched,
bl=(-0.5, 0))
gd, sc = diss(erp_s71,
erp_s130,
ch1="all",
ch2="all")
t = eeg_epoched.epoch_time
Plots.plot(t,
gd,
label="global dissimilarity",
xlabel="Time [s]",
title="s71 vs s130")
Plots.plot!(t,
sc,
label="spatial correlation")Topographical variance
tv_s71 = topo_var(erp_s71,
ch="all")
t = eeg_epoched.epoch_time
Plots.plot(t,
tv_s71,
label="s71",
xlabel="Time [s]",
title="Topographical variance")
tv_s130 = topo_var(erp_s130,
ch="all")
t = eeg_epoched.epoch_time
Plots.plot!(t,
tv_s130,
label="s130")