-
Notifications
You must be signed in to change notification settings - Fork 34
Expand file tree
/
Copy pathbasicUsage.html
More file actions
463 lines (407 loc) · 209 KB
/
basicUsage.html
File metadata and controls
463 lines (407 loc) · 209 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,IE=9,chrome=1"><meta name="generator" content="MATLAB 2024b"><title>Using NWB Data</title><link rel="stylesheet" href="css/livescript.css">
<style type="text/css">.rtcContent { padding: 30px; } .S0 { margin: 3px 10px 5px 4px; padding: 0px; line-height: 28.8px; min-height: 0px; white-space: pre-wrap; color: rgb(192, 76, 11); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 24px; font-weight: 400; text-align: left; }
.S1 { margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; }
.S2 { margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; }
.CodeBlock { background-color: #F5F5F5; margin: 10px 15px 10px 0; display: inline-block }
.S3 { border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 1px solid rgb(217, 217, 217); border-bottom: 1px solid rgb(217, 217, 217); border-radius: 4px; padding: 6px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, "Courier New", monospace, Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; }
.S4 { margin: 3px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; }
.S5 { border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 1px solid rgb(217, 217, 217); border-bottom: 0px none rgb(33, 33, 33); border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, "Courier New", monospace, Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; }
.S6 { border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 0px none rgb(33, 33, 33); border-bottom: 0px none rgb(33, 33, 33); border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, "Courier New", monospace, Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; }
.S7 { border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 0px none rgb(33, 33, 33); border-bottom: 1px solid rgb(217, 217, 217); border-radius: 0px 0px 4px 4px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, "Courier New", monospace, Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; }
.S8 { margin: 10px 10px 5px 4px; padding: 0px; line-height: 18px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 15px; font-weight: 700; text-align: left; }
.S9 { margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; }
.S10 { margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px; }
.S11 { margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap; }
.eoOutputWrapper { width: calc(90vw - 10px) !important; }
.S12 { border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 0px none rgb(33, 33, 33); border-bottom: 1px solid rgb(217, 217, 217); border-radius: 0px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, "Courier New", monospace, Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; }
.S13 { color: rgb(33, 33, 33); padding: 10px 0px 6px 17px; background: rgb(255, 255, 255) none repeat scroll 0% 0% / auto padding-box border-box; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px; }</style></head><body><div class = rtcContent><h1 class = 'S0'><span>Using NWB Data</span></h1><div class = 'S1'><span style=' font-style: italic;'>last updated: January 1st, 2023</span></div><div class = 'S1'><span>In this tutorial, we demonstrate the reading and usage of the NWB file produced in the </span><a href = "https://matnwb.readthedocs.io/en/latest/pages/tutorials/convertTrials.html"><span>File Conversion Tutorial</span></a><span>. The output is a near-reproduction of Figure 1e from the </span><a href = "https://www.ncbi.nlm.nih.gov/pubmed/27074502"><span>Li et al</span></a><span> publication, showing raster and peristimulus time histogram (PSTH) plots for neural recordings from anterior lateral motor cortex (ALM). This figure illustrates the main finding of the publication, showing the robustness of motor planning behavior and neural dynamics following short unilateral network silencing via optogenetic inhibition. </span></div><h2 class = 'S2'><span>Reading NWB Files</span></h2><div class = 'S1'><span>NWB files can be read in using the </span><span style=' font-style: italic;'>nwbRead()</span><span> function. This function returns a </span><span style=' font-style: italic;'>nwbfile</span><span> object which is the in-memory representation of the NWB file structure.</span></div><div class="CodeBlock"><div class="inlineWrapper"><div class = 'S3'><span style="white-space: pre"><span >nwb = nwbRead(</span><span style="color: #a709f5;">'out\ANM255201_20141124.nwb'</span><span >, </span><span style="color: #a709f5;">'ignorecache'</span><span >);</span></span></div></div></div><h2 class = 'S4'><span style=' font-weight: bold;'>Constrained Sets</span></h2><div class = 'S1'><span>Analyzed data in NWB is placed under the </span><span style=' font-style: italic;'>analysis</span><span> property, which is a </span><span style=' font-weight: bold;'>Constrained Set</span><span>. A constrained set consists of an arbitrary amount of key-value pairs similar to </span><a href = "https://www.mathworks.com/help/matlab/map-containers.html"><span>Map containers</span></a><span> in MATLAB or a dictionary in Python. However, constrained sets also have the ability to validate their own properties closer to how a typed Object would.</span></div><div class = 'S1'><span>You can get/set values in constrained sets using their respective </span><span style=' font-style: italic;'>.get()/.set()</span><span> methods and retrieve all Set properties using the </span><span style=' font-style: italic;'>keys() </span><span>method, like in a </span><span style=' font-style: italic;'>containers.Map.</span></div><div class="CodeBlock"><div class="inlineWrapper"><div class = 'S3'><span style="white-space: pre"><span >unit_names = keys(nwb.analysis);</span></span></div></div></div><h2 class = 'S2'><span>Dictionaries with MATLAB R2022b</span></h2><div class = 'S1'><span>As noted above, constrained sets uses Map container objects, a custom class that allows user to retrieve values using a corresponding key. For users working with MATLAB version R2022b, a notable addition of the </span><a href = "https://www.mathworks.com/help/matlab/ref/dictionary.html?s_tid=doc_ta"><span>dictionary</span></a><span> object offers significantly faster functionality.</span></div><div class = 'S1'><span>You can initialize a dictionary and configure its contents from relevant analysed NWB data with the same key/values noted above. </span></div><div class = 'S1'><span>Number of entries in a dictionary can be done with the new </span><a href = "https://www.mathworks.com/help/matlab/ref/dictionary.numentries.html"><span>numEntries()</span></a><span> function. One can also return all the keys and values of a dictionary as arrays using </span><a href = "https://www.mathworks.com/help/matlab/ref/dictionary.keys.html"><span>keys(dict_name)</span></a><span> and </span><a href = "https://www.mathworks.com/help/matlab/ref/dictionary.values.html"><span>values(dict_name)</span></a><span> functions. </span></div><h2 class = 'S2'><span>Dynamic Tables</span></h2><div class = 'S1'><span style=' font-style: italic;'>nwb.intervals_trials</span><span> returns a unique type of table called a </span><span style=' font-weight: bold;'>Dynamic Table</span><span>. Dynamic tables inherit from the NWB type </span><span style=' font-style: italic;'>types.hdmf_common.DynamicTable</span><span> and allow for a table-like interface in NWB. In the case below, we grab the special column </span><span style=' font-style: italic;'>start_time</span><span>. Dynamic Tables allow adding your own vectors using the </span><span style=' font-style: italic;'>vectordata</span><span> property, which are Constrained Sets. All columns are represented by either a </span><span style=' font-style: italic;'>types.hdmf_common.VectorData </span><span>or a </span><span style=' font-style: italic;'>types.hdmf_common.VectorIndex</span><span> type.</span></div><h2 class = 'S2'><span>Data Stubs</span></h2><div class = 'S1'><span>The </span><span style=' font-style: italic;'>data</span><span> property of the column </span><span style=' font-style: italic;'>id</span><span> in </span><span style=' font-style: italic;'>nwb.units</span><span> is a </span><span style=' font-style: italic;'>types.untyped.DataStub.</span><span> This object is a representation of a dataset that is not loaded in memory, and is what allows MatNWB to lazily load its file data. To load the data into memory, use the </span><span style=' font-style: italic;'>.load() </span><span>method which extracts all data from the NWB file. Alternatively, you can index into the DataStub directly using conventional MATLAB syntax.</span></div><h2 class = 'S2'><span>Jagged Arrays in Dynamic Tables</span></h2><div class = 'S1'><span>With the new addition of </span><span style=' font-style: italic;'>addRow</span><span> and </span><span style=' font-style: italic;'>getRow</span><span> to Dynamic Tables, the concept of jagged arrays can be worked around and no longer require full understanding outside of specific data format concerns or low-level nwb tool development. The below paragraph is retained in its entirety from its original form as purely informational.</span></div><div class = 'S1'><span>All data in a Dynamic Table must be aligned by row and column, but not all data fits into this paradigm neatly. In order to represent variable amounts of data that is localised to each row and column, NWB uses a concept called </span><span style=' font-weight: bold;'>Jagged Arrays</span><span>. These arrays consist of two column types: the familiar </span><span style=' font-style: italic;'>types.core.VectorData</span><span>, and the new </span><span style=' font-style: italic;'>types.core.VectorIndex</span><span>. A Vector Index holds no data, instead holding a reference to another Vector Data and a vector of indices that align to the Dynamic Table dimensions. The indices represent the last index boundary in the Vector Data object for the Vector Index row. As an example, an index of three in the first row of the Vector Index column points to the first three values in the referenced Vector Data column. Subsequently, if the next index were a five, it would indicate the fourth and fifth elements in the referenced Vector Data column.</span></div><div class = 'S1'><span>The jagged arrays serve to represent multiple trials and spike times associated to each unit by id. A convenient way to represent these in MATLAB is to use </span><a href = "https://www.mathworks.com/help/matlab/map-containers.html"><span>Map containers</span></a><span> where each unit's data is indexed directly by its unit id. Below, we utilize </span><span style=' font-style: italic;'>getRow</span><span> in order to build the same Map.</span></div><div class = 'S1'><span>Once again, for users with MATLAB R2022b versions or newer, we can utilize MATLAB </span><a href = "https://www.mathworks.com/help/matlab/ref/dictionary.html?s_tid=doc_ta"><span>dictionary</span></a><span> objects instead of map containers to build the Map. </span></div><div class="CodeBlock"><div class="inlineWrapper"><div class = 'S5'><span style="white-space: pre"><span >unit_ids = nwb.units.id.data.load(); </span><span style="color: #008013;">% array of unit ids represented within this</span></span></div></div><div class="inlineWrapper"><div class = 'S6'> </div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span style="color: #008013;">% Initialize trials & times Map containers indexed by unit_ids</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >unit_trials = containers.Map(</span><span style="color: #a709f5;">'KeyType'</span><span >,class(unit_ids),</span><span style="color: #a709f5;">'ValueType'</span><span >,</span><span style="color: #a709f5;">'any'</span><span >);</span></span></div></div><div class="inlineWrapper"><div class = 'S7'><span style="white-space: pre"><span >unit_times = containers.Map(</span><span style="color: #a709f5;">'KeyType'</span><span >,class(unit_ids),</span><span style="color: #a709f5;">'ValueType'</span><span >,</span><span style="color: #a709f5;">'any'</span><span >);</span></span></div></div></div><h4 class = 'S8'><span>MATLAB R2022b Versions</span></h4><div class="CodeBlock"><div class="inlineWrapper"><div class = 'S5'><span style="white-space: pre"><span style="color: #008013;">% unit_trials = dictionary();</span></span></div></div><div class="inlineWrapper"><div class = 'S7'><span style="white-space: pre"><span style="color: #008013;">% unit_times = dictionary();</span></span></div></div></div><div class = 'S9'><span>Adding key-value pairs, one at a time:</span></div><div class="CodeBlock"><div class="inlineWrapper"><div class = 'S5'><span style="white-space: pre"><span >last_idx = 0;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span style="color: #0e00ff;">for </span><span >i = 1:length(unit_ids)</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > unit_id = unit_ids(i);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > row = nwb.units.getRow(unit_id, </span><span style="color: #a709f5;">'useId'</span><span >, true, </span><span style="color: #a709f5;">'columns'</span><span >, {</span><span style="color: #a709f5;">'spike_times'</span><span >, </span><span style="color: #a709f5;">'trials'</span><span >});</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > unit_trials(unit_id) = row.trials{1};</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > unit_times(unit_id) = row.spike_times{1};</span></span></div></div><div class="inlineWrapper"><div class = 'S7'><span style="white-space: pre"><span style="color: #0e00ff;">end</span></span></div></div></div><h2 class = 'S4'><span>Process Units</span></h2><div class = 'S1'><span>We now do the following for each Unit:</span></div><ul class = 'S10'><li class = 'S11'><span>Filter out invalid trials</span></li><li class = 'S11'><span>Separate datasets based on resulting mouse behavior (right/left licks).</span></li><li class = 'S11'><span>Derive "sample", "delay", and "response" times for this analyzed neuron.</span></li><li class = 'S11'><span>Compose a peristimulus time histogram from the data.</span></li></ul><div class="CodeBlock"><div class="inlineWrapper"><div class = 'S5'> </div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >sorted_ids = sort(unit_ids);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >Photostim = struct(</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'ind'</span><span >, true,</span><span style="color: #0e00ff;">...</span><span style="color: #008013;"> % mask into xs and ys for this photostim</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'period'</span><span >, </span><span style="color: #a709f5;">'none'</span><span >,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'duration'</span><span >, 0,</span><span style="color: #0e00ff;">...</span><span style="color: #008013;"> % in seconds</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'ramp_offset'</span><span >, 0); </span><span style="color: #008013;">% in seconds</span></span></div></div><div class="inlineWrapper"><div class = 'S6'> </div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span style="color: #008013;">% Initialize Map container of plotting data for each unit, stored as structure</span></span></div></div><div class="inlineWrapper"><div class = 'S7'><span style="white-space: pre"><span >Unit = containers.Map(</span><span style="color: #a709f5;">'KeyType'</span><span >,class(unit_ids),</span><span style="color: #a709f5;">'ValueType'</span><span >,</span><span style="color: #a709f5;">'any'</span><span >);</span></span></div></div></div><h4 class = 'S8'><span>MATLAB R2022b Versions</span></h4><div class="CodeBlock"><div class="inlineWrapper"><div class = 'S3'><span style="white-space: pre"><span style="color: #008013;">% Unit = dictionary();</span></span></div></div></div><div class = 'S9'><span>Initializing unit structure:</span></div><div class="CodeBlock"><div class="inlineWrapper"><div class = 'S5'><span style="white-space: pre"><span >unit_struct = struct(</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'id'</span><span >, [],</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'xs'</span><span >, [],</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'ys'</span><span >, [],</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'xlim'</span><span >, [-Inf Inf],</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'sample'</span><span >, 0,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'delay'</span><span >, 0,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'response'</span><span >, 0,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'left_scatter'</span><span >, false,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'right_scatter'</span><span >, false,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S7'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'photostim'</span><span >, Photostim); </span><span style="color: #008013;">% can have multiple photostim</span></span></div></div></div><div class="CodeBlock"><div class="inlineWrapper"><div class = 'S3'><span style="white-space: pre"><span style="color: #0e00ff;">for </span><span >unit_id = unit_ids'</span></span></div></div></div><div class = 'S9'><span>We first extract trial IDs from the Unit IDs.</span></div><div class="CodeBlock"><div class="inlineWrapper"><div class = 'S3'><span style="white-space: pre"><span > unit_trial_id = unit_trials(unit_id);</span></span></div></div></div><div class = 'S9'><span>Then filter out outliers from the Sample, Delay, and Response time points with which we derive a "good enough" estimate.</span></div><div class="CodeBlock"><div class="inlineWrapper"><div class = 'S5'><span style="white-space: pre"><span > trial = nwb.intervals_trials.getRow(unit_trial_id, </span><span style="color: #a709f5;">'useId'</span><span >, true,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'columns'</span><span >, {</span><span style="color: #a709f5;">'PoleInTime'</span><span >, </span><span style="color: #a709f5;">'PoleOutTime'</span><span >, </span><span style="color: #a709f5;">'CueTime'</span><span >, </span><span style="color: #a709f5;">'GoodTrials'</span><span >});</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > unit_sample = trial.PoleInTime;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > unit_delay = trial.PoleOutTime;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > unit_response = trial.CueTime;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > unit_good_trials = trial.GoodTrials;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #008013;">% Subjective parameters</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > delay_threshold = 0.064;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > response_threshold = 0.43;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > expected_delay_offset = 1.3; </span><span style="color: #008013;">% determined from figure 1a</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > expected_response_offset = 1.3;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > expected_delay = unit_sample + expected_delay_offset;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > expected_response = unit_delay + expected_response_offset;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > good_delay = (unit_delay > expected_delay - delay_threshold) &</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > (unit_delay < expected_delay + delay_threshold);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > good_response = (unit_response > expected_response - response_threshold) &</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > (unit_response < expected_response + response_threshold);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > avg_sample = mean(unit_sample(good_delay & good_response));</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > avg_delay = mean(unit_delay(good_delay & good_response));</span></span></div></div><div class="inlineWrapper"><div class = 'S7'><span style="white-space: pre"><span > avg_response = mean(unit_response(good_delay & good_response));</span></span></div></div></div><div class = 'S9'><span>Filter the rest of the data by "good" trials.</span></div><div class="CodeBlock"><div class="inlineWrapper"><div class = 'S5'><span style="white-space: pre"><span > unit_good_trials = unit_good_trials & good_delay & good_response;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > unit_trial_id = unit_trial_id(unit_good_trials);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > unit_spike_time = unit_times(unit_id);</span></span></div></div><div class="inlineWrapper"><div class = 'S7'><span style="white-space: pre"><span > unit_spike_time = unit_spike_time(unit_good_trials);</span></span></div></div></div><div class = 'S9'><span>Retrieve good trial data and organize by stimulation type.</span></div><div class="CodeBlock"><div class="inlineWrapper"><div class = 'S5'><span style="white-space: pre"><span > trial = nwb.intervals_trials.getRow(unit_trial_id, </span><span style="color: #a709f5;">'useId'</span><span >, true,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'columns'</span><span >, {</span><span style="color: #a709f5;">'start_time'</span><span >, </span><span style="color: #a709f5;">'HitR'</span><span >, </span><span style="color: #a709f5;">'HitL'</span><span >, </span><span style="color: #a709f5;">'StimTrials'</span><span >, </span><span style="color: #a709f5;">'PhotostimulationType'</span><span >});</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > unit_is_photostim = logical(trial.StimTrials);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > unit_stim_type = trial.PhotostimulationType;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > unit_no_stim = ~unit_is_photostim & 0 == unit_stim_type;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > unit_sample_stim = unit_is_photostim & 1 == unit_stim_type;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > unit_early_stim = unit_is_photostim & 2 == unit_stim_type;</span></span></div></div><div class="inlineWrapper"><div class = 'S7'><span style="white-space: pre"><span > unit_middle_stim = unit_is_photostim & 3 == unit_stim_type;</span></span></div></div></div><div class = 'S9'><span>Compose Scatter Plots and the Peristimulus Time Histogram zeroed on the Response time.</span></div><div class="CodeBlock"><div class="inlineWrapper"><div class = 'S5'><span style="white-space: pre"><span > xs = unit_spike_time - trial.start_time - avg_response;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > ys = unit_trial_id;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > curr_unit = unit_struct;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > curr_unit.xs = xs;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > curr_unit.ys = ys;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > curr_unit.left_scatter = logical(trial.HitL);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > curr_unit.right_scatter = logical(trial.HitR);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > curr_unit.sample = avg_sample - avg_response;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > curr_unit.delay = avg_delay - avg_response;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > curr_unit.response = 0;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #008013;">% Photostim periods</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > curr_unit.photostim.ind = unit_no_stim;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #008013;">% Sample</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #0e00ff;">if </span><span >any(unit_sample_stim)</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > SampleStim = Photostim;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > SampleStim.ind = unit_sample_stim;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > SampleStim.period = </span><span style="color: #a709f5;">'Sample'</span><span >;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > SampleStim.duration = 0.5;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > SampleStim.ramp_offset = 0.1;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > curr_unit.photostim(end+1) = SampleStim;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #0e00ff;">end</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #008013;">% Early Delay</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #0e00ff;">if </span><span >any(unit_early_stim)</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > early_stim_types = unique(unit_stim_type(unit_early_stim));</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #0e00ff;">for </span><span >i_early_types=1:length(early_stim_types)</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > early_type = early_stim_types(i_early_types);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > EarlyStim = Photostim;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > EarlyStim.period = </span><span style="color: #a709f5;">'Early Delay'</span><span >;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > EarlyStim.ind = early_type == unit_stim_type & unit_early_stim;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #0e00ff;">if </span><span >early_type == 2</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > EarlyStim.duration = 0.5;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > EarlyStim.ramp_offset = 0.1;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #0e00ff;">else</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > EarlyStim.duration = 0.8;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > EarlyStim.ramp_offset = 0.2;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #0e00ff;">end</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > curr_unit.photostim(end+1) = EarlyStim;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #0e00ff;">end</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #0e00ff;">end</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #008013;">% Middle Delay</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #0e00ff;">if </span><span >any(unit_middle_stim)</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > MiddleStim = Photostim;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > MiddleStim.ind = unit_middle_stim;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > MiddleStim.period = </span><span style="color: #a709f5;">'Middle Delay'</span><span >;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > MiddleStim.duration = 0.5;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > MiddleStim.ramp_offset = 0.1;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > curr_unit.photostim(end+1) = MiddleStim;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #0e00ff;">end</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > Unit(unit_id) = curr_unit;</span></span></div></div><div class="inlineWrapper"><div class = 'S7'><span style="white-space: pre"><span style="color: #0e00ff;">end</span></span></div></div></div><h2 class = 'S4'><span>Plot Example Neurons</span></h2><div class="CodeBlock"><div class="inlineWrapper"><div class = 'S5'><span style="white-space: pre"><span >neuron_labels = [2, 3]; </span><span style="color: #008013;">% neuron labels from Figure 1e</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >neuron_ids = [11, 2]; </span><span style="color: #008013;">% neuron unit IDs corresponding to the Fig 1e labels</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >num_conditions = 4; </span><span style="color: #008013;">% photostim conditions: nostim, sample, early, middle if applicable</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >num_neurons = length(neuron_ids);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'> </div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span style="color: #008013;">% Initialize data structures for each summary plot of categorized neural spike data at specified stimulus condition</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >RasterPlot = struct(</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'xs'</span><span >, 0,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'ys'</span><span >, 0);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >ConditionPlot = struct(</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'label'</span><span >, </span><span style="color: #a709f5;">''</span><span >,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'xlim'</span><span >, 0,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'sample'</span><span >, 0,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'delay'</span><span >, 0,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'response'</span><span >, 0,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'right_scatter'</span><span >, RasterPlot,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'left_scatter'</span><span >, RasterPlot,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'psth_bin_window'</span><span >, 0,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'stim_type'</span><span >, </span><span style="color: #a709f5;">''</span><span >);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >fig = figure;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'> </div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span style="color: #008013;">% Plot neural spike data for each neuron and stimulus condition in a subplot array: num_neurons (rows) x num_conditions (columns)</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span style="color: #0e00ff;">for </span><span >nn=1:num_neurons</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > Neuron = Unit(neuron_ids(nn));</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #008013;">% Initialize structure with neural + stimulus condition data</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > CurrPlot = ConditionPlot;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > CurrPlot.xlim = [min(Neuron.xs) max(Neuron.xs)];</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > CurrPlot.sample = Neuron.sample;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > CurrPlot.delay = Neuron.delay;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > CurrPlot.response = Neuron.response;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #008013;">% Plot each neuron/condition</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > plot_row = (nn - 1) * num_conditions;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #0e00ff;">for </span><span >cc=1:num_conditions</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > ax = subplot(num_neurons, num_conditions, plot_row + cc, </span><span style="color: #a709f5;">'Parent'</span><span >, fig);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > Stim = Neuron.photostim(cc);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > CurrPlot.stim_type = Stim.period;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #0e00ff;">if </span><span >strcmp(Stim.period, </span><span style="color: #a709f5;">'none'</span><span >)</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > CurrPlot.label = sprintf(</span><span style="color: #a709f5;">'Neuron %d'</span><span >, neuron_labels(nn));</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > CurrPlot.psth_bin_window = 9;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #0e00ff;">else</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > CurrPlot.label = Stim.period;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > CurrPlot.psth_bin_window = 2;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #0e00ff;">end</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > stim_left_scatter_ind = Stim.ind & Neuron.left_scatter;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > stim_left_scatter_trials = Neuron.ys(stim_left_scatter_ind);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > CurrPlot.left_scatter.xs = Neuron.xs(stim_left_scatter_ind);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > [~,CurrPlot.left_scatter.ys] = ismember(stim_left_scatter_trials,unique(stim_left_scatter_trials));</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > stim_right_scatter_ind = Stim.ind & Neuron.right_scatter;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > stim_right_scatter_trials = Neuron.ys(stim_right_scatter_ind);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > CurrPlot.right_scatter.xs = Neuron.xs(stim_right_scatter_ind);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > [~,CurrPlot.right_scatter.ys] = ismember(stim_right_scatter_trials,unique(stim_right_scatter_trials));</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > plot_condition(ax, CurrPlot);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #0e00ff;">end</span></span></div></div><div class="inlineWrapper outputs"><div class = 'S12'><span style="white-space: pre"><span style="color: #0e00ff;">end</span></span></div><div class = 'S13'><div class="inlineElement eoOutputWrapper disableDefaultGestureHandling embeddedOutputsFigure" uid="3EE6309D" prevent-scroll="true" data-testid="output_0" style="width: 1137px;" tabindex="-1"><div class="figureElement eoOutputContent" role="article" aria-roledescription="Use Browse Mode to explore " aria-description="figure output "><img class="figureImage figureContainingNode" src="data:image/png;base64,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fv16ar1jcHCQQ4cO8ecuXbrE3Nwc69ev58v88pe/5Oc//znXtdttfvKTn/DjH/+Y06dPU/ufMTg4yKFDh/hzly5dYm5ujvXr11OrraY+bhNXrlxhbm6O++67j5GREXzf5+GHH2ZxcZFms0mz2eSTTz6h9v135coV5ubmuO+++xgZGcH3fR5++GEWFxdpNps0m00++eQTat9/V65cYW5ujvvuu4+RkRF83+fhhx9mcXGRZrNJs9nkk08+4c/95je/Icsy5ubmWPL73/+eQ4cO8atf/Ypjx45x5MgRzp8/T+3mu3LlCnNzc9x3332MjIzg+z4PP/wwi4uLNJtNms0mn3zyCbXaaujjNjEwMMA777zD5OQkb775JidOnGBycpJWq0Wr1aLVanH//fdT+/4bGBjgnXfeYXJykjfffJMTJ04wOTlJq9Wi1WrRarW4//77qX3/DQwM8M477zA5Ocmbb77JiRMnmJycpNVq0Wq1aLVa3H///Vw3NzfHz372M376059y3a9//Wt+9KMfsWHDBjZs2MCuXbtot9vUbr6BgQHeeecdJicnefPNNzlx4gSTk5O0Wi1arRatVov777+fWm019HGb+Oyzz/A8D8/zWL9+PZcvX2bNmjV4nofneXieR603fPbZZ3ieh+d5rF+/nsuXL7NmzRo8z8PzPDzPo9YbPvvsMzzPw/M81q9fz+XLl1mzZg2e5+F5Hp7n8edefvllnn32We666y6u+/d//3cajQbXiQj/8R//Qe3m++yzz/A8D8/zWL9+PZcvX2bNmjV4nofneXieR622Wvq4DURRxCOPPMKSS5cusX37dp599ll27NhBq9Wi1juiKOKRRx5hyaVLl9i+fTvPPvssO3bsoNVq8VV++ctf8vOf/5zr2u02P/nJT/jxj3/M6dOnqd1cURTxyCOPsOTSpUts376dZ599lh07dtBqtfhL//Zv/8add97JP/zDP/DnPvvsM+644w6+zC9+8Qvuu+8+at+tKIp45JFHWHLp0iW2b9/Os88+y44dO2i1WtRqq62PW9wbb7zBlStXmJqaYsmePXt46qmnePfdd2m324yNjVHrDW+88QZXrlxhamqKJXv27OGpp57i3Xffpd1uMzY2xpf5zW9+Q5ZlzM3NseT3v/89hw4d4le/+hXHjh3jyJEjnD9/ntrN8cYbb3DlyhWmpqZYsmfP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aBqaxt48U6uvlMk0kelzmoau841lehwnJyeWZXH37l1vvfWW27dve/PNNx08e05OTizL4u7du9566y23b9/25ptvOng2nZycWJbF3bt3vfXWW27fvu3NN990cHDRLnlO3L1712uvvWaz2Xj77bfdunXLu+++6/79+x48eOAiXfvkE6umIcIqggjnRFAKEdRqL4JhIIIIexFWmc6JIIKmsTo+5uyMebaKYFloW18ogq4jglqtaqVWamWarDJZFjKdk0kmEb5QJrWSaTVNTBOZ/hp379712muv2Ww23n77bbdu3fLuu++6f/++Bw8eOHh23L1712uvvWaz2Xj77bfdunXLu+++6/79+x48eODg2XL37l2vvfaazWbj7bffduvWLe+++6779+978OCBg4OLdMlz5OrVqx45OzvzxhtveOTTTz/12WefuUh/vHzZKpNMe6UQQYS9CKtSiCCTCEqxirBqGnul2Isg02qayGQYmCYyrTKplVrJpO9pW2plWcikFDKZZzKplWGgbRkGMimFrqMU59TKPJPpnEyrTIaBWskkwmqaqNVf4+rVqx45OzvzxhtveOTTTz/12WefOXi2XL161SNnZ2feeOMNj3z66ac+++wzB8+eq1eveuTs7Mwbb7zhkU8//dRnn33m4OAiXfKcuHbtmvfee8/NmzcdHR155ZVXvPPOO1588UVHR0cuTKa9WokggkxqJdM500QmEUQQQa1kkmlvsyHC52QSQaYvlUnTUIrVPJNpdXxsL8Je09B1RJBJhFWEz4mwqpVamSamibal7602G+aZtmUYWBaGgUzf1rVr17z33ntu3rzp6OjIK6+84p133vHiiy86Ojpy8Oy4du2a9957z82bNx0dHXnllVe88847XnzxRUdHRw6eLdeuXfPee++5efOmo6Mjr7zyinfeeceLL77o6OjIwcFFuuQ5ceXKFXfu3HHr1i0ffPCBR1599VXvv/++CxXh2iefOCeTUijFarOhadhuaRqraaJWMq0yyaRWq2Vhs7HKdE4pNA0R9iKIoBQi2G7ZbmlbSqHrqJVlIcJeJplEWGVa9T1970tlMgy0LfNsFcE8c+MG80yt1EomEYwjTePbunLlijt37rh165YPPvjAI6+++qr333/fwbPlypUr7ty549atWz744AOPvPrqq95//30Hz54rV664c+eOW7du+eCDDzzy6quvev/99x0cXLRLniM//vGP/fSnP/Vv2rb1Xfjj5ctWTWPVNFbHx1bzTCYRbLfcu8c4+krTxDAQQaZzaiWTTHsRlEKtlEKtDIPVZkOEVQSZVqUwjpRiVQpdRwRnZ0T4QqUwjux27HaMI01D17Hbce8eux337nHvHuNI19E0/lo//vGP/fSnP/Vv2rZ18Gz68Y9/7Kc//al/07atg2fXj3/8Yz/96U/9m7ZtHRx8Fy45uFiZ/vjv/z27HZsNpdB1dJ297ZbNhmFgnsm0iqBpiCCCCHsRRJBJKc7JJNNehL2uYxzpezYbq1KIoO/ZbIiwF+GcpmEcGUeaxpeKIIIIIqwiiCCCCCKolXl2cHBwcHDwOC45uHA/e/CAeSaTWpkmamVZrJaFZaEUq0zalkxqtcok0yqCTDKJINNeBBFk2sskk1qJoFb63mq7ZZqYJnuZ1OpLleLCRLDZkOng4ODg4OCvdclzalkW4zi6cBH+n5deYpoYBjIZBpaFzcbYNJpMq82GTJbFXgSlUIpVBKVQilWmR3r0EVaZPieTTNqWGzcYBpaFZbHK9EhTinGzcWGmiVp9qVKIYBio1UVYlsU4jp60cRw1TeNx9X2v73uPq2ka4zh6li3LYhxHT9o4jpqm8bj6vveTn/zE42qaxjiOnnXLshjH0ZM2jqOmaTyuvu/1fe9xNU1jHEcHF+uS58jJyYllWdy9e9dbb73l9u3b3nzzTReqFP/lpZfoOiIohQgiKIVxZLtlsyGCCKuuI4JMaiWTCKtMMinFKtMqk0xfK8KqVmrl7IyzM/requ8pxWPLZFnIdE6t1GqvFLZbIvy1Tk5OLMvi7t273nrrLbdv3/bmm286ePacnJxYlsXdu3e99dZbbt++7c0333TwbDo5ObEsi7t373rrrbfcvn3bm2++6eDgol3ynLh7967XXnvNZrPx9ttvu3Xrlnfffdf9+/c9ePDAhanVf/6nf2KeySSTTKaJYWCaGAbmmRs3mCamiWEgk0wyySSTTGol06oU31omEVaZ1Eom88w0+VqZvpEItluaxiqTTOaZWq0yyaQUIvw17t6967XXXrPZbLz99ttu3brl3Xffdf/+fQ8ePHDw7Lh7967XXnvNZrPx9ttvu3Xrlnfffdf9+/c9ePDAwbPl7t27XnvtNZvNxttvv+3WrVveffdd9+/f9+DBAwcHF+mS58jVq1c9cnZ25o033vDIp59+6rPPPnOR/nj5MpmU4pwIloUIImga30qt1OpLRfhCTUOEVQRdx27HONI0vlKttC21+lq1MgzUajVNTBPbLU1jVSvXrzNNHsfVq1c9cnZ25o033vDIp59+6rPPPnPwbLl69apHzs7OvPHGGx759NNPffbZZw6ePVevXvXI2dmZN954wyOffvqpzz77zMHBRbrkOXHt2jXvvfeemzdvOjo68sorr3jnnXe8+OKLjo6OPBGZTBOZ1EqtRFCKvQgXphSrWtlsrCKIIJNamSaraaLvyXROBNstEb5WBNstEVYRlEIpRFhFMI5E+Gtdu3bNe++95+bNm46OjrzyyiveeecdL774oqOjIwfPjmvXrnnvvffcvHnT0dGRV155xTvvvOPFF190dHTk4Nly7do17733nps3bzo6OvLKK6945513vPjii46OjhwcXKRLnhNXrlxx584dt27dcvv2bY+8+uqr3n//fReqFP/w8stEkEkEpbDbsd0SwTjSNESw3ZJJ11llWkVQinMifKVM59RKKWQyDESQSdsyDCyLvQirCOdE0DRE+FoRNA0RVk1DKVaZVqXQNDSNv9aVK1fcuXPHrVu33L592yOvvvqq999/38Gz5cqVK+7cuePWrVtu377tkVdffdX777/v4Nlz5coVd+7ccevWLbdv3/bIq6++6v3333dwcNEueY789re/9Ytf/MLrr7/u/v37fvnLX/rd737nQkVYbbdEWGUyz2RqMS0LXcdmY2+erSKIsMokggjnROjR+4sIIqwiiCDCORFEEGHVdWy3dJ0pQtu2lELf+07UyjBQq4vy29/+1i9+8Quvv/66+/fv++Uvf+l3v/udJ6ltW9M0eVx93+v73uOapknbtp41v/3tb/3iF7/w+uuvu3//vl/+8pd+97vfeZLatjVNk8fV970//elPHtc0Tdq29Sz67W9/6xe/+IXXX3/d/fv3/fKXv/S73/3Ok9S2rWmaPK6+7/V973FN06RtWwcX65LnxD//8z/rus5/+2//zfXr1z3yj//4j/7jf/yPLlStbv6P/8HZmdV2y3ZrNc9Wmw0RVstCKWy3NA0RVhFEkMn/xx78xlhV5Qm///axqxAsiZm+e0zBPKl1JhgikwpMxT8nJZ299iQ+doiE+MLodA+ctUOMMkrMfaF9mWjvtdWE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" style="width: 560px;"></div><div class="outputLayer selectedOutputDecorationLayer doNotExport" aria-hidden="true"></div><div class="outputLayer activeOutputDecorationLayer doNotExport" aria-hidden="true"></div><div class="outputLayer scrollableOutputDecorationLayer doNotExport" aria-hidden="true"></div><div class="outputLayer navigationFocusLayer doNotExport" aria-hidden="false" tabindex="-1" role="application" aria-label="figure output "></div></div></div></div></div><h2 class = 'S4'><span>Helper Functions</span></h2><div class = 'S1'><span>PSTH helper function</span></div><div class="CodeBlock"><div class="inlineWrapper"><div class = 'S5'><span style="white-space: pre"><span style="color: #0e00ff;">function </span><span >[psth_xs, psth_ys] = calculate_psth(xs, bin_window, bin_width)</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >[bin_counts, edges] = histcounts(xs, </span><span style="color: #a709f5;">'BinWidth'</span><span >, bin_width);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >psth_xs = edges(1:end-1) + (bin_width / 2);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'> </div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >moving_avg_b = (1/bin_window) * ones(1,bin_window);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >psth_ys = filter(moving_avg_b, 1, bin_counts);</span></span></div></div><div class="inlineWrapper"><div class = 'S7'><span style="white-space: pre"><span style="color: #0e00ff;">end</span></span></div></div></div><div class = 'S9'><span>Plotter function for each stimulus condition</span></div><div class="CodeBlock"><div class="inlineWrapper"><div class = 'S5'><span style="white-space: pre"><span style="color: #0e00ff;">function </span><span >plot_condition(ax, ConditionPlot)</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >left_cdata = [1 0 0]; </span><span style="color: #008013;">% red</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >right_cdata = [0 0 1]; </span><span style="color: #008013;">% blue</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >hist_margin = 50;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >scatter_margin = 10;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'> </div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span style="color: #008013;">% Calculate PSTH values</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span style="color: #008013;">% moving average over 200 ms as per figure 1e</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >hist_bin_width = 0.2 / ConditionPlot.psth_bin_window;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >[left_psth_xs, left_psth_ys] =</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > calculate_psth(ConditionPlot.left_scatter.xs, ConditionPlot.psth_bin_window, hist_bin_width);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >[right_psth_xs, right_psth_ys] =</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > calculate_psth(ConditionPlot.right_scatter.xs, ConditionPlot.psth_bin_window, hist_bin_width);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'> </div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >right_scatter_offset = min(ConditionPlot.right_scatter.ys);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >right_scatter_height = max(ConditionPlot.right_scatter.ys) - right_scatter_offset;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >left_scatter_offset = min(ConditionPlot.left_scatter.ys);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >left_scatter_height = max(ConditionPlot.left_scatter.ys) - left_scatter_offset;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >psth_height = max([left_psth_ys right_psth_ys]);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'> </div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >left_y_offset = hist_margin</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > + psth_height</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > - left_scatter_offset;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'> </div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >right_y_offset = scatter_margin</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > + left_y_offset</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > + left_scatter_offset</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > + left_scatter_height</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > - right_scatter_offset;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'> </div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >subplot_height = right_y_offset</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > + right_scatter_offset</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > + right_scatter_height;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'> </div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >hold(ax, </span><span style="color: #a709f5;">'on'</span><span >);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'> </div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span style="color: #008013;">% PSTH</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >plot(ax, left_psth_xs, left_psth_ys, </span><span style="color: #a709f5;">'Color'</span><span >, left_cdata);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >plot(ax, right_psth_xs, right_psth_ys, </span><span style="color: #a709f5;">'Color'</span><span >, right_cdata);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'> </div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span style="color: #008013;">% Scatter Plot</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >scatter(ax,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > ConditionPlot.left_scatter.xs,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > left_y_offset + ConditionPlot.left_scatter.ys,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'Marker'</span><span >, </span><span style="color: #a709f5;">'.'</span><span >,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'CData'</span><span >, left_cdata,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'SizeData'</span><span >, 1);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >scatter(ax,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > ConditionPlot.right_scatter.xs,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > right_y_offset + ConditionPlot.right_scatter.ys,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'Marker'</span><span >, </span><span style="color: #a709f5;">'.'</span><span >,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'CData'</span><span >, right_cdata,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'SizeData'</span><span >, 1);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'> </div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span style="color: #008013;">% sample, delay, response lines</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >line(ax, repmat(ConditionPlot.sample, 1, 2), [0 subplot_height],</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'Color'</span><span >, </span><span style="color: #a709f5;">'k'</span><span >, </span><span style="color: #a709f5;">'LineStyle'</span><span >, </span><span style="color: #a709f5;">'--'</span><span >);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >line(ax, repmat(ConditionPlot.delay, 1, 2), [0 subplot_height],</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'Color'</span><span >, </span><span style="color: #a709f5;">'k'</span><span >, </span><span style="color: #a709f5;">'LineStyle'</span><span >, </span><span style="color: #a709f5;">'--'</span><span >);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >line(ax, repmat(ConditionPlot.response, 1, 2), [0 subplot_height],</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'Color'</span><span >, </span><span style="color: #a709f5;">'k'</span><span >, </span><span style="color: #a709f5;">'LineStyle'</span><span >, </span><span style="color: #a709f5;">'--'</span><span >);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'> </div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span style="color: #008013;">% blue bar for photoinhibition period</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span style="color: #0e00ff;">if </span><span >~strcmp(ConditionPlot.stim_type, </span><span style="color: #a709f5;">'none'</span><span >)</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > stim_height = subplot_height;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > stim_width = 0.5; </span><span style="color: #008013;">% seconds</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #008013;">% end time relative to 'go' cue as described in the paper.</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #0e00ff;">switch </span><span >ConditionPlot.stim_type</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #0e00ff;">case </span><span style="color: #a709f5;">'Sample'</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > end_offset = 1.6;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #0e00ff;">case </span><span style="color: #a709f5;">'Early Delay'</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > end_offset = 0.8;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #0e00ff;">case </span><span style="color: #a709f5;">'Middle Delay'</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > end_offset = 0.3;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #0e00ff;">otherwise</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > error(</span><span style="color: #a709f5;">'Invalid photostim period `%s`'</span><span >, ConditionPlot.stim_type);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #0e00ff;">end</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > stim_offset = ConditionPlot.response - stim_width - end_offset;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > patch_vertices = [</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > stim_offset, 0;</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > stim_offset, stim_height;</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > stim_offset+stim_width, stim_height;</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > stim_offset+stim_width, 0];</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > patch(ax,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'Faces'</span><span >, 1:4,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'Vertices'</span><span >, patch_vertices,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'FaceColor'</span><span >, </span><span style="color: #a709f5;">'#B3D3EC'</span><span >,</span><span style="color: #0e00ff;">...</span><span style="color: #008013;"> % light blue shading</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'EdgeColor'</span><span >, </span><span style="color: #a709f5;">'none'</span><span >,</span><span style="color: #0e00ff;">...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span > </span><span style="color: #a709f5;">'FaceAlpha'</span><span >, 0.8);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span style="color: #0e00ff;">end</span></span></div></div><div class="inlineWrapper"><div class = 'S6'> </div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >title(ax, ConditionPlot.label);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >xlabel(ax, </span><span style="color: #a709f5;">'Time (Seconds)'</span><span >);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >ylabel(ax, </span><span style="color: #a709f5;">'Spikes s^{-1}'</span><span >)</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >xticks(ax, [-2 0 2]);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >yticks(ax, [0 max(10, round(psth_height, -1))]);</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span style="color: #008013;">% legend(ax, [scatter_left_plot, scatter_right_plot], {'Left Lick', 'Right Lick'},...</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span style="color: #008013;">% 'location', 'northwestoutside');</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >ax.TickDir = </span><span style="color: #a709f5;">'out'</span><span >;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >ax.XLim = ConditionPlot.xlim;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >ax.YLim = [0 subplot_height];</span></span></div></div><div class="inlineWrapper"><div class = 'S6'> </div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span >hold(ax, </span><span style="color: #a709f5;">'off'</span><span >);</span></span></div></div><div class="inlineWrapper"><div class = 'S7'><span style="white-space: pre"><span style="color: #0e00ff;">end</span></span></div></div></div>
<br>
<!--
##### SOURCE BEGIN #####
%% Using NWB Data
% _last updated: January 1st, 2023_
%
% In this tutorial, we demonstrate the reading and usage of the NWB file produced
% in the <https://matnwb.readthedocs.io/en/latest/pages/tutorials/convertTrials.html
% File Conversion Tutorial>. The output is a near-reproduction of Figure 1e from
% the <https://www.ncbi.nlm.nih.gov/pubmed/27074502 Li et al> publication, showing
% raster and peristimulus time histogram (PSTH) plots for neural recordings from
% anterior lateral motor cortex (ALM). This figure illustrates the main finding
% of the publication, showing the robustness of motor planning behavior and neural
% dynamics following short unilateral network silencing via optogenetic inhibition.
%% Reading NWB Files
% NWB files can be read in using the _nwbRead()_ function. This function returns
% a _nwbfile_ object which is the in-memory representation of the NWB file structure.
nwb = nwbRead('out\ANM255201_20141124.nwb', 'ignorecache');
%% *Constrained Sets*
% Analyzed data in NWB is placed under the _analysis_ property, which is a *Constrained
% Set*. A constrained set consists of an arbitrary amount of key-value pairs
% similar to <https://www.mathworks.com/help/matlab/map-containers.html Map containers>
% in MATLAB or a dictionary in Python. However, constrained sets also have the
% ability to validate their own properties closer to how a typed Object would.
%
% You can get/set values in constrained sets using their respective _.get()/.set()_
% methods and retrieve all Set properties using the _keys()_ method, like in a
% _containers.Map._
unit_names = keys(nwb.analysis);
%% Dictionaries with MATLAB R2022b
% As noted above, constrained sets uses Map container objects, a custom class
% that allows user to retrieve values using a corresponding key. For users working
% with MATLAB version R2022b, a notable addition of the <https://www.mathworks.com/help/matlab/ref/dictionary.html?s_tid=doc_ta
% dictionary> object offers significantly faster functionality.
%
% You can initialize a dictionary and configure its contents from relevant analysed
% NWB data with the same key/values noted above.
%
% Number of entries in a dictionary can be done with the new <https://www.mathworks.com/help/matlab/ref/dictionary.numentries.html
% numEntries()> function. One can also return all the keys and values of a dictionary
% as arrays using <https://www.mathworks.com/help/matlab/ref/dictionary.keys.html
% keys(dict_name)> and <https://www.mathworks.com/help/matlab/ref/dictionary.values.html
% values(dict_name)> functions.
%% Dynamic Tables
% _nwb.intervals_trials_ returns a unique type of table called a *Dynamic Table*.
% Dynamic tables inherit from the NWB type _types.hdmf_common.DynamicTable_ and
% allow for a table-like interface in NWB. In the case below, we grab the special
% column _start_time_. Dynamic Tables allow adding your own vectors using the
% _vectordata_ property, which are Constrained Sets. All columns are represented
% by either a _types.hdmf_common.VectorData_ or a _types.hdmf_common.VectorIndex_
% type.
%% Data Stubs
% The _data_ property of the column _id_ in _nwb.units_ is a _types.untyped.DataStub._
% This object is a representation of a dataset that is not loaded in memory, and
% is what allows MatNWB to lazily load its file data. To load the data into memory,
% use the _.load()_ method which extracts all data from the NWB file. Alternatively,
% you can index into the DataStub directly using conventional MATLAB syntax.
%% Jagged Arrays in Dynamic Tables
% With the new addition of _addRow_ and _getRow_ to Dynamic Tables, the concept
% of jagged arrays can be worked around and no longer require full understanding
% outside of specific data format concerns or low-level nwb tool development.
% The below paragraph is retained in its entirety from its original form as purely
% informational.
%
% All data in a Dynamic Table must be aligned by row and column, but not all
% data fits into this paradigm neatly. In order to represent variable amounts
% of data that is localised to each row and column, NWB uses a concept called
% *Jagged Arrays*. These arrays consist of two column types: the familiar _types.core.VectorData_,
% and the new _types.core.VectorIndex_. A Vector Index holds no data, instead
% holding a reference to another Vector Data and a vector of indices that align
% to the Dynamic Table dimensions. The indices represent the last index boundary
% in the Vector Data object for the Vector Index row. As an example, an index
% of three in the first row of the Vector Index column points to the first three
% values in the referenced Vector Data column. Subsequently, if the next index
% were a five, it would indicate the fourth and fifth elements in the referenced
% Vector Data column.
%
% The jagged arrays serve to represent multiple trials and spike times associated
% to each unit by id. A convenient way to represent these in MATLAB is to use
% <https://www.mathworks.com/help/matlab/map-containers.html Map containers> where
% each unit's data is indexed directly by its unit id. Below, we utilize _getRow_
% in order to build the same Map.
%
% Once again, for users with MATLAB R2022b versions or newer, we can utilize
% MATLAB <https://www.mathworks.com/help/matlab/ref/dictionary.html?s_tid=doc_ta
% dictionary> objects instead of map containers to build the Map.
unit_ids = nwb.units.id.data.load(); % array of unit ids represented within this
% Initialize trials & times Map containers indexed by unit_ids
unit_trials = containers.Map('KeyType',class(unit_ids),'ValueType','any');
unit_times = containers.Map('KeyType',class(unit_ids),'ValueType','any');
% MATLAB R2022b Versions
% unit_trials = dictionary();
% unit_times = dictionary();
%%
% Adding key-value pairs, one at a time:
last_idx = 0;
for i = 1:length(unit_ids)
unit_id = unit_ids(i);
row = nwb.units.getRow(unit_id, 'useId', true, 'columns', {'spike_times', 'trials'});
unit_trials(unit_id) = row.trials{1};
unit_times(unit_id) = row.spike_times{1};
end
%% Process Units
% We now do the following for each Unit:
%%
% * Filter out invalid trials
% * Separate datasets based on resulting mouse behavior (right/left licks).
% * Derive "sample", "delay", and "response" times for this analyzed neuron.
% * Compose a peristimulus time histogram from the data.
sorted_ids = sort(unit_ids);
Photostim = struct(...
'ind', true,... % mask into xs and ys for this photostim
'period', 'none',...
'duration', 0,... % in seconds
'ramp_offset', 0); % in seconds
% Initialize Map container of plotting data for each unit, stored as structure
Unit = containers.Map('KeyType',class(unit_ids),'ValueType','any');
% MATLAB R2022b Versions
% Unit = dictionary();
%%
% Initializing unit structure:
unit_struct = struct(...
'id', [],...
'xs', [],...
'ys', [],...
'xlim', [-Inf Inf],...
'sample', 0,...
'delay', 0,...
'response', 0,...
'left_scatter', false,...
'right_scatter', false,...
'photostim', Photostim); % can have multiple photostim
%%
for unit_id = unit_ids'
%%
% We first extract trial IDs from the Unit IDs.
unit_trial_id = unit_trials(unit_id);
%%
% Then filter out outliers from the Sample, Delay, and Response time points
% with which we derive a "good enough" estimate.
trial = nwb.intervals_trials.getRow(unit_trial_id, 'useId', true,...
'columns', {'PoleInTime', 'PoleOutTime', 'CueTime', 'GoodTrials'});
unit_sample = trial.PoleInTime;
unit_delay = trial.PoleOutTime;
unit_response = trial.CueTime;
unit_good_trials = trial.GoodTrials;
% Subjective parameters
delay_threshold = 0.064;
response_threshold = 0.43;
expected_delay_offset = 1.3; % determined from figure 1a
expected_response_offset = 1.3;
expected_delay = unit_sample + expected_delay_offset;
expected_response = unit_delay + expected_response_offset;
good_delay = (unit_delay > expected_delay - delay_threshold) &...
(unit_delay < expected_delay + delay_threshold);
good_response = (unit_response > expected_response - response_threshold) &...
(unit_response < expected_response + response_threshold);
avg_sample = mean(unit_sample(good_delay & good_response));
avg_delay = mean(unit_delay(good_delay & good_response));
avg_response = mean(unit_response(good_delay & good_response));
%%
% Filter the rest of the data by "good" trials.
unit_good_trials = unit_good_trials & good_delay & good_response;
unit_trial_id = unit_trial_id(unit_good_trials);
unit_spike_time = unit_times(unit_id);
unit_spike_time = unit_spike_time(unit_good_trials);
%%
% Retrieve good trial data and organize by stimulation type.
trial = nwb.intervals_trials.getRow(unit_trial_id, 'useId', true,...
'columns', {'start_time', 'HitR', 'HitL', 'StimTrials', 'PhotostimulationType'});
unit_is_photostim = logical(trial.StimTrials);
unit_stim_type = trial.PhotostimulationType;
unit_no_stim = ~unit_is_photostim & 0 == unit_stim_type;
unit_sample_stim = unit_is_photostim & 1 == unit_stim_type;
unit_early_stim = unit_is_photostim & 2 == unit_stim_type;
unit_middle_stim = unit_is_photostim & 3 == unit_stim_type;
%%
% Compose Scatter Plots and the Peristimulus Time Histogram zeroed on the Response
% time.
xs = unit_spike_time - trial.start_time - avg_response;
ys = unit_trial_id;
curr_unit = unit_struct;
curr_unit.xs = xs;
curr_unit.ys = ys;
curr_unit.left_scatter = logical(trial.HitL);
curr_unit.right_scatter = logical(trial.HitR);
curr_unit.sample = avg_sample - avg_response;
curr_unit.delay = avg_delay - avg_response;
curr_unit.response = 0;
% Photostim periods
curr_unit.photostim.ind = unit_no_stim;
% Sample
if any(unit_sample_stim)
SampleStim = Photostim;
SampleStim.ind = unit_sample_stim;
SampleStim.period = 'Sample';
SampleStim.duration = 0.5;
SampleStim.ramp_offset = 0.1;
curr_unit.photostim(end+1) = SampleStim;
end
% Early Delay
if any(unit_early_stim)
early_stim_types = unique(unit_stim_type(unit_early_stim));
for i_early_types=1:length(early_stim_types)
early_type = early_stim_types(i_early_types);
EarlyStim = Photostim;
EarlyStim.period = 'Early Delay';
EarlyStim.ind = early_type == unit_stim_type & unit_early_stim;
if early_type == 2
EarlyStim.duration = 0.5;
EarlyStim.ramp_offset = 0.1;
else
EarlyStim.duration = 0.8;
EarlyStim.ramp_offset = 0.2;
end
curr_unit.photostim(end+1) = EarlyStim;
end
end
% Middle Delay
if any(unit_middle_stim)
MiddleStim = Photostim;
MiddleStim.ind = unit_middle_stim;
MiddleStim.period = 'Middle Delay';
MiddleStim.duration = 0.5;
MiddleStim.ramp_offset = 0.1;
curr_unit.photostim(end+1) = MiddleStim;
end
Unit(unit_id) = curr_unit;
end
%% Plot Example Neurons
neuron_labels = [2, 3]; % neuron labels from Figure 1e
neuron_ids = [11, 2]; % neuron unit IDs corresponding to the Fig 1e labels
num_conditions = 4; % photostim conditions: nostim, sample, early, middle if applicable
num_neurons = length(neuron_ids);
% Initialize data structures for each summary plot of categorized neural spike data at specified stimulus condition
RasterPlot = struct(...
'xs', 0,...
'ys', 0);
ConditionPlot = struct(...
'label', '',...
'xlim', 0,...
'sample', 0,...
'delay', 0,...
'response', 0,...
'right_scatter', RasterPlot,...
'left_scatter', RasterPlot,...
'psth_bin_window', 0,...
'stim_type', '');
fig = figure;
% Plot neural spike data for each neuron and stimulus condition in a subplot array: num_neurons (rows) x num_conditions (columns)
for nn=1:num_neurons
Neuron = Unit(neuron_ids(nn));
% Initialize structure with neural + stimulus condition data
CurrPlot = ConditionPlot;
CurrPlot.xlim = [min(Neuron.xs) max(Neuron.xs)];
CurrPlot.sample = Neuron.sample;
CurrPlot.delay = Neuron.delay;
CurrPlot.response = Neuron.response;
% Plot each neuron/condition
plot_row = (nn - 1) * num_conditions;
for cc=1:num_conditions
ax = subplot(num_neurons, num_conditions, plot_row + cc, 'Parent', fig);
Stim = Neuron.photostim(cc);
CurrPlot.stim_type = Stim.period;
if strcmp(Stim.period, 'none')
CurrPlot.label = sprintf('Neuron %d', neuron_labels(nn));
CurrPlot.psth_bin_window = 9;
else
CurrPlot.label = Stim.period;
CurrPlot.psth_bin_window = 2;
end
stim_left_scatter_ind = Stim.ind & Neuron.left_scatter;
stim_left_scatter_trials = Neuron.ys(stim_left_scatter_ind);
CurrPlot.left_scatter.xs = Neuron.xs(stim_left_scatter_ind);
[~,CurrPlot.left_scatter.ys] = ismember(stim_left_scatter_trials,unique(stim_left_scatter_trials));
stim_right_scatter_ind = Stim.ind & Neuron.right_scatter;
stim_right_scatter_trials = Neuron.ys(stim_right_scatter_ind);
CurrPlot.right_scatter.xs = Neuron.xs(stim_right_scatter_ind);
[~,CurrPlot.right_scatter.ys] = ismember(stim_right_scatter_trials,unique(stim_right_scatter_trials));
plot_condition(ax, CurrPlot);
end
end
%% Helper Functions
% PSTH helper function
function [psth_xs, psth_ys] = calculate_psth(xs, bin_window, bin_width)
[bin_counts, edges] = histcounts(xs, 'BinWidth', bin_width);
psth_xs = edges(1:end-1) + (bin_width / 2);
moving_avg_b = (1/bin_window) * ones(1,bin_window);
psth_ys = filter(moving_avg_b, 1, bin_counts);
end
%%
% Plotter function for each stimulus condition
function plot_condition(ax, ConditionPlot)
left_cdata = [1 0 0]; % red
right_cdata = [0 0 1]; % blue
hist_margin = 50;
scatter_margin = 10;
% Calculate PSTH values
% moving average over 200 ms as per figure 1e
hist_bin_width = 0.2 / ConditionPlot.psth_bin_window;
[left_psth_xs, left_psth_ys] =...
calculate_psth(ConditionPlot.left_scatter.xs, ConditionPlot.psth_bin_window, hist_bin_width);
[right_psth_xs, right_psth_ys] =...
calculate_psth(ConditionPlot.right_scatter.xs, ConditionPlot.psth_bin_window, hist_bin_width);
right_scatter_offset = min(ConditionPlot.right_scatter.ys);
right_scatter_height = max(ConditionPlot.right_scatter.ys) - right_scatter_offset;
left_scatter_offset = min(ConditionPlot.left_scatter.ys);
left_scatter_height = max(ConditionPlot.left_scatter.ys) - left_scatter_offset;
psth_height = max([left_psth_ys right_psth_ys]);
left_y_offset = hist_margin...
+ psth_height...
- left_scatter_offset;
right_y_offset = scatter_margin...
+ left_y_offset...
+ left_scatter_offset...
+ left_scatter_height...
- right_scatter_offset;
subplot_height = right_y_offset...
+ right_scatter_offset...
+ right_scatter_height;
hold(ax, 'on');
% PSTH
plot(ax, left_psth_xs, left_psth_ys, 'Color', left_cdata);
plot(ax, right_psth_xs, right_psth_ys, 'Color', right_cdata);
% Scatter Plot
scatter(ax,...
ConditionPlot.left_scatter.xs,...
left_y_offset + ConditionPlot.left_scatter.ys,...
'Marker', '.',...
'CData', left_cdata,...
'SizeData', 1);
scatter(ax,...
ConditionPlot.right_scatter.xs,...
right_y_offset + ConditionPlot.right_scatter.ys,...
'Marker', '.',...
'CData', right_cdata,...
'SizeData', 1);
% sample, delay, response lines
line(ax, repmat(ConditionPlot.sample, 1, 2), [0 subplot_height],...
'Color', 'k', 'LineStyle', 'REPLACE_WITH_DASH_DASH');
line(ax, repmat(ConditionPlot.delay, 1, 2), [0 subplot_height],...
'Color', 'k', 'LineStyle', 'REPLACE_WITH_DASH_DASH');
line(ax, repmat(ConditionPlot.response, 1, 2), [0 subplot_height],...
'Color', 'k', 'LineStyle', 'REPLACE_WITH_DASH_DASH');
% blue bar for photoinhibition period
if ~strcmp(ConditionPlot.stim_type, 'none')
stim_height = subplot_height;
stim_width = 0.5; % seconds
% end time relative to 'go' cue as described in the paper.
switch ConditionPlot.stim_type
case 'Sample'
end_offset = 1.6;
case 'Early Delay'
end_offset = 0.8;
case 'Middle Delay'
end_offset = 0.3;
otherwise
error('Invalid photostim period `%s`', ConditionPlot.stim_type);
end
stim_offset = ConditionPlot.response - stim_width - end_offset;
patch_vertices = [...
stim_offset, 0;...
stim_offset, stim_height;...
stim_offset+stim_width, stim_height;...
stim_offset+stim_width, 0];
patch(ax,...
'Faces', 1:4,...
'Vertices', patch_vertices,...
'FaceColor', '#B3D3EC',... % light blue shading
'EdgeColor', 'none',...
'FaceAlpha', 0.8);
end
title(ax, ConditionPlot.label);
xlabel(ax, 'Time (Seconds)');
ylabel(ax, 'Spikes s^{-1}')
xticks(ax, [-2 0 2]);
yticks(ax, [0 max(10, round(psth_height, -1))]);
% legend(ax, [scatter_left_plot, scatter_right_plot], {'Left Lick', 'Right Lick'},...
% 'location', 'northwestoutside');
ax.TickDir = 'out';
ax.XLim = ConditionPlot.xlim;
ax.YLim = [0 subplot_height];
hold(ax, 'off');
end
##### SOURCE END #####
-->
</div>
<script src="js/iframe-link-handler.js"></script>
<script src="js/copy-buttons.js"></script></body></html>