OSCR

Neuronal dynamics, timing, and flow of sensory and choice-related information in auditory-prefrontal circuitry.

Code ↔ Paper

2 matches between paragraphs of the paper and lines of its authors' code, computed by the harvester (lexical-v1). Click a colored paragraph or line to see its counterpart.

The 2 matches
  1. [1] § Methods › Flow of information ↔ InformationTransfer_Choice.m, lines 189–263 · score 0.73 · intrinsic temporal dependencies, autocorrelated, autoregressive, validate, lags, zero
  2. [2] § Methods › Flow of information ↔ InformationTransfer_Sensory.m, lines 191–265 · score 0.72 · intrinsic temporal dependencies, autocorrelated, autoregressive, validate, lags, zero

Paper

Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC

The paper is loaded when this pane is shown.

The authors' code

MATLAB · 284 lines · 9.8 KB · no license · 1 match

  1. clearvars
  2. cd('C:\Users\giarroccof2\OneDrive - National Institutes of Health\Franco\Corrie Data\Task')
  3. load M1_PFC_Data_50ms_Tg.mat
  4. load M1_A1_Data_50ms_Tg.mat
  5. load M1_BehavioralData.mat
  6. load M1_BehavioralCodes.mat
  7. Times=-2100:50:1700;
  8. Times_fig=-2000:50:1700;
  9. Choice_Window=42:75;
  10. for s=1: size (M1_A1_Data_50ms_Tg,2)
  11. clearvars -except M1_PFC_Data_50ms_Tg M1_A1_Data_50ms_Tg Choice_Window ...
  12. Times Times_fig s R_s_Predictions M1_BehavioralData M1_BehavioralCodes
  13. size (M1_A1_Data_50ms_Tg,2) - s
  14. An_AC_Sess = M1_A1_Data_50ms_Tg{s};
  15. An_PFC_Sess = M1_PFC_Data_50ms_Tg{s};
  16. An_Behav_Sess = M1_BehavioralData{s};
  17. All_Trials = 1:size(An_AC_Sess,1);
  18. catchtr = M1_BehavioralCodes{s}.iscatch;
  19. Catch_Trials = find (catchtr==1);
  20. acc = M1_BehavioralCodes{s}.acc;
  21. acc_Nan = find(isnan(acc));
  22. RemovedTrials=[];
  23. RemovedTrials = union(Catch_Trials,acc_Nan);
  24. All_Trials(RemovedTrials) = [];
  25. Used_Trials = All_Trials;
  26. pos_acc=find(acc==1);
  27. acc_1= intersect(Used_Trials,pos_acc);
  28. neg_acc=find(acc==0);
  29. acc_0= intersect(Used_Trials,neg_acc);
  30. RTs_1= M1_BehavioralCodes{s}.t1rt ;
  31. RTs_1_Corr =RTs_1(Used_Trials);
  32. p33 = prctile(RTs_1_Corr(:,1), 33);
  33. p66 = prctile(RTs_1_Corr(:,1), 66);
  34. Trials_RT = nan(size(RTs_1_Corr,1),3);
  35. % Categorize the trials based on RT
  36. for i = 1:size(RTs_1_Corr,1)
  37. if RTs_1_Corr(i,1) <= p33
  38. Trials_RT(i,1) = RTs_1_Corr(i,1); % Collect trial numbers for short RTs
  39. elseif RTs_1_Corr(i,1) > p33 && RTs_1_Corr(i,1) <= p66
  40. Trials_RT(i,2) = RTs_1_Corr(i,1); % Collect trial numbers for short RTs
  41. else
  42. Trials_RT(i,3) = RTs_1_Corr(i,1); % Collect trial numbers for short RTs
  43. end
  44. end
  45. acc_RTs1=Used_Trials(find(isnan(Trials_RT(:,1))==0));
  46. acc_RTs2=Used_Trials(find(isnan(Trials_RT(:,2))==0));
  47. acc_RTs3=Used_Trials(find(isnan(Trials_RT(:,3))==0));
  48. acc_RTs={acc_RTs1,acc_RTs2,acc_RTs3};
  49. CueLocation = An_Behav_Sess.A(:,7);
  50. CueLocation(CueLocation==2) = -1;
  51. CueSide_Used_trials = CueLocation(Used_Trials);
  52. CueSide_Correct_trials = CueLocation(acc_1);
  53. TargetSide = M1_BehavioralCodes{s}.tside;
  54. TargetSide(TargetSide==2) = -1;
  55. TargetSide_Used_trials = TargetSide(Used_Trials);
  56. TargetSide_Correct_trials = TargetSide(acc_1);
  57. Match_Trials = zeros(size(TargetSide_Used_trials));
  58. Match = CueSide_Used_trials==TargetSide_Used_trials;
  59. idx_match = find(Match==1);
  60. idx_nonmatch = find(Match==0);
  61. Match_Trials (idx_match)= 1;
  62. Match_Trials (idx_nonmatch)= -1;
  63. Match_Corr_Trials = zeros(size(TargetSide_Correct_trials));
  64. Match_Corr = CueSide_Correct_trials==TargetSide_Correct_trials;
  65. idx_Match_Corr = find(Match_Corr==1);
  66. idx_nonMatch_Corr = find(Match_Corr==0);
  67. Match_Corr_Trials (idx_Match_Corr)= 1;
  68. Match_Corr_Trials (idx_nonMatch_Corr)= -1;
  69. AllDelayTimes = An_Behav_Sess.A(Used_Trials,8);
  70. Delay_1= find(AllDelayTimes==-1000);
  71. Delay_2= find(AllDelayTimes==-1300);
  72. Delay_3= find(AllDelayTimes==-1800);
  73. AllDelay_CorrTimes = An_Behav_Sess.A(acc_1,8);
  74. Delay_Corr_1= find(AllDelay_CorrTimes==-1000);
  75. Delay_Corr_2= find(AllDelay_CorrTimes==-1300);
  76. Delay_Corr_3= find(AllDelay_CorrTimes==-1800);
  77. RTs_1_Used_Trials =RTs_1(Used_Trials);
  78. RT_not_nan=find(isnan(RTs_1_Used_Trials)==0);
  79. Used_Trials_with_RTs=Used_Trials(RT_not_nan);
  80. RT_values_UsedTrials = RTs_1_Used_Trials(RT_not_nan);
  81. median_Used_Trials = median( RTs_1_Used_Trials, "omitnan");
  82. Slow_RTidx=find (RTs_1>median_Used_Trials);
  83. Fast_RTidx=find (RTs_1<median_Used_Trials);
  84. SlowRT_Used_Trials= intersect(Slow_RTidx,Used_Trials);
  85. FastRT_Used_Trials= intersect(Fast_RTidx,Used_Trials);
  86. Slow_RT=RTs_1 (SlowRT_Used_Trials);
  87. MnM_Label_SlowRT=Match_Trials(find(ismember(Used_Trials,SlowRT_Used_Trials)));
  88. MnM_Label_FastRT=Match_Trials(find(ismember(Used_Trials,FastRT_Used_Trials)));
  89. trials_For_Regression=Used_Trials;
  90. BetaCue_AC=[]; BetaTg_AC=[]; NormCue_AC=[]; NormTg_AC=[];
  91. %% First regression used to define 1D-dimension
  92. % A1 regression
  93. for AC_neu= 1 : size (An_AC_Sess,3) % # neurons
  94. AC_single_Neu=[]; AC_single_Neu = An_AC_Sess(:,:,AC_neu);
  95. for bin=1:size(AC_single_Neu,2)
  96. B = fitlm([Match_Trials],AC_single_Neu(trials_For_Regression,bin));
  97. BetaCue_AC(AC_neu,bin)=B.Coefficients{2,1};
  98. end
  99. end
  100. BetaCue_PFC=[]; BetaTg_PFC=[]; NormCue_PFC=[]; NormTg_PFC=[];
  101. % PFC regression
  102. for PFC_neu= 1 : size (An_PFC_Sess,3) % # neurons
  103. PFC_single_Neu=[]; PFC_single_Neu = An_PFC_Sess(:,:,PFC_neu);
  104. for bin=1:size(PFC_single_Neu,2)
  105. B = fitlm([Match_Trials],PFC_single_Neu(trials_For_Regression,bin));
  106. BetaCue_PFC(PFC_neu,bin)=B.Coefficients{2,1};
  107. end
  108. end
  109. %% Define 1D-dimension
  110. NormCue_AC=vecnorm(BetaCue_AC);
  111. Max_Norm_Cue(s,1)=max(NormCue_AC(Choice_Window));
  112. bin_betaCue_AC=find(NormCue_AC==max(NormCue_AC(Choice_Window)));
  113. BetaCue_Vector_AC=BetaCue_AC(:,bin_betaCue_AC(1));
  114. NormCue_PFC=vecnorm(BetaCue_PFC);
  115. bin_betaCue_PFC=find(NormCue_PFC==max(NormCue_PFC(Choice_Window)));
  116. BetaCue_Vector_PFC=BetaCue_PFC(:,bin_betaCue_PFC(1)); %?
  117. Max_Norm_Cue(s,2)=max(NormCue_PFC(Choice_Window));
  118. betas(s,1)=Times(bin_betaCue_AC);
  119. betas(s,2)=Times(bin_betaCue_PFC);
  120. AC_PFC_Data= {permute(An_AC_Sess, [3 2 1]), permute(An_PFC_Sess, [3 2 1])} ;
  121. IT_Micro_Tg_MnM_Values_All_Trials_2= [Max_Norm_Cue betas ];
  122. BetaCue_Vectors= {BetaCue_Vector_AC,BetaCue_Vector_PFC };
  123. % NormTg_AC=vecnorm(BetaTg_AC);
  124. % bin_betaTg_AC=find(NormTg_AC==max(NormTg_AC(Choice_Window)));
  125. % BetaTg_Vector_AC=BetaTg_AC(:,bin_betaTg_AC(1));
  126. %% Targeted dimensionality reduction
  127. n_areas=2;
  128. Proj_B_Cue=nan( size(trials_For_Regression,2), size(AC_PFC_Data{1,1},2), size(AC_PFC_Data,2)); % Trials x bin x Areas
  129. for n_Areas= 1:n_areas
  130. PermData=[]; PermData=AC_PFC_Data{1,n_Areas};
  131. for Trial_Beta=1:size(trials_For_Regression,2)
  132. for tb=1:size (PermData,2)
  133. Proj_B_Cue(Trial_Beta,tb,n_Areas)=dot(PermData(:,tb,trials_For_Regression(Trial_Beta)),BetaCue_Vectors{1,n_Areas});
  134. end
  135. end
  136. end
  137. %% To remove same area intrinsic temporal dependencies within each area
  138. Residual_SameArea=[];
  139. for n_Areas= 1:n_areas
  140. Area_Feature= Proj_B_Cue(:,:,n_Areas);
  141. for b= 1:size(Proj_B_Cue,2)-1
  142. Self_Prediction=fitlm(Area_Feature(:,b),Area_Feature(:,b+1));
  143. Residual_SameArea(:,b,n_Areas)=Self_Prediction.Residuals{:,2} ;
  144. end
  145. end
  146. % %%%%%
  147. % %%%%% to validate the previous autocorrelation model...
  148. % %%%%%
  149. % %%%%%
  150. % residuals = Residual_SameArea(:,:,1);
  151. %
  152. % max_lag = 5; %%%%% Define the maximum lag to test
  153. % num_trials = size(residuals, 1); %%%%% Number of trials
  154. % num_lags = 2 * max_lag + 1; %%%%%% Lags from -max_lag to max_lag
  155. % xcorr_vals = zeros(num_trials, num_lags); %%%%%% Store cross-correlations
  156. %
  157. % for trial = 1:num_trials
  158. % xcorr_vals(trial, :) = xcorr(residuals(trial, :), max_lag, 'coeff'); %%%%%%% Compute xcorr for each trial
  159. % end
  160. %
  161. % %%%%%%%% Average across trials to obtain session-level cross-correlation
  162. % mean_xcorr = mean(xcorr_vals, 1);
  163. %
  164. % %%%%%%%% Plot results
  165. % lags = -max_lag:max_lag;
  166. %
  167. %
  168. % %%%%%%%%% this is to plot the autocorrelation to ensure that the previous
  169. % %%%%%%%%% autoregression whitened the time series
  170. % figure;
  171. % stem(lags,mean_xcorr)
  172. % xlabel('Lag');
  173. % ylabel('Autocorrelation coefficient');
  174. % hold off;
  175. %
  176. % %%%%%%% residuals: matrix of size (nTrials x nTimeBins)
  177. % %%%%%%% Each row is one trial's residual time series
  178. %
  179. % maxLag = 5; %%%%%%%% Maximum lag to evaluate
  180. % numTrials = size(residuals, 1);
  181. %
  182. % %%%%%%%% Preallocate to store the xcorr results for each trial
  183. % ccVals = zeros(numTrials, 2*maxLag + 1);
  184. %
  185. % for tr = 1:numTrials
  186. % %%%%%%%% Compute xcorr for one trial, up to maxLag, normalized by 'coeff'
  187. % [cc, lags] = xcorr(residuals(tr, :), maxLag, 'coeff');
  188. % ccVals(tr, :) = cc; %%%%%%%% Store the cross-correlation values
  189. % end
  190. %
  191. % %%%%%%% Average across trials
  192. % meanCC = mean(ccVals, 1);
  193. % semCC = std(ccVals, [], 1) / sqrt(numTrials); %%%%%%%% Optional SEM
  194. %
  195. % %%%%%%%%%% Plot the mean cross-correlation
  196. % figure;
  197. % errorbar(lags, meanCC, semCC, '-o', 'LineWidth', 2, 'MarkerFaceColor','black');
  198. % xlabel('Lag');
  199. % ylabel('Autocorrelation coefficient');
  200. % grid on;
  201. %
  202. % alpha = 0.05;
  203. % for i = 1:length(lags)
  204. % if lags(i) ~= 0
  205. % [~, p] = ttest(ccVals(:, i), 0, 'Alpha', alpha);
  206. % fprintf('Lag %d -> p = %.4f\n', lags(i), p);
  207. % end
  208. % end
  209. %%%%%%%%%
  210. %%%%%%%%% end of autocorrelation validation
  211. %%%%%%%%%
  212. %% Perform Cross-area prediction
  213. for n_Areas= 1:n_areas
  214. if n_Areas==1
  215. TargetAreas=1; SourceAreas=2;
  216. elseif n_Areas==2
  217. TargetAreas=2; SourceAreas=1;
  218. end
  219. for b= 1:size(Residual_SameArea,2)-1
  220. IT_Prediction=fitlm(Residual_SameArea(:,b,SourceAreas),Residual_SameArea(:,b+1,TargetAreas));
  221. R_s_Predictions(s,b,n_Areas)=IT_Prediction.Rsquared.Adjusted;
  222. end
  223. end
  224. end

