OSCR

A synaptic mechanism for encoding the learned value of action-derived safety.

Code ↔ Paper

1 match 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 1 match
  1. [1] § Methods › Fiber photometry ↔ Codes/Whole_Trial_Photometry/Whole Trial GCaMP.ipynb, lines 75–216 · score 0.52 · cue onset, linear, autofluorescence, GCaMP, fit, photometry

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

Jupyter notebook · 258 lines · 11 KB · no license · 1 match

  1. # %% [markdown]
  2. # # Calculate GCaMP DFF
  3. # %% [markdown]
  4. # ### 1) Read in the autofluorescence, GCaMP, and shock csv files and return auto, gcamp, and shock pandas DataFrames.
  5. # %%
  6. #import packages
  7. import os as os #os
  8. import pandas as pd #pandas
  9. import numpy as np #numpy
  10. import scipy as scipy #scipy
  11. import matplotlib.lines as mlines #matplotlib
  12. import matplotlib.pyplot as plt #matplotlib
  13. plt.style.use('ggplot') #emulate ggplot from R
  14. #% matplotlib inline
  15. #view plots in jupyter notebook
  16. # %% [markdown]
  17. # #### *User Input Required Below*
  18. # %%
  19. #***change working directory, ID, session, and number of trials****
  20. #***These are the only details you need to change to run the whole script***
  21. #IMPORTANT - to change working directory, use os.chdir(path)
  22. os.chdir('C:\\')
  23. working_directory = os.getcwd()
  24. print(working_directory)
  25. ID = ''
  26. session = ''
  27. # %% [markdown]
  28. # #### *User Input Required Below*
  29. # %%
  30. #read in the autofluorescence, GCaMP, and cue csv files and return auto, gcamp, and shock pandas DataFrames
  31. #IMPORTANT - to change file name, format as ('file name.csv')
  32. auto = pd.read_csv(ID + '_' + session +'_AF.csv')
  33. gcamp = pd.read_csv(ID + '_' + session + '_GC.csv')
  34. shock = pd.read_csv(ID + '_' + session + '_cue.csv')
  35. # %% [markdown]
  36. # ### 2) Combine the time column and the auto, gcamp, and shock d0 columns to create a master pandas DataFrame. Write out the master pandas DataFrame as a csv file to the working directory.
  37. # %%
  38. #make auto, gcamp, and shock column headings lowercase
  39. auto.columns = auto.columns.str.lower()
  40. gcamp.columns = gcamp.columns.str.lower()
  41. shock.columns = shock.columns.str.lower()
  42. #absolute value of shock d0 column values
  43. shock.d0 = shock.d0.abs()
  44. #combine time column and auto, gcamp, and shock d0 columns to create master pandas DataFrame
  45. master = pd.concat([auto['time'], auto['d0'], gcamp['d0'], shock['d0']], axis = 1, keys = ['time', 'auto', 'gcamp', 'shock'])
  46. #write out master as a csv file to working directory
  47. master.to_csv(ID + '_' + session + '_master.csv')
  48. # %% [markdown]
  49. # ### 3) Determine the data range for the calculations. Create a master_input pandas DataFrame.
  50. # %%
  51. #determine the rows in which shock occurs
  52. shock_rows = master.loc[master.shock > .75].index[:].tolist()
  53. #determine the rows in which shock onset occurs
  54. shock_onset_rows = [shock_rows[0]]
  55. for i in range(1, len(shock_rows)):
  56. if shock_rows[i] > shock_rows[i - 1] + 1:
  57. shock_onset_rows.append(shock_rows[i])
  58. file_num = 1 #set file number to start at 1 initially
  59. shock_onset_rows = shock_onset_rows[0:len(shock_rows)]
  60. print('shock_onset_rows =' , shock_onset_rows)
  61. # %% [markdown]
  62. # #### *User Input Required Below*
  63. # %%
  64. for num in shock_onset_rows:
  65. #create shock_onset
  66. shock_onset = num #IMPORTANT - can change number to any of the numbers in shock_onset_rows
  67. if shock_onset in shock_onset_rows:
  68. print('shock_onset =', shock_onset)
  69. else:
  70. raise ValueError('shock_onset not found in shock_onset_rows')
  71. #create begin_input
  72. begin_input = shock_onset - 120 #IMPORTANT - can change number to any number of rows before shock onset
  73. print('begin_input =', begin_input)
  74. #create last_row
  75. last_row = len(master) - shock_onset - 1
  76. #create end_inputD7_Ext3_091021_AF
  77. end_input = shock_onset + 240 #IMPORTANT - can change number to any number of rows after shock onset or to last_row for the last row in the data set
  78. print('end_input =', end_input)
  79. #create file name for future files
  80. file_num_str = str(file_num) #change file number to string so it can be added to the file name
  81. file_name = ID + '_' + session + '_Stim_T'+ file_num_str #IMPORTANT - to change file name, format as 'file name8
  82. #create master_input pandas DataFrame
  83. master_input = master[begin_input:end_input + 1]
  84. ##### 4) Determine auto/gcamp linear trendline equations. Create auto/gcamp scatter plots with auto/gcamp linear trendlines. Save the auto/gcamp plots as PDFs to the working directory.
  85. #create master_trendlines pandas DataFrame
  86. master_trendlines = master_input.loc[begin_input:shock_onset - 1]
  87. #reset master_trendlines row index
  88. master_trendlines = master_trendlines.reset_index(drop = True)
  89. #create x_master_trendlines (ranging from 1 to # rows in master_trendlines) pandas DataFrame
  90. x_range_master_trendlines = master_trendlines.axes[0] - (master_trendlines.axes[0][0] - 1)
  91. x_master_trendlines = pd.DataFrame({'x': x_range_master_trendlines})
  92. #add x_master_trendlines to master_trendlines
  93. master_trendlines = pd.concat([x_master_trendlines, master_trendlines], axis=1, join='inner')
  94. #determine auto linear trendline equation
  95. from pylab import *
  96. (a, b) = polyfit(master_trendlines.x, master_trendlines.auto, 1)
  97. auto_linear_trendline_equation = 'y = ' + str(round(a, 5)) + 'x + ' + str(round(b, 5))
  98. #create auto scatter plot with auto linear trendline
  99. plt.scatter(master_trendlines.x, master_trendlines.auto, color = 'blue', s = 10)
  100. auto_trendline_values = polyval([a,b], master_trendlines.x)
  101. plt.plot(master_trendlines.x, auto_trendline_values, linewidth = 3, color = 'red')
  102. plt.title(auto_linear_trendline_equation, fontsize = 10, y = 0.9)
  103. plt.xlabel('x')
  104. plt.ylabel('autofluorescence')
  105. #save auto scatter plot as PDF to working directory
  106. plt.savefig('auto_plot_' + file_name + '.pdf')
  107. #determine gcamp linear trendline equation
  108. from pylab import *
  109. (c, d) = polyfit(master_trendlines.x, master_trendlines.gcamp, 1)
  110. gcamp_linear_trendline_equation = 'y = ' + str(round(c, 5)) + 'x + ' + str(round(d, 5))
  111. #create gcamp scatter plot with gcamp linear trendline
  112. plt.scatter(master_trendlines.x, master_trendlines.gcamp, color = 'blue', s = 10)
  113. gcamp_trendline_values = polyval([c,d], master_trendlines.x)
  114. plt.plot(master_trendlines.x, gcamp_trendline_values, linewidth = 3, color = 'red')
  115. plt.title(gcamp_linear_trendline_equation, fontsize = 10, y = 0.9)
  116. plt.xlabel('x')
  117. plt.ylabel('gcamp')
  118. #save gcamp scatter plot as PDF to working directory
  119. plt.savefig('gcamp_plot_' + file_name + '.pdf')
  120. #create master_calculations pandas DataFrame
  121. master_calculations = master_input
  122. #reset master_calculations row index
  123. master_calculations = master_calculations.reset_index(drop = True)
  124. #create x_master_calculations (ranging from 1 to # rows in master_calculations) pandas DataFrame
  125. x_range_master_calculations = master_calculations.axes[0] - (master_calculations.axes[0][0] - 1)
  126. x_master_calculations = pd.DataFrame({'x': x_range_master_calculations})
  127. #add x_master_calculations to master_calculations
  128. master_calculations = pd.concat([x_master_calculations, master_calculations], axis = 1, join = 'inner')
  129. #create auto_trendline_y pandas DataFrame
  130. auto_y_list = []
  131. for x in x_range_master_calculations:
  132. y = a*x + b
  133. auto_y_list.append(y)
  134. auto_y_array = np.array(auto_y_list)
  135. auto_trendline_y = pd.DataFrame({'auto_trendline_y': auto_y_array})
  136. #add auto_trendline_y to master_calculations
  137. master_calculations = pd.concat([master_calculations, auto_trendline_y], axis = 1, join = 'inner')
  138. #create gcamp_trendline_y pandas DataFrame
  139. gcamp_y_list = []
  140. for x in x_range_master_calculations:
  141. y = a*x + d
  142. gcamp_y_list.append(y)
  143. gcamp_y_array = np.array(gcamp_y_list)
  144. gcamp_trendline_y = pd.DataFrame({'gcamp_trendline_y': gcamp_y_array})
  145. #add gcamp_trendline_y to master_calculations
  146. master_calculations = pd.concat([master_calculations, gcamp_trendline_y], axis = 1, join = 'inner')
  147. #subtract auto_trendline_y from auto to create auto_fit column in master_calculations
  148. master_calculations['auto_fit'] = master_calculations['auto'] - master_calculations['auto_trendline_y']
  149. #subtract gcamp_trendline_y from gcamp to create gcamp_fit column in master_calculations
  150. master_calculations['gcamp_fit'] = master_calculations['gcamp'] - master_calculations['gcamp_trendline_y']
  151. #add gcamp_trendline y-intercept to auto_fit to create auto_fit column in master_calculations
  152. master_calculations['auto_final'] = d + master_calculations['auto_fit']
  153. #add gcamp_trendline y-intercept to gcamp_fit to create gcamp_fit column in master_calculations
  154. master_calculations['gcamp_final'] = d + master_calculations['gcamp_fit']
  155. #calculate delta f/f (dff) and create dff column in master_calculations
  156. master_calculations['dff']= ((master_calculations['gcamp_final'] - master_calculations['auto_final'])/master_calculations['auto_final'])*100
  157. #write out master_calculations as a csv file to working directory
  158. master_calculations.to_csv('master_calculations_' + file_name + '.csv')
  159. #determine the rows in which shock occurs
  160. shock_rows_dff = master_calculations.loc[master_calculations.shock < 1].index[:].tolist()
  161. #determine the rows in which shock onset occurs
  162. shock_onset_rows_dff = [shock_rows_dff[0]]
  163. for i in range(2, len(shock_rows_dff)):
  164. if shock_rows_dff[i] > shock_rows_dff[i - 1] + 1:
  165. shock_onset_rows_dff.append(shock_rows_dff[i])
  166. #determine the times in which shock onset occurs
  167. shock_onset_time_dff = list(master_calculations.time.loc[shock_onset_rows_dff])
  168. #create dff line plot
  169. fig, ax = plt.subplots()
  170. ax.plot(master_calculations.time, master_calculations.dff, color = 'blue')
  171. ax.set_xlabel('time (sec)')
  172. ax.set_ylabel('delta f/f')
  173. x = 0
  174. while x < len(shock_onset_time_dff):
  175. ax.annotate(' ', xy =(shock_onset_time_dff[x], min(master_calculations.dff)), arrowprops = dict(facecolor = 'black', shrink = 0.05))
  176. x = x + 1
  177. arrow = mlines.Line2D([], [], color = 'black', marker = '^', markersize = 12, label = 'cue onset')
  178. ax.legend(handles = [arrow])
  179. #while x < len(shock_onset_time_dff):
  180. #ax.annotate(' ', xy =([shock_onset_time_dff[x] + 30], min(master_calculations.dff)), arrowprops = dict(facecolor = 'yellow', shrink = 0.05))
  181. #x = x + 1
  182. #arrow2 = mlines.Line2D([], [], color = 'yellow', marker = '^', markersize = 12, label = 'cue offset')
  183. #ax.legend(handles = [arrow, arrow2])
  184. #save dff line plot as PDF to working directory
  185. fig.savefig('dff_plot_' + file_name + '.pdf')
  186. #Necessary for iterative code
  187. matplotlib.pyplot.close('all')
  188. file_num += 1 #increase file number by 1 for next file
  189. # %%
  190. #Concatenation step
  191. #Make sure you have number_trials set to the correct number at the beginning of the script
  192. #number_trials = [x+1 for x in range(0,len(shock_rows))] #change range number to reflect your number of trials
  193. #print(number_trials)
  194. rows = [x+1 for x in range(0,len(shock_onset_rows))] #set at beginning of script
  195. file_name = 'master_calculations_' + ID + '_' + session + '_Stim_T' + str(rows[0]) + '.csv' #Changes file name for each animal based on settings at begining
  196. df = pd.read_csv(file_name)
  197. df.drop('Unnamed: 0', axis=1, inplace=True)
  198. df.head(3)
  199. total_dff = pd.DataFrame()
  200. total_dff[str(rows[0])] = df.dff
  201. total_dff.head(3)
  202. for row in rows:
  203. file_name = 'master_calculations_' + ID + '_' + session + '_Stim_T' + str(row) + '.csv' #Changes file name for each animal
  204. df = pd.read_csv(file_name)
  205. df.drop('Unnamed: 0', axis=1, inplace=True)
  206. total_dff[str(row)] = df.dff
  207. total_dff.head(5)
  208. total_dff['avg'] = total_dff.mean(axis=1)
  209. total_dff.to_csv(ID + '_' + session + '_final.csv') #Save to new file.
  210. # %%
  211. print(d)
  212. # %%
  213. # %%
  214. # %%

