DOI: 10.5061/dryad.z08kprrp4
title: Data from: Task-specific invariant representation in auditory cortex

description: 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.
description: 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.
description: # Data from: Task-specific invariant representation in auditory cortex
 [https://doi.org/10.5061/dryad.z08kprrp4](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 of `NEMS` "recording" objects ([https://github.com/LBHB/NEMS](https://github.com/LBHB/NEMS)). They can be loaded in Python after installing the `NEMS` package. For more information, we refer users to our manuscript-specific repository [https://github.com/crheller/eLife2024_Task](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 ``` * Behavioral data * Trial-by-trial behavioral outcomes are saved in the `NEMS` recording objects as `epochs`, 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`) * `db.csv` contains a "database" of all neural recording experiments (called `sites`). 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](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 every `site`, 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) and `FA_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 ``` ## 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](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.