OSCR

Noradrenaline causes a spread of association in the hippocampal cognitive map.

Code ↔ Paper

The paper beside its authors' code: matches between them have not been computed for this paper yet.

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

C++ · 212 lines · 5.3 KB · no license

  1. #include "CodepESPConnection.h"
  2. using namespace auryn;
  3. void CodepESPConnection::init(AurynFloat tau_hom, AurynFloat eta, AurynFloat kappa, AurynFloat maxweight)
  4. {
  5. if ( dst->get_post_size() == 0 ) return;
  6. /* Initialization of plasticity parameters. */
  7. A_LTP = 3e-4;
  8. A_LTD = 3e-5;
  9. A_het = 1.5e-8;
  10. A_ISP = 1e-3;
  11. gamma = 3;
  12. I_star = 200;
  13. tau_plus = 16.8e-3;
  14. tau_minus = 33.7e-3;
  15. tau_long = 100e-3;
  16. tau_STDP = 20e-3;
  17. tau_homeostatic = tau_hom;
  18. /* Initialization of presynaptic traces */
  19. tr_pre = src->get_pre_trace(tau_plus);
  20. /* Initialization of postsynaptic traces */
  21. tr_post = dst->get_post_trace(tau_minus);
  22. tr_post2 = dst->get_post_trace(tau_long);
  23. tr_post_hom = dst->get_post_trace(tau_hom);
  24. //Getting E and I
  25. E = dst->get_state_vector("E");
  26. I=dst->get_state_vector("I");
  27. hom_fudge = A3_plus*tau_plus*tau_long/(tau_minus)/kappa/tau_hom/tau_hom;
  28. /* Set min/max weight values. */
  29. set_min_weight(0.0);
  30. set_max_weight(maxweight);
  31. stdp_active = true;
  32. }
  33. void CodepESPConnection::init_shortcuts()
  34. {
  35. if ( dst->get_post_size() == 0 ) return; // if there are no target neurons on this rank
  36. fwd_ind = w->get_row_begin(0);
  37. fwd_data = w->get_data_begin();
  38. bkw_ind = bkw->get_row_begin(0);
  39. bkw_data = bkw->get_data_begin();
  40. }
  41. void CodepESPConnection::finalize() {
  42. DuplexConnection::finalize();
  43. init_shortcuts();
  44. }
  45. void CodepESPConnection::free()
  46. {
  47. }
  48. CodepESPConnection::CodepESPConnection(SpikingGroup * source, NeuronGroup * destination, TransmitterType transmitter) : DuplexConnection(source, destination, transmitter)
  49. {
  50. }
  51. CodepESPConnection::CodepESPConnection(SpikingGroup * source, NeuronGroup * destination,
  52. const char * filename,
  53. AurynFloat tau_hom,
  54. AurynFloat eta,
  55. AurynFloat kappa, AurynFloat maxweight ,
  56. TransmitterType transmitter)
  57. : DuplexConnection(source,
  58. destination,
  59. filename,
  60. transmitter)
  61. {
  62. init(tau_hom, eta, kappa, maxweight);
  63. init_shortcuts();
  64. }
  65. CodepESPConnection::CodepESPConnection(SpikingGroup * source, NeuronGroup * destination,
  66. AurynWeight weight, AurynFloat sparseness,
  67. AurynFloat tau_hom,
  68. AurynFloat eta,
  69. AurynFloat kappa, AurynFloat maxweight ,
  70. TransmitterType transmitter,
  71. std::string name)
  72. : DuplexConnection(source,
  73. destination,
  74. weight,
  75. sparseness,
  76. transmitter,
  77. name)
  78. {
  79. init(tau_hom, eta, kappa, maxweight);
  80. if ( name.empty() )
  81. set_name("CodepESPConnection");
  82. init_shortcuts();
  83. }
  84. CodepESPConnection::~CodepESPConnection()
  85. {
  86. if ( dst->get_post_size() > 0 )
  87. free();
  88. }
  89. void CodepESPConnection::set_hom_trace(AurynFloat freq)
  90. {
  91. if ( dst->get_post_size() > 0 )
  92. tr_post_hom->set_all(freq*tr_post_hom->get_tau());
  93. }
  94. inline AurynWeight CodepESPConnection::get_hom(NeuronID i)
  95. {
  96. return pow(tr_post_hom->get(i),2);
  97. }
  98. inline AurynWeight CodepESPConnection::dw_pre(NeuronID post)
  99. {
  100. // translate post id to local id on rank: translated_spike
  101. NeuronID translated_spike = dst->global2rank(post);
  102. AurynDouble dw = (-A_LTD*(tr_post->get(translated_spike)))*std::exp(std::pow(-((I->get(post))/I_star), gamma));
  103. ;
  104. return dw;
  105. }
  106. inline AurynWeight CodepESPConnection::dw_post(NeuronID pre, NeuronID post)
  107. {
  108. AurynDouble dw = (A_LTP*tr_pre->get(pre)* E->get(post) - A_het*tr_post2->get(post)*E->get(post)* E->get(post))*std::exp(std::pow(-((I->get(post))/I_star), gamma));
  109. return dw;
  110. }
  111. inline void CodepESPConnection::clip_weight( AurynWeight * weight )
  112. {
  113. if (*weight<get_min_weight()) *weight = get_min_weight();
  114. else if (*weight>get_max_weight()) *weight=get_max_weight();
  115. }
  116. void CodepESPConnection::propagate_forward()
  117. {
  118. // loop over all pre spikes
  119. for (SpikeContainer::const_iterator spike = src->get_spikes()->begin() ; // spike = pre_spike
  120. spike != src->get_spikes()->end() ; ++spike ) {
  121. // loop over all postsynaptic target cells
  122. for (const NeuronID * c = w->get_row_begin(*spike) ;
  123. c != w->get_row_end(*spike) ;
  124. ++c ) { // c = post index
  125. // determines the weight of connection
  126. AurynWeight * weight = w->get_data_ptr(c);
  127. // handles plasticity
  128. if ( stdp_active ) {
  129. *weight += dw_pre(*c)*(*weight);
  130. // clip weight
  131. if ( *weight < get_min_weight() ) *weight = get_min_weight();
  132. }
  133. // evokes the postsynaptic response
  134. transmit( *c , *weight );
  135. }
  136. }
  137. }
  138. void CodepESPConnection::propagate_backward()
  139. {
  140. if (stdp_active) {
  141. // loop over all post spikes
  142. for (SpikeContainer::const_iterator spike = dst->get_spikes_immediate()->begin() ; // spike = post_spike
  143. spike != dst->get_spikes_immediate()->end() ;
  144. ++spike ) {
  145. // translate the global post id to the neuron index on this rank
  146. NeuronID translated_spike = dst->global2rank(*spike);
  147. // loop over all presynaptic partners
  148. for (const NeuronID * c = bkw->get_row_begin(*spike) ; c != bkw->get_row_end(*spike) ; ++c ) {
  149. // prefetches next memory cells to reduce number of last-level cache misses
  150. #if defined(CODE_ACTIVATE_PREFETCHING_INTRINSICS) && defined(CODE_USE_SIMD_INSTRUCTIONS_EXPLICITLY)
  151. _mm_prefetch((const char *)bkw_data[c-bkw_ind+2], _MM_HINT_NTA);
  152. #endif
  153. // computes plasticity update
  154. AurynWeight * weight = bkw->get_data(c); // for bkw data is already a pointer
  155. *weight += dw_post(*c,translated_spike);
  156. // clip weight
  157. if ( *weight > get_max_weight() ) *weight = get_max_weight();
  158. }
  159. }
  160. }
  161. }
  162. void CodepESPConnection::propagate()
  163. {
  164. propagate_forward();
  165. propagate_backward();
  166. }
  167. void CodepESPConnection::evolve()
  168. {
  169. }