InformationTransfer_Choice.m at commit 4600c23, no license · at the source

Overview

  1. Laboratory of Neuropsychology, National Institute of Mental Health, National Institutes of Health,Bethesda, MD USA
Institutions: National Institute of Mental Health (United States)
Journal: Nature communications, volume 17, issue 1, article 8443
Dates: received 24 April 2025; accepted 26 June 2026; published online 8 July 2026
Type: Research article · Language: English
License: CC BY-NC-ND
Identifiers: DOI 10.1038/s41467-026-75349-2 · PMID 42420269 · PMCID PMC13478149 · OpenAlex W7167690234
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: non-human primate (organism)
Methods: Spectral & time-frequency, Statistics, Smoothing, state filtering, decompositions, Machine learning, Preprocessing, Single-unit activity, calcium imaging, Connectivity
Keywords: Cognitive neuroscience, Cortex
MeSH: Auditory Cortex*, Auditory Perception*, Choice Behavior*, Dorsolateral Prefrontal Cortex*, Neurons*, Prefrontal Cortex*, Acoustic Stimulation, Animals, Decision Making, Macaca mulatta, Male (* major topic)
Topic: Neuroscience and Music Perception (Cognitive Neuroscience, Neuroscience), according to OpenAlex
Funding: National Institute of Mental Health (ZIA MH002928)
Citations: not cited yet (Europe PMC); 77 references in the paper