Whole Trial GCaMP.ipynb at commit ab93d0d, no license · at the source

Overview

Authors: Emma E Macdonald1, Jun Ma1,2, Di Liu1, Kai Yu1, Rachel A Walker1, Michael E Authement3, Yan Leng1, Hannah C Goldbach3, Guochuan Li4, Yulong Li4, Veronica A Alvarez3, Bruno B Averbeck5, Mario A Penzo1
  1. Section on the Neural Circuits of Emotion and Motivation, National Institute of Mental Health, Bethesda, MD USA
  2. Present Address: Jiangsu Province Key Laboratory of Anesthesiology, Xuzhou Medical University, Xuzhou, China
  3. Section on Neurobiology of Compulsive Behaviors, National Institute of Mental Health, Bethesda, MD USA
  4. State Key Laboratory of Membrane Biology, School of Life Sciences, Peking University, Beijing, China
  5. Laboratory of Neuropsychology, National Institute of Mental Health, Bethesda, MD USA
Journal: Nature communications, volume 17, issue 1, article 4916
Dates: received 2 September 2025; accepted 25 May 2026; published online 4 June 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1038/s41467-026-73906-3 · PMID 42243099 · PMCID PMC13237380 · OpenAlex W4412951732
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: mouse (organism), cellular / molecular (subfield)
Methods: Statistics, Preprocessing, Evoked potentials, Single-unit activity, calcium imaging
Keywords: Motivation, Cellular neuroscience, Neural circuits, Molecular neuroscience
MeSH: Avoidance Learning*, Midline Thalamic Nuclei*, Nucleus Accumbens*, Synapses*, Animals, Cholinergic Neurons, Dopamine, Interneurons, Learning, Male, Mice, Mice, Inbred C57BL, Motivation, Neural Pathways, Neuronal Plasticity, Receptors, AMPA (* major topic)
Topic: Neural and Behavioral Psychology Studies (Cognitive Neuroscience, Neuroscience), according to OpenAlex
Funding: Intramural NIH HHS (ZIA MH002928); U.S. Department of Health &amp; Human Services | National Institutes of Health (ZIA MH002928, 1ZIAMH002950)
Citations: cited by 1 paper (Europe PMC); 90 references in the paper