CodependentESP.cpp at commit c4686b4, no license · at the source

Overview

  1. Oxford University Centre for Integrative Neuroimaging, FMRIB, Nuffield Department of Clinical Neurosciences, University of Oxford,Oxford, UK
  2. Radboud University, Donders Institute for Brain, Cognition and Behaviour,Nijmegen, the Netherlands
  3. Department of Engineering, University of Cambridge,Cambridge, UK
  4. Department of Psychiatry, University of Oxford, Warneford Hospital,Oxford, UK
  5. Oxford Health NHS Foundation Trust, Warneford Hospital,Oxford, UK
  6. Medical Research Council Brain Network Dynamics Unit, Nuffield Department of Clinical Neurosciences, University of Oxford,Oxford, UK
  7. Medical Research Council Centre of Research Excellence in Restorative Neural Dynamics, University of Oxford,Oxford, UK
  8. German Center for Neurodegenerative Diseases (DZNE),Magdeburg, Germany
  9. Institute for Cognitive Neurology and Dementia Research, Otto-von-Guericke University,Magdeburg, Germany
  10. Psychological Neuroscience Lab, Psychology Researcher Centre (CIPsi), School of Psychology, University of Minho, Campus de Gualtar,Braga, Portugal
  11. Institute of Science and Technology Austria,Klosterneuburg, Austria
  12. Department of Experimental Psychology, University of Oxford,Oxford, UK