Abstract

The abstract is not reproduced here: the paper's license (CC BY-NC-ND) does not allow it. Read it in the paper, at the publisher or on Europe PMC.

Repository

Its files are read in the Code ↔ Paper reader above, with 2 matches between paragraphs and lines of code.

GiarroccoFranco/Auditory_Decision_Making

License: none: the authors keep all their rights
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Commit: 4600c233c3a974f279255a7b30d180ef0c366e36, 4 May 2025
Languages: MATLAB (18)
Size: 19 files, 18 scripts
Software Heritage: not archived
Found in: “Code availability”
Holds: README
Not found: license file, CITATION.cff, environment file, tests, continuous integration, documentation
Availability: 1 check, the latest on 27 September 2026: the link answers
  • 27 September 2026: the link answers
19 files

Code availability statement

The paper has a code availability statement. Its license (CC BY-NC-ND) does not allow reproducing it here; in short, from what the harvester recognized in it:

Read it in the paper: doi.org/10.1038/s41467-026-75349-2.

Tracing map

Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.

What the map holds:

  • 1 repository of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
  • 18 scripts, each with its path and the digest of its content;
  • 2 matches between paragraphs of the paper and lines of the code (method lexical-v1);
  • neither the text of the paper nor the code itself.

Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.

Data

Datasets cited

