|
17 | 17 | "\n", |
18 | 18 | "###### Figure 1. White noise stimuli evoke temporally precise neural responses. A. Recording of a salamander retinal ganglion cell in a dish in response to repeated white noise full-field flicker (from Berry and Meister 1998). See also: Pillow et al 2005, B. Recording of an anesthetized cat LGN cell in response to repeated white noise fullfield flicker (from Reinagel and Reid, 2000). C. Response of an alert macaque cortical area MT neuron in response to a grating stimulus whose drift direction was modulated with repeated white noise (from Buracas et al, 1998).\n", |
19 | 19 | "\n", |
20 | | - "Astonishingly, the same bar-code-like patterns have been found in neurons recorded in different individual animals (Fig 2A), and even neurons in different species (Fig 2B). The temporal pattern of one neuron’s response to the same visual stimulus sequence at different contrasts are systematically related (Fig 2C), as are reponses of the same neuron to the same visual stimulus sequence at different luminance (Lewen et al., 2001). These findings have implications for dynamical models of neural spike coding (Fellous et al, 2004, Wang et al 2019). We speculated that these barcodes could be used as identifiers of discrete cell types.\n", |
| 20 | + "Astonishingly, the same bar-code-like patterns have been found in neurons recorded in different individual animals (Fig 2A), and even neurons in different species (Fig 2B). The temporal pattern of one neuron’s response to the same visual stimulus sequence at different contrasts are systematically related (Fig 2C), as are responses of the same neuron to the same visual stimulus sequence at different luminance (Lewen et al., 2001). These findings have implications for dynamical models of neural spike coding (Fellous et al, 2004, Wang et al 2019). We speculated that these barcodes could be used as identifiers of discrete cell types.\n", |
21 | 21 | "\n", |
22 | 22 | "\n", |
23 | 23 | "###### Figure 2. Temporal barcodes define reproducible and stable types. A. Recording of LGN cells in two different anesthetized cats in response to the same repeated white noise full-field flicker (from Reinagel and Reid, 2002). B. Recordings from a salamander retinal ganglion cell vs. a rabbit retinal ganglion cell in response to the same repeated white noise full-field flicker (from Berry et al, 1997). C. recording of a cat LGN cell to the same repeated white noise full-field flicker shown at different contrasts (from Gaudry and Reinagel, 2007).*\n", |
24 | 24 | "\n", |
25 | | - "This experiment used the OpenScope Neuropixels passive viewing protocol, and displayed visual stimuli modulated in time by a short, repeated white noise sequence. The visual stimulus was either a spatially uniform field whose luminance was modulated in time (Full Field Flicker), or a standing sinusoidal grating whose contrast was modulated in time (Static Gratings). The best evidence for temporal barcodes has come from early visual areas (retina and LGN). Therefore, to obtain large populations of neurons in subcortical areas, roughly half of the mice were recorded in a novel electrode configuation. To our surprise, a majority of neurons in visual cortical areas responded to full field flicker with clear temporal barcodes." |
| 25 | + "This experiment used the OpenScope Neuropixels passive viewing protocol, and displayed visual stimuli modulated in time by a short, repeated white noise sequence. The visual stimulus was either a spatially uniform field whose luminance was modulated in time (Full Field Flicker), or a standing sinusoidal grating whose contrast was modulated in time (Static Gratings). The best evidence for temporal barcodes has come from early visual areas (retina and LGN). Therefore, to obtain large populations of neurons in subcortical areas, roughly half of the mice were recorded in a novel electrode configuration. To our surprise, a majority of neurons in visual cortical areas responded to full field flicker with clear temporal barcodes." |
26 | 26 | ] |
27 | 27 | }, |
28 | 28 | { |
|
63 | 63 | "metadata": {}, |
64 | 64 | "source": [ |
65 | 65 | "### The Experiment\n", |
66 | | - "As shown in the metadata table below, Openscope's Temporal Barcoding Experiment has produced _ main files on the [DANDI Archive](http://dandiarchive.org), with _ males and _ females. There are _ and _ genotypes. This table was generated from [Getting Experimental Metadata from DANDI](../basics/get_dandiset_metadata.ipynb)." |
| 66 | + "As shown in the metadata table below, Openscope's Temporal Barcoding Experiment has produced 37 main files on the [DANDI Archive](http://dandiarchive.org), with 20 males and 17 females. There are 8 sst, 6 pval, and 23 wt genotypes. This table was generated from [Getting Experimental Metadata from DANDI](../basics/get_dandiset_metadata.ipynb)." |
67 | 67 | ] |
68 | 68 | }, |
69 | 69 | { |
|
1431 | 1431 | " mask1=stim_index==StimIndexList[k] #true for all elements in this presentation\n", |
1432 | 1432 | " for j in range(nRepeats): #loop over repeats within the presentation\n", |
1433 | 1433 | " mask2=index_repeat==j #true for all elements with this repeat number\n", |
1434 | | - " ind1=np.where(np.logical_and(mask1,mask2))[0][0] # index of first element meeting conditoins\n", |
| 1434 | + " ind1=np.where(np.logical_and(mask1,mask2))[0][0] # index of first element meeting conditions\n", |
1435 | 1435 | " stim_times[k*nRepeats+j]= stim_table[\"start_time\"][ind1]\n", |
1436 | 1436 | "\n", |
1437 | | - " ind2=np.where(np.logical_and(mask1,mask2))[0][-1] # index of last element meeting conditoins\n", |
| 1437 | + " ind2=np.where(np.logical_and(mask1,mask2))[0][-1] # index of last element meeting conditions\n", |
1438 | 1438 | " endtime[k*nRepeats+j]= stim_table[\"stop_time\"][ind2]\n", |
1439 | 1439 | "\n", |
1440 | 1440 | "# the actual duration of each repeat is given by end_time-start_time\n", |
|
1865 | 1865 | } |
1866 | 1866 | ], |
1867 | 1867 | "source": [ |
1868 | | - "# Compute the barcodes of all three eample units\n", |
| 1868 | + "# Compute the barcodes of all three example units\n", |
1869 | 1869 | "barcodes=[]\n", |
1870 | 1870 | "for i in range(len(example_indices)):\n", |
1871 | 1871 | " rate=FR[example]*bin_duration # rate, expressed in spikes per time bin\n", |
|
0 commit comments