Journal: Nature communications, volume 17, issue 1, article 3961
Dates: received 27 March 2025; accepted 2 March 2026; published online 14 March 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1038/s41467-026-70659-x · PMID 41832186 · PMCID PMC7618954 · OpenAlex W7135408181
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: computational modeling (no new data) (modality), human (organism), cognitive (subfield)
Methods: Statistics, Preprocessing, Connectivity, Machine learning, fMRI & imaging, Single-unit activity, calcium imaging, Physiology & signal measures
Keywords: Learning and memory, Hippocampus, Cortex, Network models
MeSH: Cognition*, Hippocampus*, Norepinephrine*, Brain Mapping, Humans, Learning, Memory, Neuronal Plasticity (* major topic)
Topic: Memory and Neural Mechanisms (Cognitive Neuroscience, Neuroscience), according to OpenAlex
Funding: UKRI EPSRC/MRC (EP/L016052/1), Cambridge Trust, Trinity Henry Barlow Scholarship, Trinity Hall Brockhouse Scholarship, UKRI Future Leaders Fellowship (MR/W008939/1), Wellcome Institutional Strategic Support Fund, Medical Research Council (MR/W01971X/1), NIHR Oxford Health Biomedical Research Centre (NIHR203316). Wellcome Trust (203139/A/16/Z)
Citations: not cited yet (Europe PMC); 83 references in the paper

Abstract

The mammalian brain organises knowledge about entities in the world and relationships between them using cognitive maps. When forming a cognitive map, there is a necessary trade-off between extending the map to make novel inferences, and storing a veridical copy of past experience. However, the neural mechanisms that control this trade-off remain unknown. Using a cross-scale approach that combines a pharmacological intervention in humans with neural network modelling, we show that the neuromodulator noradrenaline elicits a significant ‘spread of association’ across hippocampal cognitive maps. This neural spread of association can be explained by changes in synaptic plasticity that predict overgeneralisation in behaviour. Thus, elevated noradrenaline during learning increases the ‘smoothing kernel’ for plasticity across the cognitive map, allowing disparate memories to become linked and distorted.

Reproduced under the paper's license (CC BY), from the paper cited above.

Repository

Its files are read in the Code ↔ Paper reader above.

p-rakriti/koolschijn_et_al

License: none: the authors keep all their rights
State: the link answers, verified on 30 September 2026
Evidence: files inventoried
Commit: c4686b447cf3fcb012e9bae2622c089263dc598e, 8 April 2025
Languages: C++ (3)
Size: 5 files, 3 scripts
Software Heritage: not archived
Found in: “Code availability”
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Availability: 1 check, the latest on 30 September 2026: the link answers
  • 30 September 2026: the link answers
3 files

Code availability

Upon publication the code used for data analysis will be available from the MRC BNDU Data Sharing Platform via 10.60964/BNDU-Z7QY-JP81. Upon publication the code used for the spiking neural network model will be available from the MRC BNDU Data Sharing Platform via 10.60964/BNDU-9B3H-A961, and is also available on https://github.com/p-rakriti/koolschijn_et_al.

Reproduced under the paper's license (CC BY), from the paper cited above.

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;
  • 3 scripts, each with its path and the digest of its content;
  • no match between paragraphs and code yet;
  • 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

No dataset and no data link were found in the paper.

Data availability

All data generated and analysed during this study are included in the manuscript and supporting files. Source data are provided with this paper. Group-level data is available from the MRC BNDU Data Sharing Platform via 10.60964/BNDU-Z7QY-JP81. The following dataset was generated: fMRI data. MRS data. Pupillometry data. Behavioural data Source data are provided with this paper.

Reproduced under the paper's license (CC BY), from the paper cited above.

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, 30 September 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 9 authors, 4 keywords, 8 MeSH terms, 1 funder, 80 references.

Cite

This paper

Koolschijn, R. S., Parthasarathy, P., Browning, M., Przygodda, X., Capitão, L. P., Clarke, W. T., Vogels, T. P., O’Reilly, J. X., & Barron, H. C. (2026). Noradrenaline causes a spread of association in the hippocampal cognitive map. Nature communications, 17(1), 3961. https://doi.org/10.1038/s41467-026-70659-x

BibTeX

