OSCR

A prefrontal cortex-lateral hypothalamus circuit controls stress-driven increased food intake.

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] § Method › In vivo electrophysiology recordings › Recording single-unit activity of prefrontal cortical neurons ↔ preprocessing/kwik2dat.m, lines 1 to 24 · score 0.57 · Open Ephys, Analog, GUI, synchronized, TTL, filtered · Report a mismatch

Paper

Loaded from Europe PMC by your browser; OSCR does not store it: doi.org · Europe PMC

The paper is loaded when this pane is shown.

The authors' code

MATLAB · 327 lines · 12 KB · no license · 1 match

  1. function kwik2dat(kwik_path,save_path,sync_channels,sync_input,local_copy,subtract_light)
  2. % kwik2dat(kwik_path,save_path,sync_channel,sync_input)
  3. % IN PROGRESS NOTES: started to set up to load in chunks (by channel for
  4. % filtering/downsampling LFP, but then this couldn't do CAR...) didn't
  5. % finish
  6. %
  7. % Converts kwik format recorded from open-ephys into flat binary
  8. % Splits signal in two: one 500 Hz low-pass LFP(lfp.dat),
  9. % one cross-channel median subtracted spike (spikes.dat)
  10. % Also saves sync channel and parameters/header info
  11. %
  12. % kwk_path - path with kwik files
  13. % save_path - path to save the converted data
  14. %
  15. % sync_channels - TTL channels with synchronization input to save
  16. % (NOTE: input TTL channel as 1-indexed like in GUI, not 0-indexed like in
  17. % saved data)
  18. % sync_input - 'ttl' or 'adc', depending on digital/analog in of sync
  19. % local_copy - true/false, copies data to temporary local folder for faster reading
  20. % Kwik files from open ephys:
  21. % .raw.kwd: continuous data from all channels
  22. % .kwe: event data
  23. %% Make save directory
  24. if ~exist(save_path,'dir');
  25. mkdir(save_path)
  26. end
  27. %% Get filenames for each experiment in path
  28. kwd_dir = dir([kwik_path filesep '*.kwd']);
  29. kwd_filename = [kwik_path filesep kwd_dir(1).name];
  30. kwe_dir = dir([kwik_path filesep '*.kwe']);
  31. kwe_filename = [kwik_path filesep kwe_dir(1).name];
  32. settings_dir = dir([kwik_path filesep '*.xml']);
  33. settings_filename = [kwik_path filesep settings_dir(1).name];
  34. % Get index of electrophysiology channels in recordings
  35. kwik_settings = xml2struct(settings_filename);
  36. ephys_ch = find(cellfun(@(x) any(strfind(x.Attributes.name,'CH')), ...
  37. kwik_settings.SETTINGS.SIGNALCHAIN.PROCESSOR{1}.CHANNEL_INFO.CHANNEL));
  38. n_chan = length(ephys_ch);
  39. % Get sample rate and gain
  40. rec_info_locationInKWD = '/recordings/0';
  41. rec_info = h5info(kwd_filename,rec_info_locationInKWD);
  42. sample_rate_idx = cellfun(@(x) strcmp(x,'sample_rate'),{rec_info.Attributes.Name});
  43. sample_rate = double(rec_info.Attributes(sample_rate_idx).Value);
  44. ch_gain = cellfun(@(x) str2num(x.Attributes.gain), ...
  45. kwik_settings.SETTINGS.SIGNALCHAIN.PROCESSOR{1}.CHANNEL_INFO.CHANNEL(ephys_ch));
  46. if length(unique(ch_gain)) == 1
  47. ch_gain = unique(ch_gain);
  48. else
  49. error('Gains set differently for different channel: no contingency for this in param file yet')
  50. end
  51. % Location in the H5 file where the recordings are
  52. locationInKWD = '/recordings/0/data';
  53. % Load header info
  54. info = h5info(kwd_filename,locationInKWD);
  55. %% If local_copy selected, move data to temporary local drive for loading
  56. if local_copy
  57. disp('Copying data to local drive...')
  58. temp_path = 'C:\temp';
  59. temp_filename = [temp_path filesep kwd_dir(1).name];
  60. if ~exist(temp_path,'dir')
  61. mkdir(temp_path)
  62. end
  63. copyfile(kwd_filename,temp_filename);
  64. disp('Done');
  65. % set data filename to the local filename
  66. kwd_filename = temp_filename;
  67. end
  68. %% Save synchronization input as .mat
  69. disp('Getting and saving sync...');
  70. switch sync_input
  71. case 'ttl'
  72. % If sync was recorded as TTL through digital input
  73. kwe_channels_loc = '/event_types/TTL/events/user_data/event_channels';
  74. kwe_sample_stamp_loc = '/event_types/TTL/events/time_samples';
  75. kwe_value_loc = '/event_types/TTL/events/user_data/eventID';
  76. kwe_sample_rate_loc = '/recordings/0';
  77. ttl_channels = h5read(raw_kwd_filename,kwe_channels_loc);
  78. ttl_samplestamp = h5read(raw_kwd_filename,kwe_sample_stamp_loc);
  79. ttl_values = h5read(raw_kwd_filename,kwe_value_loc);
  80. ttl_sample_rate = double(h5readatt(raw_kwd_filename,kwe_sample_rate_loc,'sample_rate'));
  81. % Save seperately all TTL events that belong to the specified sync channel
  82. sync = struct('timestamps',cell(size(sync_channels)), ...
  83. 'values',cell(size(sync_channels)));
  84. for curr_sync = 1:length(sync_channels)
  85. sync_events = ttl_channels == (sync_channels(curr_sync)-1);
  86. sync(curr_sync).timestamps = double(ttl_samplestamp(sync_events))/ttl_sample_rate;
  87. sync(curr_sync).values = logical(ttl_values(sync_events));
  88. end
  89. sync_save_filename = [save_path filesep 'sync.mat'];
  90. save(sync_save_filename,'sync');
  91. case 'adc'
  92. % If sync was recorded through analog input
  93. sync = struct('timestamps',cell(size(sync_channels)), ...
  94. 'values',cell(size(sync_channels)));
  95. for curr_sync = 1:length(sync_channels)
  96. % Find the sync ADC channel index
  97. recorded_sync_ch = find(cellfun(@(x) strcmp(['ADC' num2str(sync_channels(curr_sync))],x.Attributes.name), ...
  98. kwik_settings.SETTINGS.SIGNALCHAIN.PROCESSOR{1}.CHANNEL_INFO.CHANNEL));
  99. % Load in the corresponding trace
  100. sync_trace = h5read(kwd_filename, locationInKWD,[recorded_sync_ch,1],[1,Inf]);
  101. % Binarize the sync trace based on half-max
  102. sync_trace = sync_trace >= max(sync_trace/2);
  103. sync_samplestamp = find((~sync_trace(1:end-1) & sync_trace(2:end)) | ...
  104. (sync_trace(1:end-1) & ~sync_trace(2:end)))+1;
  105. sync(curr_sync).timestamps = sync_samplestamp/sample_rate;
  106. sync(curr_sync).values = sync_trace(sync_samplestamp);
  107. end
  108. sync_save_filename = [save_path filesep 'sync.mat'];
  109. save(sync_save_filename,'sync');
  110. end
  111. %% Filter and save spikes and LFP
  112. % Load in each channel separately (because probably too large to load in at
  113. % once, can be faster if multiple but easier to just to all channels
  114. % individually for now)
  115. % NOTE: this involves a lot of tricks in writing the file, because it
  116. % writes in column order but should be written in row-order. This means
  117. % that the first sample for each channel is written separately, then all
  118. % other samples are written after n delayed bytes (and int16 = 2 bytes)
  119. %%%% Could alternatively make downsampled LFP signal first and then load
  120. %%%% back in and filter, but stuff from higher frequencies would be aliased
  121. %%%% in then
  122. disp('Loading channels, preprocessing, saving...');
  123. if local_copy
  124. lfp_save_filename = [temp_path filesep 'lfp.dat'];
  125. spikes_save_filename = [temp_path filesep 'spikes.dat'];
  126. else
  127. lfp_save_filename = [save_path filesep 'lfp.dat'];
  128. spikes_save_filename = [save_path filesep 'spikes.dat'];
  129. end
  130. lfp_fid = fopen(lfp_save_filename, 'w');
  131. spikes_fid = fopen(spikes_save_filename, 'w');
  132. % Figure out memory situation
  133. dmem = memory;
  134. memToLeaveFree = 4 * 2^30; % num of GB to keep free
  135. memToAllocate = dmem.MemAvailableAllArrays - memToLeaveFree;
  136. memToAllocate = max(0, memToAllocate);
  137. nint16s = memToAllocate/2;
  138. n_samples = info.Dataspace.Size(2);
  139. load_chans_n = floor(nint16s/n_samples);
  140. %%%%% AT THE MOMENT THE FILE WRITING ISNT SET UP FOR CHUNKS: SO JUST DO ALL
  141. load_chans_n = n_chan;
  142. %%%%%
  143. split_chans_n = [0,ceil(linspace(floor(n_chan/load_chans_n)-1,n_chan,floor(n_chan/load_chans_n)))];
  144. load_chans = mat2cell(ephys_ch,1,diff(split_chans_n));
  145. for curr_chan_chunk = 1:length(load_chans)
  146. curr_chans = load_chans{curr_chan_chunk};
  147. disp(['Channels ' num2str(curr_chans(1)) '-' num2str(curr_chans(end))]);
  148. curr_dat = h5read(kwd_filename,locationInKWD,[curr_chans(1),1],[length(curr_chans),Inf]);
  149. %%%%%%%%%%% TESTING
  150. if subtract_light
  151. disp('Subtracting mean-estimated light artifacts...');
  152. % get response to light onset/offset for each light
  153. exposure_time = mean([median(diff(sync(3).timestamps)),median(diff(sync(4).timestamps))]);
  154. surround_samples = -1:(floor(exposure_time*sample_rate)-1);
  155. % Define light sync channels
  156. light_sync = [3,4];
  157. % Go through illum 1/2 onset/offset, subtract
  158. for curr_sync = light_sync
  159. for curr_state = 0:1
  160. for curr_chan = 1:size(curr_dat,1)
  161. curr_chan_dat = curr_dat(curr_chan,:);
  162. % Define and pull samples
  163. pull_samples = bsxfun(@plus,round(sample_rate* ....
  164. sync(curr_sync).timestamps(sync(curr_sync).values == curr_state))',surround_samples);
  165. curr_samples = curr_chan_dat(pull_samples);
  166. % Get the mean light response, normalized to pre-light
  167. curr_artifact = int16(nanmean(bsxfun(@minus,curr_samples,curr_samples(:,surround_samples == -1)),1));
  168. curr_subtract = bsxfun(@minus,curr_samples,curr_artifact);
  169. % Replace values
  170. curr_chan_dat(pull_samples) = curr_subtract;
  171. curr_dat(curr_chan,:) = curr_chan_dat;
  172. end
  173. end
  174. end
  175. end
  176. %%%%%%%%%%% TESTING
  177. % Split the signal in two:
  178. % 1) LFP (low-pass filtered and downsampled)
  179. disp('Filtering, downsampling, saving LFP...');
  180. fprintf('%2d',0);
  181. lfp_cutoff = 500;
  182. [b, a] = butter(3, lfp_cutoff/sample_rate, 'low');
  183. lfp_downsamp = (sample_rate/lfp_cutoff)/2;
  184. % filter by channel individually to avoid increasing data size
  185. dat_lfp = zeros(length(curr_chans),ceil(n_samples/lfp_downsamp),'int16');
  186. for filt_chan = 1:length(curr_chans)
  187. curr_lfp = filter(b,a,single(curr_dat(filt_chan,:)'))';
  188. curr_lfp = curr_lfp(1:lfp_downsamp:end);
  189. dat_lfp(filt_chan,:) = int16(curr_lfp);
  190. clear curr_lfp
  191. fprintf('%c%c%2d',8,8,floor(100*filt_chan/length(curr_chans)));
  192. end
  193. fwrite(lfp_fid,dat_lfp,'int16');
  194. %%% Use this stuff later for chunking
  195. %fseek(lfp_fid,(curr_chan(1)-1)*2,'bof');
  196. %fwrite(lfp_fid,dat_lfp(:,1),'int16');
  197. %fwrite(lfp_fid,dat_lfp(:,2:end),'int16',(n_chan-1)*2);
  198. clear dat_lfp
  199. % 2) Spikes with median across channels subtracted
  200. disp('Subtracting common median and saving spikes...')
  201. fprintf('%2d',0);
  202. % (do this in chunks: median can destroy memory)
  203. max_t = 1e6;
  204. n_chunks = ceil(size(curr_dat,2)/max_t);
  205. t_chunks = round(linspace(1,size(curr_dat,2),n_chunks+1));
  206. for curr_chunk = 1:n_chunks
  207. curr_t = t_chunks(curr_chunk):t_chunks(curr_chunk+1);
  208. % Get channel offset by median across time
  209. curr_chunk_offset = median(curr_dat(:,curr_t),2);
  210. % Remove channel offset for chunk
  211. curr_dat(:,curr_t) = bsxfun(@minus,curr_dat(:,curr_t),curr_chunk_offset);
  212. % Get and remove median across channels
  213. curr_chunk_median = median(curr_dat(:,curr_t),1);
  214. curr_dat(:,curr_t) = bsxfun(@minus,curr_dat(:,curr_t),curr_chunk_median);
  215. % Add back offset so there aren't jumps if median drifts
  216. curr_dat(:,curr_t) = bsxfun(@plus,curr_dat(:,curr_t),curr_chunk_offset);
  217. fprintf('%c%c%2d',8,8,floor(100*curr_chunk/n_chunks));
  218. end
  219. fwrite(spikes_fid,curr_dat,'int16');
  220. %%% Use this stuff later for chunking
  221. %fseek(spikes_fid,(curr_chan(1)-1)*2,'bof');
  222. %fwrite(spikes_fid,curr_dat(:,1),'int16');
  223. %fwrite(spikes_fid,curr_dat(:,2:end),'int16',(n_chan-1)*2);
  224. end
  225. fclose(lfp_fid);
  226. fclose(spikes_fid);
  227. disp('Done');
  228. %% Save parameters/header information in separate file
  229. params = {'raw_path',['''' kwik_path '''']; ...
  230. 'n_channels',num2str(length(ephys_ch)); ...
  231. 'sample_rate',num2str(sample_rate); ...
  232. 'gain',num2str(ch_gain); ...
  233. 'lfp_cutoff',num2str(lfp_cutoff)};
  234. param_filename = [save_path filesep 'dat_params.txt'];
  235. formatSpec = '%s = %s\r\n';
  236. fid = fopen(param_filename,'w');
  237. for curr_param = 1:size(params,1)
  238. fprintf(fid,formatSpec,params{curr_param,:});
  239. end
  240. fclose(fid);
  241. %% If local copy, move local processed to server, delete local data copy
  242. if local_copy
  243. disp('Moving local copy to server...')
  244. movefile(lfp_save_filename,[save_path filesep 'lfp.dat']);
  245. movefile(spikes_save_filename,[save_path filesep 'spikes.dat']);
  246. delete(temp_filename)
  247. disp('Done')
  248. end

kwik2dat.m at commit fcea2b2, no license · at the source

Overview

Authors: L F Supiot1,2, K L Kooij1, W Du1, A A C Benschop1, A S J Nicolson1, R Haak1, I G Wolterink-Donselaar1, M C M Luijendijk1, D Riga1,2, R A H Adan1, R B Poorthuis1, F J Meye1
  1. Department of Translational Neuroscience, Brain Center, UMC Utrecht, Utrecht University, Utrecht, The Netherlands
  2. Department of Human Genetics, Center for Neurogenomics and Cognitive Research, Amsterdam University Medical Center, Amsterdam, The Netherlands
Institutions: Utrecht University (Netherlands); University Medical Center Utrecht (Netherlands); Amsterdam University Medical Centers (Netherlands)
Journal: Nature communications, volume 17, issue 1, article 4620
Dates: received 30 July 2024; accepted 9 March 2026; published online 31 March 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1038/s41467-026-71073-z · PMID 41912543 · PMCID PMC13199376 · OpenAlex W7143407544
Open access: gold, a free copy (OpenAlex)
Status: code verified (how the code is found and verified)
Categories: mouse (organism)
Methods: Spectral & time-frequency, Statistics, Preprocessing, Evoked potentials, Connectivity, Single-unit activity, calcium imaging
Keywords: Cellular neuroscience, Synaptic plasticity, Stress and resilience, Reward
MeSH: Eating*, Hypothalamic Area, Lateral*, Prefrontal Cortex*, Stress, Psychological*, Animals, Male, Mice, Mice, Inbred C57BL, Neural Pathways, Neuronal Plasticity, Neurons, Synapses (* major topic)
Topic: Regulation of Appetite and Obesity (Endocrine and Autonomic Systems, Neuroscience), according to OpenAlex
Funding: Dutch Research Council (NWO) (VIDI grant 203.102, Gravitation 024.004.012); EC | Horizon 2020 Framework Programme (ERC 804089, ReCoDE)
Citations: cited by 4 papers (Europe PMC); 57 references in the paper

Abstract

Stress can drive overconsumption of high-fat foods. The medial prefrontal cortex (mPFC) is implicated in such stress-eating, but the underlying circuit mechanisms remain unclear. Here, we show that mPFC projections to the lateral hypothalamus (LHA) are required for stress-induced fat intake in male mice. We find that mPFC-LHA stimulation in sated states increases fat intake. Social stress acutely engages mPFC-LHA neurons, and inhibiting this pathway selectively prevents stress-driven excess fat intake. Circuit mapping shows that mPFC neurons innervate GABAergic and glutamatergic LHA (LHAVGLUT2) neurons, but that social stress preferentially engages mPFC-LHAVGLUT2 neurons and causes plasticity at mPFC-LHAVGLUT2 synapses. Specifically, stress weakens mPFC synapses onto LHAVGLUT2 neurons that curtail food intake, while strengthening mPFC synapses onto midbrain-projecting LHAVGLUT2 neurons linked to stress-eating. We show that LHAVGLUT2 neurons are required downstream mPFC targets for transforming stress into heightened fat intake. Overall, we identify the mPFC-LHA as a multi-branched network, indispensable for stress-eating.

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.

cortex-lab/spikes

License: none: the authors keep all their rights
State: the link answers, verified on 3 November 2026
Evidence: files inventoried
Commit: fcea2b20e736b533e5baf612752b66121a691128, 4 February 2024
Languages: MATLAB (101), C (3)
Size: 118 files, 104 scripts
Software Heritage: archived
Found in: the text, “Spike sorting”
Holds: README
Not found: license file, CITATION.cff, environment file, tests, continuous integration, documentation
Availability: 2 checks, the latest on 3 November 2026: the link answers
  • 3 November 2026: the link answers
  • 30 September 2026: the link answers
105 files

Zenodo 18670225

License: CC-BY-4.0
State: the link answers, verified on 30 September 2026
Evidence: files inventoried
Size: 2 files
Software Heritage: not checked
Found in: the text, “In vivo fiber photometry recordings”
Holds: README
Not found: license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: NumPy (5 files), pandas (5 files), Matplotlib (4 files), h5py (2 files), SciPy (2 files), seaborn (1 file)
Availability: 1 check, the latest on 30 September 2026: the link answers (HTTP 200)
  • 30 September 2026: the link answers (HTTP 200)
5 files
At the source:

Code availability

The location for the codes used for the analyses in the current study have been referenced in the Methods section of the manuscript.

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:

  • 2 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
  • 109 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

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

Data availability

All detailed outcomes of the statistical test are provided in Supplementary Data 1. Source Data are provided with this paper. Other data files are available from the corresponding author on request. 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, 12 authors, 4 keywords, 12 MeSH terms, 2 funders, 57 references.

Cite

This paper

Supiot, L. F., Kooij, K. L., Du, W., Benschop, A. A. C., Nicolson, A. S. J., Haak, R., Wolterink-Donselaar, I. G., Luijendijk, M. C. M., Riga, D., Adan, R. A. H., Poorthuis, R. B., & Meye, F. J. (2026). A prefrontal cortex-lateral hypothalamus circuit controls stress-driven increased food intake. Nature communications, 17(1), 4620. https://doi.org/10.1038/s41467-026-71073-z

BibTeX

@article{supiot2026prefrontal,
author = {Supiot, L F and Kooij, K L and Du, W and Benschop, A A C and Nicolson, A S J and Haak, R and Wolterink-Donselaar, I G and Luijendijk, M C M and Riga, D and Adan, R A H and Poorthuis, R B and Meye, F J},
title = {{A prefrontal cortex-lateral hypothalamus circuit controls stress-driven increased food intake}},
journal = {Nature communications},
year = {2026},
month = mar,
volume = {17},
number = {1},
pages = {4620},
publisher = {Nature Publishing Group},
issn = {2041-1723},
doi = {10.1038/s41467-026-71073-z},
url = {https://doi.org/10.1038/s41467-026-71073-z},
pmid = {41912543},
pmcid = {PMC13199376}
}

RIS

TY - JOUR
AU - Supiot, L F
AU - Kooij, K L
AU - Du, W
AU - Benschop, A A C
AU - Nicolson, A S J
AU - Haak, R
AU - Wolterink-Donselaar, I G
AU - Luijendijk, M C M
AU - Riga, D
AU - Adan, R A H
AU - Poorthuis, R B
AU - Meye, F J
TI - A prefrontal cortex-lateral hypothalamus circuit controls stress-driven increased food intake
T2 - Nature communications
J2 - Nat Commun
PY - 2026
DA - 2026/03/31
VL - 17
IS - 1
SP - 4620
SN - 2041-1723
PB - Nature Publishing Group
DO - 10.1038/s41467-026-71073-z
UR - https://doi.org/10.1038/s41467-026-71073-z
LA - en
ER -

CSL-JSON

{
"id": "10.1038/s41467-026-71073-z",
"type": "article-journal",
"title": "A prefrontal cortex-lateral hypothalamus circuit controls stress-driven increased food intake",
"container-title": "Nature communications",
"author": [
{
"family": "Supiot",
"given": "L F"
},
{
"family": "Kooij",
"given": "K L"
},
{
"family": "Du",
"given": "W"
},
{
"family": "Benschop",
"given": "A A C"
},
{
"family": "Nicolson",
"given": "A S J"
},
{
"family": "Haak",
"given": "R"
},
{
"family": "Wolterink-Donselaar",
"given": "I G"
},
{
"family": "Luijendijk",
"given": "M C M"
},
{
"family": "Riga",
"given": "D"
},
{
"family": "Adan",
"given": "R A H"
},
{
"family": "Poorthuis",
"given": "R B"
},
{
"family": "Meye",
"given": "F J"
}
],
"container-title-short": "Nat Commun",
"volume": "17",
"issue": "1",
"page": "4620",
"DOI": "10.1038/s41467-026-71073-z",
"PMID": "41912543",
"PMCID": "PMC13199376",
"ISSN": "2041-1723",
"publisher": "Nature Publishing Group",
"URL": "https://doi.org/10.1038/s41467-026-71073-z",
"language": "en",
"issued": {
"date-parts": [
[
2026,
3,
31
]
]
}
}

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-025-58384-3
Distinct ventral tegmental area neuronal ensembles are indispensable for reward-driven approach and stress-driven avoidance behaviors.
Journal: Nature communications
In common: mouse, 3 references, 3 authors
[2] doi:10.1523/jneurosci.0518-24.2024 [code]
Sequential Activation of Lateral Hypothalamic Neuronal Populations during Feeding and Their Assembly by Gamma Oscillations.
Journal: The Journal of neuroscience : the official journal of the Society for Neuroscience
In common: seaborn, pandas, SciPy, 2 other tools, mouse, 11 references
[3] doi:10.1038/s41421-025-00857-2 [code]
Prefrontal cortex-to-hypothalamic outputs orchestrate cue-potentiated palatable food consumption via AMPKβ2 signaling.
Journal: Cell discovery
In common: Optimization Toolbox, 10 references
[4] doi:10.1016/j.cmet.2023.02.008 [code]
Complementary lateral hypothalamic populations resist hunger pressure to balance nutritional and social needs.
Journal: Cell metabolism
In common: h5py, seaborn, pandas, 3 other tools, mouse, 7 references
[5] doi:10.1016/j.isci.2023.108328 [code]
Hypothalamic neuronal outputs transmit sensorimotor signals at the onset of locomotor initiation.
Journal: iScience
In common: h5py, seaborn, pandas, 3 other tools, 6 references
[6] doi:10.1038/s41467-025-59686-2
Energy state guides reward seeking via an extended amygdala to lateral hypothalamus pathway.
Journal: Nature communications
In common: mouse, 9 references
[7] doi:10.1016/j.neuron.2025.08.030 [code]
Ultra-high-density Neuropixels probes improve detection and identification in neuronal recordings.
Journal: Neuron
In common: Open Ephys analysis tools, Optimization Toolbox, h5py, 7 other tools, mouse, 1 reference
[8] doi:10.1038/s41467-024-51983-6
Hypothalamic-hindbrain circuit for consumption-induced fear regulation.
Journal: Nature communications
In common: mouse, 8 references
[9] doi:10.1038/s41593-024-01598-3 [code]
The dynamic state of a prefrontal-hypothalamic-midbrain circuit commands behavioral transitions.
Journal: Nature neuroscience
In common: Statistics and Machine Learning Toolbox, pandas, SciPy, 2 other tools, mouse, 5 references
[10] doi:10.1038/s41467-025-65665-4 [code]
Disrupted theta synchronization and synaptic connectivity in the visual cortex of Fmr1 KO mice.
Journal: Nature communications
In common: Optimization Toolbox, h5py, Signal Processing Toolbox, 6 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.

Add the badge to the code's README

OSCR: the badge of this paper

If you are an author or a maintainer of this paper's code, you can add this badge. It says what OSCR knows of the paper (its code, its validated tracing map) and links the code to this page. Paste one of these snippets under the README's title. Keep the two marks around it, so that the badge can be replaced in place and is never added twice. OSCR changes nothing in your repository.

Markdown
<!-- oscr-badge:start -->
[![OSCR](https://openscicode.org/badge/doi/10.1038/s41467-026-71073-z.svg)](https://openscicode.org/badge/doi/10.1038/s41467-026-71073-z)
<!-- oscr-badge:end -->
reStructuredText
.. oscr-badge:start

.. image:: https://openscicode.org/badge/doi/10.1038/s41467-026-71073-z.svg
   :target: https://openscicode.org/badge/doi/10.1038/s41467-026-71073-z
   :alt: OSCR

.. oscr-badge:end
HTML
<!-- oscr-badge:start -->
<a href="https://openscicode.org/badge/doi/10.1038/s41467-026-71073-z"><img src="https://openscicode.org/badge/doi/10.1038/s41467-026-71073-z.svg" alt="OSCR"></a>
<!-- oscr-badge:end -->

On GitHub, open the README, choose Edit (the pencil), paste the snippet under the title, then "Commit changes".

If you choose to, you can have the badge kept up to date for you, with oscr badge --write from the command line or with the GitHub Action in your repository's workflows. Every other form and option (a card, AsciiDoc, LaTeX, shields.io) is on the badge 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: code errors and mismatches between the code and the paper about this paper and its code, from readers and its authors, beside the paper and its tracing map.

Report a mismatch between the code and the paper · Report a code error (signed in)

Reproductions: reports from readers who ran the authors' code and did not get the paper's result, what they ran, with which environment, commit and data.

Report a reproduction failure (signed in)

Versions of its code: the releases of its code tied to a version of this paper (the preprint, the accepted manuscript, the version of record…), each with the tracing map versioned with it.

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