Code and data availability statement

The paper has a code and data availability statement. Its license (CC BY-NC-ND) does not allow reproducing it here; in short, from what the harvester recognized in it:

Read it in the paper: doi.org/10.1038/s41467-026-75349-2.

Versions

The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.

Version 1, 27 September 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 2 authors, 2 keywords, 11 MeSH terms, 1 funder, 75 references.

Cite

This paper

Giarrocco, F., & Averbeck, B. B. (2026). Neuronal dynamics, timing, and flow of sensory and choice-related information in auditory-prefrontal circuitry. Nature communications, 17(1), 8443. https://doi.org/10.1038/s41467-026-75349-2

BibTeX

@article{giarrocco2026neuronal,
author = {Giarrocco, Franco and Averbeck, Bruno B.},
title = {{Neuronal dynamics, timing, and flow of sensory and choice-related information in auditory-prefrontal circuitry}},
journal = {Nature communications},
year = {2026},
month = jul,
volume = {17},
number = {1},
pages = {8443},
publisher = {Nature Publishing Group},
issn = {2041-1723},
doi = {10.1038/s41467-026-75349-2},
url = {https://doi.org/10.1038/s41467-026-75349-2},
pmid = {42420269},
pmcid = {PMC13478149}
}

RIS

TY - JOUR
AU - Giarrocco, Franco
AU - Averbeck, Bruno B.
TI - Neuronal dynamics, timing, and flow of sensory and choice-related information in auditory-prefrontal circuitry
T2 - Nature communications
J2 - Nat Commun
PY - 2026
DA - 2026/07/08
VL - 17
IS - 1
SP - 8443
SN - 2041-1723
PB - Nature Publishing Group
DO - 10.1038/s41467-026-75349-2
UR - https://doi.org/10.1038/s41467-026-75349-2
LA - en
ER -

CSL-JSON

{
"id": "10.1038/s41467-026-75349-2",
"type": "article-journal",
"title": "Neuronal dynamics, timing, and flow of sensory and choice-related information in auditory-prefrontal circuitry",
"container-title": "Nature communications",
"author": [
{
"family": "Giarrocco",
"given": "Franco"
},
{
"family": "Averbeck",
"given": "Bruno B."
}
],
"container-title-short": "Nat Commun",
"volume": "17",
"issue": "1",
"page": "8443",
"DOI": "10.1038/s41467-026-75349-2",
"PMID": "42420269",
"PMCID": "PMC13478149",
"ISSN": "2041-1723",
"publisher": "Nature Publishing Group",
"URL": "https://doi.org/10.1038/s41467-026-75349-2",
"language": "en",
"issued": {
"date-parts": [
[
2026,
7,
8
]
]
}
}

The tracing map gets a citation of its own once an author has validated it and it has a DOI.

Similar papers

The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.

[1] doi:10.1371/journal.pbio.3003707 [code]
Behavioral engagement facilitates auditory neuron responses beyond their receptive fields.
Journal: PLoS biology
In common: Statistics and Machine Learning Toolbox, non-human primate, 4 references
[2] doi:10.1126/sciadv.aef3715
A cortical output channel for perceptual categorization.
Journal: Science advances
In common: 5 references
[3] doi:10.1126/sciadv.aeb3005 [code]
Neural competition between prefrontal and auditory cortex constrains novel sound strategy learning.
Journal: Science advances
In common: Statistics and Machine Learning Toolbox, 4 references
[4] doi:10.1371/journal.pbio.3003966 [code]
Behavioral engagement and stimulus regularities coordinate auditory-prefrontal network activity.
Journal: PLoS biology
In common: Statistics and Machine Learning Toolbox, non-human primate, 3 references
[5] doi:10.1038/s41467-026-76104-3 [code]
Sensorimotor remapping drives task specialization in prefrontal cortex.
Journal: Nature communications
In common: non-human primate, 4 references
[6] doi:10.1038/s41467-026-71725-0 [code]
Interactions across hemispheres in prefrontal cortex reflect global cognitive processing.
Journal: Nature communications
In common: Statistics and Machine Learning Toolbox, non-human primate, 3 references
[7] doi:10.1038/s41467-026-73540-z [code]
Predictive acoustical processing in human cortical layers.
Journal: Nature communications
In common: Statistics and Machine Learning Toolbox, 3 references
[8] doi:10.1038/s41467-026-73906-3 [code]
A synaptic mechanism for encoding the learned value of action-derived safety.
Journal: Nature communications
In common: author Bruno B. Averbeck
[9] doi:10.1038/s41467-026-76098-y [code]
A single computational objective can produce specialization of streams in visual cortex.
Journal: Nature communications
In common: Statistics and Machine Learning Toolbox, 3 references
[10] doi:10.1038/s41467-026-71270-w [code]
Spatiotemporal dynamics of the human cortical functional hierarchy across the lifespan.
Journal: Nature communications
In common: Statistics and Machine Learning Toolbox, 3 references

Contribute

The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.

Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.

Request its removal

To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).

Discussion, reproductions, activity

Discussion: questions and error reports about this paper and its code, from signed-in readers and its authors. It opens with sign-in.

Reproductions: reports from readers who ran the authors' code: what they reproduced, with which environment, commit and data. It opens with sign-in.

Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.