Abstract

Adaptive behavior requires that behaviorally relevant signals gain access to neural circuits guiding action. The thalamus has long been proposed to regulate information flow to cortical and subcortical systems, yet whether it also tracks internally generated goal signals remains unclear. Here, we show that neurons in the paraventricular thalamus (PVT) projecting to the nucleus accumbens (NAc) encode the motivational value of safety during active avoidance. As mice learn to avoid threat, PVT→NAc neurons develop a signal that emerges selectively at successful avoidance, is experience-dependent, and diminishes following outcome devaluation. Selective silencing of the PVT→NAc pathway at safety onset reduces the motivational value assigned to safety without impairing action–outcome learning. Mechanistically, PVT input engages cholinergic interneurons (CIN) in the NAc to regulate dopamine release via synaptic potentiation mediated by GluA2-lacking AMPA receptors at PVT–CIN synapses. Disrupting this plasticity reduces the motivational impact of safety. These findings identify a thalamostriatal mechanism through which learned goals gain stable access to motivational circuitry.

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

Repositories

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

Penzolab/Data-analysis-of-Two-way-active-avoidance-task

License: none: the authors keep all their rights
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Commit: 41e4ef6a53c8cce2a4f82639d365654027c50e5f, 9 July 2021
Languages: R (13)
Size: 38 files, 13 scripts
Software Heritage: not archived
Found in: “Code availability”
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: tidyverse (1 file)
Availability: 1 check, the latest on 27 September 2026: the link answers
  • 27 September 2026: the link answers
