Data from: Task-specific invariant representation in auditory cortex
Data files
Jul 27, 2024 version files 777.35 MB
-
elife2024.zip
777.34 MB
-
README.md
10.98 KB
Abstract
Categorical sensory representations are critical for many behaviors, including speech perception. In the auditory system, categorical information is thought to arise hierarchically, becoming increasingly prominent in higher order cortical regions. The neural mechanisms that support this robust and flexible computation remain poorly understood. Here, we studied sound representations in primary and non-primary auditory cortex while animals engaged in a challenging sound discrimination task. Population-level decoding of simultaneously recorded single neurons revealed that task engagement caused categorical sound representations to emerge in non-primary auditory cortex. In primary auditory cortex, task engagement caused a general enhancement of sound decoding that was not specific to task-relevant categories. These findings are consistent with mixed selectivity models of neural disentanglement, in which early sensory regions build an overcomplete representation of the world and allow neurons in downstream brain regions to flexibly and selectively read out behaviorally relevant, categorical information.
https://doi.org/10.5061/dryad.z08kprrp4
In this study, we trained ferrets to perform a go/no-go tone-in-noise detection task. After animals learned the task, we acutely inserted laminar 64-channel electrodes into the auditory cortex and recorded population spiking activity while animals performed the task. We have included the spike-sorted, binned spike count neural activity for every experiment in addition to trial-by-trial information about the animal’s behavior. In addition, we have included the results of our neural data analysis which are presented in our manuscript.
Description of the data and file structure
“Raw” data files:
- Neural data
- Neural data are saved separately for each experiment e.g.,:
recordings/ARM007c_a544dd863127bc5f0e01f9656c91aa11e63cc806.tgz
corresponds to the data from one experiment. -
These
.tgz
files are cached versions ofNEMS
“recording” objects (https://github.com/LBHB/NEMS). They can be loaded in Python after installing theNEMS
package. For more information, we refer users to our manuscript-specific repository https://github.com/crheller/eLife2024_Task which provides code that loads and manipulates this data. Here is a brief illustration:from nems.tools import recording
rec = recording.load_recording("recordings/ARM007c_a544dd863127bc5f0e01f9656c91aa11e63cc806.tgz")
rec.signals.keys() dict_keys(['resp', 'pupil_extras', 'pupil'])
rec['resp'].shape # neurons x time matrix (23, 16187)
-
rec.epochs.head() # information about trial structure and behavioral events / sound stimuli name start end 0 PASSIVE_EXPERIMENT 0.0 312.800 1 FILE_ARM007c05_p_TBP 0.0 312.800 2 TRIAL 0.0 2.601 3 BAPHYTRIAL1_FILE1 0.0 2.601 4 STIM_406 0.0 0.500
- Neural data are saved separately for each experiment e.g.,:
- Behavioral data
- Trial-by-trial behavioral outcomes are saved in the
NEMS
recording objects asepochs
, alongside the neural data. - Behavioral summary data is located in two places:
- “behavior only” session summaries are saved separately for each animal, e.g.: (
behavior_training/Armillaria_training.json
) - behavior collected during neural recordings is saved together in (
behavior_recording/all_trials.pickle
)
- “behavior only” session summaries are saved separately for each animal, e.g.: (
- Trial-by-trial behavioral outcomes are saved in the
-
db.csv
contains a “database” of all neural recording experiments (calledsites
). It provides information on what brain region the data was collected from and where to locate the respective spike data binned at either 10 Hz or 50 Hz.pd.read_csv("db.csv", index_col=0).head() site area 10hz_uri 50hz_uri ARM007c ARM007c PEG ARM007c_a544dd863127bc5f0e01f9656c91aa11e63cc8... ARM007c_8b9836e17d9b02d682f122b204dd7bac30a7ff... CLT001a CLT001a A1 CLT001a_e29df4d4d96864e83d50e52d0cb1db7cdb57d7... CLT001a_d22a45a009fbbfa30362e3ec2ac0cfd5041ec3... CLT007a CLT007a A1 CLT007a_b3640573b1530529087d2303a224e616f0d3e5... CLT007a_3f2d0b404f138478069c9692540f045902a4d1... CLT008a CLT008a A1 CLT008a_f95bbc2237b44cdc053c6c7071c59cbaa7cc8f... CLT008a_a867b78138651aa9df3b0525dbf7958eb5f57e... CLT009a CLT009a A1 CLT009a_714c7ff5ab5f9f0db0b5db37857e9af28a5767... CLT009a_485e952982b0bda204ff11b9bdba913d0f4d04...
-
JLY_LH_penMap.csv
– The “penetration map” of all neural recordings in the left hemisphere of one animal. This contains the experiment (site
) name, the estimated best frequency of the neural population, and the stereotactic coordinates of the electrode penetration.pd.read_csv("JLY_LH_penMap.csv", index_col=0).head() BF area site coord1 coord2 coord3 JLY020 0 NaN JLY020 -0.51 0.141421 -0.240416 JLY021c 13500 A1 JLY021c -0.52 0.205061 -0.346482 JLY022b 25000 A1 JLY022b -0.54 0.226274 -0.367696 JLY023d 9000 A1 JLY023d -0.47 0.224548 -0.506042 JLY024c 5000 A1 JLY024c -0.59 0.294650 -0.477264
Supplemental analysis files:
It is worth noting that these following supplemental files are highly specific to the analysis performed in our manuscript. We have provided a very high level overview of what is included, but it is advised to refer to the manuscript and to our github repository https://github.com/crheller/eLife2024_Task from which you can run / modify our code to regenerate the results below for yourself.
- Single neuron results
-
singleNeuronDprime.csv
contains active / passive measures of d-prime for every pair of sound epochs for every neuron in all experiments:pd.read_csv("singleNeuronDprime.csv", index_col=0).iloc[0].T active 0.0 passive 0.377964 cellid ARM007c-01-1 e1 CAT_536+-InfdB+Noise e2 TAR_536+-5dB+Noise category tar_cat area PEG null_delta_low_ci -0.707107 null_delta_high_ci 0.707107 null_active_high_ci 0.0 null_passive_high_ci 0.562321 site ARM007c
-
tarvscat.csv
contains the mean response on active vs. passive trials for each neuron and stimulus, and a p-value for the active / passive difference:pd.read_csv("singleNeuronDprime.csv", index_col=0).iloc[0].T active 0.0 passive 0.377964 cellid ARM007c-01-1 e1 CAT_536+-InfdB+Noise e2 TAR_536+-5dB+Noise category tar_cat area PEG null_delta_low_ci -0.707107 null_delta_high_ci 0.707107 null_active_high_ci 0.0 null_passive_high_ci 0.562321 site ARM007
-
- Population level results - These are sorted according to experiment (or as we call it,
site
). So, for everysite
, we have a sub-directory which contains the results of all population level analyses. These include stimulus decoding, choice decoding, and Factor Analysis. These results are all saved as.pickle
files which can be loaded into Python.- Factor analysis results:
FA_perstim.pickle
(Factor Analysis results fit per stimulus on raw data) andFA_perstim_PR.pickle
(Factor Analysis results fit per stimulus after removing pupil-explained variance). -
Stimulus decoding results are all saved under a sub-directory which corresponds to the analysis parameters. All results files are named
output.pickle
. All decoding “models” are named using a keyword system. This is described briefly below. For more details, please refer to our manuscript.All stimulus decoding analyses:
tbpDecoding_mask.h.cr.m_drmask.h.cr.m.pa_DRops.dim2.ddr-targetNoise tbpDecoding_mask.h.cr.m_drmask.h.cr.m.pa_DRops.dim2.ddr-targetNoise_PR tbpDecoding_mask.h.cr.m_drmask.h.cr.m.pa_DRops.dim2.ddr-targetNoise_PR_FAperstim.0.PR tbpDecoding_mask.h.cr.m_drmask.h.cr.m.pa_DRops.dim2.ddr-targetNoise_PR_FAperstim.1.PR tbpDecoding_mask.h.cr.m_drmask.h.cr.m.pa_DRops.dim2.ddr-targetNoise_PR_FAperstim.3.PR tbpDecoding_mask.h.cr.m_drmask.h.cr.m.pa_DRops.dim2.ddr-targetNoise_PR_FAperstim.4.PR tbpDecoding_mask.pa_decmask.h.cr.m.pa_drmask.h.cr.m.pa_DRops.dim2.ddr-targetNoise-sharedSpace tbpDecoding_mask.pa_drmask.h.cr.m.pa_DRops.dim2.ddr-targetNoise tbpDecoding_mask.pa_drmask.h.cr.m.pa_DRops.dim2.ddr-targetNoise_PR tbpDecoding_mask.pa_drmask.h.cr.m.pa_DRops.dim2.ddr-targetNoise_PR_FAperstim.0.PR tbpDecoding_mask.pa_drmask.h.cr.m.pa_DRops.dim2.ddr-targetNoise_PR_FAperstim.1.PR tbpDecoding_mask.pa_drmask.h.cr.m.pa_DRops.dim2.ddr-targetNoise_PR_FAperstim.3.PR tbpDecoding_mask.pa_drmask.h.cr.m.pa_DRops.dim2.ddr-targetNoise_PR_FAperstim.4.PR
Keyword breakdown using one example:
tbpDecoding = stimulus decoding
mask.h.cr.m = use data from hit, correct reject, and miss trials
drmask.h.cr.m.pa = use data from hit, correct reject, miss, and passive trials to define dim. reduction space
DRops.dim2.ddr-targetNoise = Use 2-D dDR to do dim. reduction. Define noise space using target stimuli.
PR = pupil regression (remove pupil variance)
FAperstim.1.PR = Do decoding on simulated data, where simulation is based on Factor Analysis model fit on pupil regressed data
-
Choice decoding results are saved in the same structure.
All choice decoding analyses:
tbpChoiceDecoding_fs10_ws0.0_we0.1_trial_decision.h.m_DRops.dim2.ddr tbpChoiceDecoding_fs10_ws0.0_we0.1_trial_fromfirst_decision.h.m_DRops.dim2.ddr tbpChoiceDecoding_fs10_ws0.1_we0.2_trial_decision.h.m_DRops.dim2.ddr tbpChoiceDecoding_fs10_ws0.1_we0.2_trial_fromfirst_decision.h.m_DRops.dim2.ddr tbpChoiceDecoding_fs10_ws0.2_we0.3_trial_decision.h.m_DRops.dim2.ddr tbpChoiceDecoding_fs10_ws0.2_we0.3_trial_fromfirst_decision.h.m_DRops.dim2.ddr tbpChoiceDecoding_fs10_ws0.3_we0.4_trial_decision.h.m_DRops.dim2.ddr tbpChoiceDecoding_fs10_ws0.3_we0.4_trial_fromfirst_decision.h.m_DRops.dim2.ddr tbpChoiceDecoding_fs10_ws0.4_we0.5_trial_decision.h.m_DRops.dim2.ddr tbpChoiceDecoding_fs10_ws0.4_we0.5_trial_fromfirst_decision.h.m_DRops.dim2.ddr
Keyword breakdown using one example:
tbpChoiceDecoding = choice decoding
fs10 = load 10Hz sampling data
ws0.0_we0.1 = decode choice using 0 s to 0.1 s time window
trial = reference time from the start of the target sound
fromfirst = override target onset reference and instead reference time from start of the trial
decision.h.m = decoding hit vs. miss trials
DRops.dim2.ddr = use 2-D dDR for dim. reduction
- Factor analysis results:
Code/Software
As mentioned above, for further information on processing this data, we would like to refer those interested to our github repository: https://github.com/crheller/eLife2024_Task. In this repository, we provide the Python code and instructions for independently regenerating all the supplemental analysis files and manuscript figures.
Neural spiking activity was recorded from the auditory cortex of ferrets while animals engaged in an auditory detection task. Data was acquired using laminar silicon multi-electrode arrays acutely inserted into the auditory cortex region of interest (A1 or dPEG). Raw data was spike sorted using Kilosort2, followed by manual curation in Phy. For details on the spike sorting procedure or on the experimental set up in general, please refer to the associated eLife manuscript.
For the purposes of sharing this data, we have included the post-spike sorted data for all electrophysiology experiments discretized into spike counts at 10 Hz and 50 Hz sampling, as these were the two views of the data we used to generate all analyses in the manuscript. These data were saved using the NEMS recording object format which can be easily loaded and manipulated in Python using the NEMS library (https://github.com/LBHB/NEMS). These recording objects contain additional information about the animal's behavior on a each experimental trial, allowing investigation of the relationship between sound-evoked neural activity and behavior.
In addition to the raw neural data, we have also included cached versions of various data analysis stages. For example, we have included files that contain the results from our neural decoding analysis for each experiment. We would like to refer those interested to our github repository: https://github.com/crheller/eLife2024_Task which provides instructions for installing the necessary Python code to rerun all analyses and re-produce the eLife manuscript figures.