@article{koolschijn2026noradrenaline,
author = {Koolschijn, Renée S. and Parthasarathy, Prakriti and Browning, Michael and Przygodda, Xenia and Capitão, Liliana P. and Clarke, William T. and Vogels, Tim P. and O’Reilly, Jill X. and Barron, Helen C.},
title = {{Noradrenaline causes a spread of association in the hippocampal cognitive map}},
journal = {Nature communications},
year = {2026},
month = mar,
volume = {17},
number = {1},
pages = {3961},
publisher = {Nature Publishing Group},
issn = {2041-1723},
doi = {10.1038/s41467-026-70659-x},
url = {https://doi.org/10.1038/s41467-026-70659-x},
pmid = {41832186},
pmcid = {PMC7618954}
}

RIS

TY - JOUR
AU - Koolschijn, Renée S.
AU - Parthasarathy, Prakriti
AU - Browning, Michael
AU - Przygodda, Xenia
AU - Capitão, Liliana P.
AU - Clarke, William T.
AU - Vogels, Tim P.
AU - O’Reilly, Jill X.
AU - Barron, Helen C.
TI - Noradrenaline causes a spread of association in the hippocampal cognitive map
T2 - Nature communications
J2 - Nat Commun
PY - 2026
DA - 2026/03/14
VL - 17
IS - 1
SP - 3961
SN - 2041-1723
PB - Nature Publishing Group
DO - 10.1038/s41467-026-70659-x
UR - https://doi.org/10.1038/s41467-026-70659-x
LA - en
ER -

CSL-JSON

{
"id": "10.1038/s41467-026-70659-x",
"type": "article-journal",
"title": "Noradrenaline causes a spread of association in the hippocampal cognitive map",
"container-title": "Nature communications",
"author": [
{
"family": "Koolschijn",
"given": "Renée S."
},
{
"family": "Parthasarathy",
"given": "Prakriti"
},
{
"family": "Browning",
"given": "Michael"
},
{
"family": "Przygodda",
"given": "Xenia"
},
{
"family": "Capitão",
"given": "Liliana P."
},
{
"family": "Clarke",
"given": "William T."
},
{
"family": "Vogels",
"given": "Tim P."
},
{
"family": "O’Reilly",
"given": "Jill X."
},
{
"family": "Barron",
"given": "Helen C."
}
],
"container-title-short": "Nat Commun",
"volume": "17",
"issue": "1",
"page": "3961",
"DOI": "10.1038/s41467-026-70659-x",
"PMID": "41832186",
"PMCID": "PMC7618954",
"ISSN": "2041-1723",
"publisher": "Nature Publishing Group",
"URL": "https://doi.org/10.1038/s41467-026-70659-x",
"language": "en",
"issued": {
"date-parts": [
[
2026,
3,
14
]
]
}
}

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.1038/s41562-026-02533-1 [code]
Fluctuations in arousal reflect latent state transitions that facilitate behavioural optimization.
Journal: Nature human behaviour
In common: cognitive, 10 references
[2] doi:10.1038/s41467-026-73865-9 [code]
Histamine shapes the neurocomputational dynamics of human learning.
Journal: Nature communications
In common: cognitive, 2 authors
[3] doi:10.1371/journal.pone.0355165 [code]
Pupillary dynamics during hands-off L2 driving and transitions of control under high cognitive load.
Journal: PloS one
In common: cognitive, 6 references
[4] doi:10.1038/s42256-026-01254-4 [code]
Neural sampling from cognitive maps enables goal-directed imagination and planning.
Journal: Nature machine intelligence
In common: computational modeling (no new data), cognitive, 5 references
[5] doi:10.1038/s41467-025-63281-w [code]
Trait anxiety is associated with reduced reward-related replay at rest
Journal: n/a
In common: cognitive, 5 references
[6] doi:10.1073/pnas.2536535123 [code]
Orbitofrontal noradrenaline supports adaptive learning-rate adjustment in probabilistic reversal learning.
Journal: Proceedings of the National Academy of Sciences of the United States of America
In common: cognitive, 5 references
[7] doi:10.1016/j.cub.2026.05.068 [code]
An abstract relational map emerges in the human medial prefrontal cortex with consolidation.
Journal: Current biology : CB
In common: 5 references
[8] doi:10.1038/s41467-026-74822-2 [code]
A likelihood-based method for identifying replay from spike sequences.
Journal: Nature communications
In common: 5 references
[9] doi:10.7554/elife.108023 [code]
Challenges in replay detection by TDLM in post-encoding resting state.
Journal: eLife
In common: 5 references
[10] doi:10.1038/s41593-026-02345-6 [code]
Human hippocampal ripples tune cortical responses based on predicted uncertainty.
Journal: Nature neuroscience
In common: cognitive, 4 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.