13 files

Zenodo 12707790

License: CC-BY-4.0
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Size: 1 file
Software Heritage: not checked
Found in: “Code availability”
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: Matplotlib (1 file), NumPy (1 file), pandas (1 file), SciPy (1 file), tidyverse (1 file)
Availability: 1 check, the latest on 27 September 2026: the link answers (HTTP 200)
  • 27 September 2026: the link answers (HTTP 200)
14 files
At the source:

laxace33/penzo-lab-files-for-ma-omalley-et-al-2024

License: none: the authors keep all their rights
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Commit: ab93d0db07a305fd61a10a4edb86cad45145e57e, 10 July 2024
Languages: R (13), Jupyter (1)
Size: 38 files, 14 scripts
Software Heritage: not archived
Found in: the Zenodo archive record
Holds: 1 notebook
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: Matplotlib (1 file), NumPy (1 file), pandas (1 file), SciPy (1 file), tidyverse (1 file)
Availability: 1 check, the latest on 27 September 2026: the link answers
  • 27 September 2026: the link answers
14 files

Code availability

R code used to analyze active avoidance behavior, and photometric signal is available at the following repository: https://github.com/Penzolab/Data-analysis-of-Two-way-active-avoidance-task.git. 10.5281/zenodo.12707790.

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:

  • 3 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
  • 41 scripts, each with its path and the digest of its content;
  • 1 match 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

Data Availability Statement

The datasets generated in this study have been deposited in the Zenodo database under accession code DIO:10.5281/zenodo.20031828. All relevant processed data are also provided in the Supplementary Information/Source Data file. The datasets used in this study are fully publicly accessible without restriction. Source data are provided with this paper.

R code used to analyze active avoidance behavior, and photometric signal is available at the following repository: https://github.com/Penzolab/Data-analysis-of-Two-way-active-avoidance-task.git. 10.5281/zenodo.12707790.

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

Recorded: type, language, journal, volume, issue, pages, dates, 13 authors, 4 keywords, 16 MeSH terms, 2 funders, 88 references.

Cite

This paper

Macdonald, E. E., Ma, J., Liu, D., Yu, K., Walker, R. A., Authement, M. E., Leng, Y., Goldbach, H. C., Li, G., Li, Y., Alvarez, V. A., Averbeck, B. B., & Penzo, M. A. (2026). A synaptic mechanism for encoding the learned value of action-derived safety. Nature communications, 17(1), 4916. https://doi.org/10.1038/s41467-026-73906-3

BibTeX

@article{macdonald2026synaptic,
author = {Macdonald, Emma E and Ma, Jun and Liu, Di and Yu, Kai and Walker, Rachel A and Authement, Michael E and Leng, Yan and Goldbach, Hannah C and Li, Guochuan and Li, Yulong and Alvarez, Veronica A and Averbeck, Bruno B and Penzo, Mario A},
title = {{A synaptic mechanism for encoding the learned value of action-derived safety}},
journal = {Nature communications},
year = {2026},
month = jun,
volume = {17},
number = {1},
pages = {4916},
publisher = {Nature Publishing Group},
issn = {2041-1723},
doi = {10.1038/s41467-026-73906-3},
url = {https://doi.org/10.1038/s41467-026-73906-3},
pmid = {42243099},
pmcid = {PMC13237380}
}

RIS

TY - JOUR
AU - Macdonald, Emma E
AU - Ma, Jun
AU - Liu, Di
AU - Yu, Kai
AU - Walker, Rachel A
AU - Authement, Michael E
AU - Leng, Yan
AU - Goldbach, Hannah C
AU - Li, Guochuan
AU - Li, Yulong
AU - Alvarez, Veronica A
AU - Averbeck, Bruno B
AU - Penzo, Mario A
TI - A synaptic mechanism for encoding the learned value of action-derived safety
T2 - Nature communications
J2 - Nat Commun
PY - 2026
DA - 2026/06/04
VL - 17
IS - 1
SP - 4916
SN - 2041-1723
PB - Nature Publishing Group
DO - 10.1038/s41467-026-73906-3
UR - https://doi.org/10.1038/s41467-026-73906-3
LA - en
ER -

CSL-JSON

{
"id": "10.1038/s41467-026-73906-3",
"type": "article-journal",
"title": "A synaptic mechanism for encoding the learned value of action-derived safety",
"container-title": "Nature communications",
"author": [
{
"family": "Macdonald",
"given": "Emma E"
},
{
"family": "Ma",
"given": "Jun"
},
{
"family": "Liu",
"given": "Di"
},
{
"family": "Yu",
"given": "Kai"
},
{
"family": "Walker",
"given": "Rachel A"
},
{
"family": "Authement",
"given": "Michael E"
},
{
"family": "Leng",
"given": "Yan"
},
{
"family": "Goldbach",
"given": "Hannah C"
},
{
"family": "Li",
"given": "Guochuan"
},
{
"family": "Li",
"given": "Yulong"
},
{
"family": "Alvarez",
"given": "Veronica A"
},
{
"family": "Averbeck",
"given": "Bruno B"
},
{
"family": "Penzo",
"given": "Mario A"
}
],
"container-title-short": "Nat Commun",
"volume": "17",
"issue": "1",
"page": "4916",
"DOI": "10.1038/s41467-026-73906-3",
"PMID": "42243099",
"PMCID": "PMC13237380",
"ISSN": "2041-1723",
"publisher": "Nature Publishing Group",
"URL": "https://doi.org/10.1038/s41467-026-73906-3",
"language": "en",
"issued": {
"date-parts": [
[
2026,
6,
4
]
]
}
}

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/s41467-026-77168-x [code]
Cholinergic-dependent dopamine signals in mouse dorsomedial striatum are regulated by frontal but not sensory cortices.
Journal: Nature communications
In common: pandas, SciPy, Matplotlib, 1 other tool, mouse, 13 references, 2 authors
[2] doi:10.7554/elife.107670 [code]
Paraventricular thalamus hyperactivity mediates stress-induced sensitization of unlearned fear but not stress-enhanced fear learning (SEFL).
Journal: eLife
In common: mouse, 7 references
[3] doi:10.1038/s41467-026-71426-8 [code]
Distinct modes of dopamine modulation on striatopallidal synaptic transmission.
Journal: Nature communications
In common: pandas, SciPy, Matplotlib, 1 other tool, mouse, cellular / molecular, 2 references, author Yulong Li
[4] doi:10.7554/elife.102189
Thalamo-accumbal circuit adaptations following extended oxycodone abstinence.
Journal: eLife
In common: 7 references
[5] doi:10.1126/sciadv.aee6579 [code]
Dopamine D2 receptors bypass canonical signaling to directly tune NMDA receptor function and aversive learning.
Journal: Science advances
In common: mouse, cellular / molecular, 6 references
[6] doi:10.1021/acschemneuro.6c00342
5-HT4 Receptor Ligand RS67333 Modulates Striatal Acetylcholine and Dopamine Release via the Inhibition of Acetylcholinesterase.
Journal: ACS chemical neuroscience
In common: mouse, cellular / molecular, 6 references
[7] doi:10.1038/s41593-026-02379-w
Norepinephrine and dopamine sensor crosstalk depends on local innervation density.
Journal: Nature neuroscience
In common: mouse, cellular / molecular, 3 references, author Yulong Li
[8] doi:10.1038/s41467-026-71481-1 [code]
Sex-specific increased reactivity of the PVT and prolonged PVT→CeA circuit engagement following psilocin administration.
Journal: Nature communications
In common: 6 references
[9] doi:10.1016/j.celrep.2026.117298 [code]
Midbrain endocannabinoids actuate dopamine-based action selection.
Journal: Cell reports
In common: tidyverse, pandas, Matplotlib, mouse, cellular / molecular, 4 references
[10] doi:10.1038/s41467-026-71923-w [code]
Integrating optogenetic fMRI and spatial transcriptomics to reveal circuit-specific gene signatures in fronto- and hippo-thalamic networks.
Journal: Nature communications
In common: tidyverse, pandas, SciPy, 2 other tools, mouse, 2 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.