Intrinsic cellular persistent firing sustains hippocampal spatial representations during working memory.
The 9 matches · 4 of them tie a paragraph to a whole file without given lines: weak matches, whose lines are not tinted
- [1] § MATERIALS AND METHODS › In vivo data analysis › Bayesian position decoding ↔ Fig 7.zip/decode_position_from_DataRateMaps.m, lines 1 to 45 · score 0.82 · posterior marginals, Decoded position, bin midpoint, Euclidean, linear, dimension · Report a mismatch
- [2] § MATERIALS AND METHODS › In vivo data analysis › SVM analysis ↔ Fig 5.zip/Acc_SVM5.m, the whole file · a weak match · score 0.73 · cross validation, SVM model, fitcsvm, linear, kernel, class · Report a mismatch
- [3] § MATERIALS AND METHODS › In vivo data analysis › Bayesian position decoding ↔ Fig 7.zip/decode_position_from_DataRateMaps.m, lines 1 to 45 · score 0.71 · rate map, Poisson, likelihood, uniform, log, numerical · Report a mismatch
- [4] § MATERIALS AND METHODS › In vivo data analysis › Cell-type classification based on activity change ↔ Fig4.zip/PlotPlotBinFirRateBatchResult.m, the whole file · a weak match · score 0.65 · 0–25 s, binned firing rate, delay period, 15 s, baseline, cells · Report a mismatch
- [5] § RESULTS › TRPC4 KD suppresses in vivo persistent firing ↔ Fig 2 Fig S2 and FigS3.zip/Fig2.m, lines 798 to 862 · score 0.62 · 2.5–4, 0–2.5, 4–8, 25 s, Figure 2, KD · Report a mismatch
- [6] § RESULTS › Activity outside the delay period is intact ↔ Fig4.zip/PlotBinFirRateBatch.m, the whole file · a weak match · score 0.58 · 20–21 s, 10–11, 20 s, Figure 4, firing · Report a mismatch
- [7] § MATERIALS AND METHODS › Statistical analysis ↔ FigS8.zip/FigS8.m, lines 23 to 106 · score 0.56 · Outliers exclusion, Q1, Q3, IQR, rank, Tukey · Report a mismatch
- [8] § MATERIALS AND METHODS › In vivo data analysis › Bayesian position decoding ↔ Fig 7.zip/Fig7_H_K.m, lines 18 to 90 · score 0.52 · rate maps, complement, kernel, decoding, smoothed, Gaussian · Report a mismatch
- [9] § MATERIALS AND METHODS › In vivo data analysis › SVM analysis ↔ Fig4.zip/PlotPlotBinFirRateBatchResult.m, the whole file · a weak match · score 0.51 · 0–25 s, delay period, binned · 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 · 310 lines · 12 KB · CC-BY-4.0 · 2 matches
- function [pred_bins, pred_xy, post, px, py, model, R_all, edges_all, gt_bins, gt_xy, gt_x, gt_y, t_mid, x_error, y_error, err_euclid] = decode_position_from_ratemaps( ...
- Data, CellSel, DecodeWindows, BinSize, x_dim, y_dim, RateMapsIn, varargin)
- % DECODE_POSITION_FROM_RATEMAPS
- % Bayesian XY decoding using *externally-provided* ratemaps and grid dimensions.
- % Accepts x_dim / y_dim as **EDGES or CENTERS** (auto-detected).
- % No occupancy is computed; pass a numeric prior if desired, otherwise uniform.
- %
- % INPUTS
- % Data : Data.root.ts (time vector) and spike(sh,un).i (indices → ts)
- % CellSel : [nCells×2] shank/unit list (order matches RateMapsIn)
- % DecodeWindows : [nSeg×2] seconds, [t_start t_end] per decode window
- % BinSize : scalar seconds for decoding time bins
- % x_dim : X grid definition (edges or centers), length nx+1 or nx
- % y_dim : Y grid definition (edges or centers), length ny+1 or ny
- % RateMapsIn : [ny x nx x nCells] OR [nCells x (nx*ny)], in Hz
- %
- % Name-Value (optional)
- % 'Prior' : 'uniform' (default) | numeric [1×(nx*ny)] prior over states
- % 'RateFloor' : scalar Hz floor for λ (default 1e-6)
- % 'SmoothCounts' : logical (default false) — smooth spike counts along time
- % 'SmoothMethod' : char for smoothdata (default 'gaussian')
- % 'SmoothWindow' : integer window size in bins (default 5)
- %
- % OUTPUTS
- % pred_bins : [1×nDecode] MAP linear state (Y-first indexing over [ny×nx])
- % pred_xy : [nDecode×2] MAP (X,Y) at grid centers
- % post : [nStates×nDecode] posterior (states flattened Y-first)
- % px : [nx×nDecode] posterior marginal over X per bin (sum over Y)
- % py : [ny×nDecode] posterior marginal over Y per bin (sum over X)
- % model : metadata (edges, centers, prior, tuning, etc.); model.T_occ = []
- % R_all : 1×nSeg cell, spike counts per window [nCells x nBinsInWindow]
- % edges_all : 1×nSeg cell, time edges per window
- % gt_bins : [1×nDecode] GT linear state indices (NaN if outside grid)
- % gt_xy : [nDecode×2] GT (X,Y) at bin midpoints
- % gt_x : [1×nDecode] GT X at bin midpoints
- % gt_y : [1×nDecode] GT Y at bin midpoints
- % t_mid : [1×nDecode] bin-midpoint times (seconds)
- % x_error : [1×nDecode] (pred_x - gt_x) per bin
- % y_error : [1×nDecode] (pred_y - gt_y) per bin
- % err_euclid: [1×nDecode] Euclidean error per bin = sqrt(x_error^2 + y_error^2)
- %
- % Notes
- % • Y-first linear indexing means: k = sub2ind([ny nx], iy, ix).
- % • Likelihood: log P(n|s) ∝ n·log(λ) − λ·Δt (Poisson, independent cells).
- % • If you want an occupancy prior, compute it externally and pass it as 'Prior'.
- % ---- options
- p = inputParser;
- addParameter(p,'Prior','uniform', @(q) (ischar(q) || isstring(q)) || isnumeric(q));
- addParameter(p,'RateFloor',1e-6, @(x)isnumeric(x)&&isscalar(x)&&x>0);
- addParameter(p,'SmoothCounts',false,@(x)islogical(x)&&isscalar(x));
- addParameter(p,'SmoothMethod','gaussian',@(s)ischar(s)||isstring(s));
- addParameter(p,'SmoothWindow',5,@(x)isnumeric(x)&&isscalar(x)&&x>=1);
- parse(p,varargin{:});
- opt = p.Results;
- % ---- basic checks
- assert(isfield(Data,'root'), 'Data.root is required.');
- rootObj = Data.root;
- ts = rootObj.ts(:);
- assert(BinSize>0, 'BinSize must be positive.');
- nCells = size(CellSel,1);
- assert(size(DecodeWindows,2)==2, 'DecodeWindows must be [nSeg×2].');
- % normalize x_dim / y_dim to row vectors
- x_dim = x_dim(:).'; y_dim = y_dim(:).';
- assert(numel(x_dim)>=2 && numel(y_dim)>=2, 'x_dim and y_dim must have at least 2 elements.');
- % ---- interpret grid dimensions (edges vs centers) and infer nx,ny
- if ndims(RateMapsIn)==3
- % Expect [ny x nx x nCells] (rows=Y, cols=X)
- sY = size(RateMapsIn,1);
- sX = size(RateMapsIn,2);
- assert(size(RateMapsIn,3)==nCells, 'RateMapsIn third dim must match nCells.');
- % x_dim: if length == sX+1 → edges; if length == sX → centers → edges
- if numel(x_dim)==sX+1
- xedges = x_dim;
- elseif numel(x_dim)==sX && sX>=2
- xedges = centers_to_edges(x_dim);
- else
- error('x_dim length (%d) incompatible with RateMapsIn size X (%d).', numel(x_dim), sX);
- end
- % y_dim: if length == sY+1 → edges; if length == sY → centers → edges
- if numel(y_dim)==sY+1
- yedges = y_dim;
- elseif numel(y_dim)==sY && sY>=2
- yedges = centers_to_edges(y_dim);
- else
- error('y_dim length (%d) incompatible with RateMapsIn size Y (%d).', numel(y_dim), sY);
- end
- ny = sY;
- nx = sX;
- nStates = nx*ny;
- % Y-first flatten (MATLAB column-major) -> [nCells x nStates]
- RateMaps = reshape(RateMapsIn, ny*nx, nCells).';
- elseif ismatrix(RateMapsIn)
- % RateMaps given as [nCells x (nx*ny)] — deduce nx,ny from x_dim,y_dim
- nStates_in = size(RateMapsIn,2);
- assert(size(RateMapsIn,1)==nCells, 'RateMapsIn rows must match nCells.');
- A = (numel(x_dim)-1) * (numel(y_dim)-1); % edges case
- B = (numel(x_dim)) * (numel(y_dim)); % centers case
- if A == nStates_in
- xedges = x_dim; yedges = y_dim; nx = numel(xedges)-1; ny = numel(yedges)-1;
- elseif B == nStates_in
- xedges = centers_to_edges(x_dim); yedges = centers_to_edges(y_dim);
- nx = numel(x_dim); ny = numel(y_dim);
- else
- error(['RateMapsIn has %d states, but x_dim/y_dim lengths do not match either ' ...
- '(edges-1)*(edges-1) or (centers)*(centers).'], nStates_in);
- end
- nStates = nx*ny;
- RateMaps = RateMapsIn;
- else
- error('Unsupported RateMapsIn shape.');
- end
- % ---- apply floor, precompute log terms
- lam_tuning = max(RateMaps, opt.RateFloor); % [nCells x nStates], Hz
- log_lam = log(lam_tuning); % [nCells x nStates]
- sum_lam = sum(lam_tuning, 1); % [1 x nStates]
- % ---- centers (for reporting MAP XY)
- xcent = 0.5*(xedges(1:end-1)+xedges(2:end));
- ycent = 0.5*(yedges(1:end-1)+yedges(2:end));
- % ---- sanitize & merge decode windows
- tf = isfinite(ts);
- t_min = min(ts(tf)); t_max = max(ts(tf));
- DecodeWindows = sortrows(DecodeWindows,1);
- DecodeWindows(:,1) = max(DecodeWindows(:,1), t_min);
- DecodeWindows(:,2) = min(DecodeWindows(:,2), t_max);
- DecodeWindows = DecodeWindows(DecodeWindows(:,2) > DecodeWindows(:,1), :);
- DecodeWindows = mergeIntervals(DecodeWindows);
- % ---- prior (uniform or user-provided numeric only)
- if ischar(opt.Prior) || isstring(opt.Prior)
- switch lower(string(opt.Prior))
- case "uniform"
- prior = ones(1,nStates,'double')/nStates;
- otherwise
- error('Prior "%s" not supported in this version. Use ''uniform'' or a numeric prior vector.', string(opt.Prior));
- end
- else
- prior = opt.Prior(:).';
- assert(numel(prior)==nStates,'Numeric prior must be [1×(nx*ny)].');
- s = sum(prior); assert(isfinite(s) && s>0); prior = prior / s;
- end
- logPrior = log(prior + eps);
- % ---- decode each window
- pred_bins = []; pred_xy = []; post = [];
- px = []; % [nx x nDecode] — X-marginal posterior per bin (sum over Y)
- py = []; % [ny x nDecode] — Y-marginal posterior per bin (sum over X)
- R_all = cell(1,size(DecodeWindows,1)); edges_all = R_all;
- for w = 1:size(DecodeWindows,1)
- t0 = DecodeWindows(w,1); t1 = DecodeWindows(w,2);
- edges = t0:BinSize:t1; if abs(edges(end)-t1)>eps(t1), edges=[edges t1]; end
- nBinsW = numel(edges)-1;
- % spike counts per bin
- R = zeros(nCells, nBinsW, 'double');
- for c = 1:nCells
- sh = CellSel(c,1); un = CellSel(c,2);
- spk_i = rootObj.spike(sh,un).i(:);
- if isempty(spk_i), continue; end
- spk_i = spk_i(spk_i>=1 & spk_i<=numel(ts));
- if isempty(spk_i), continue; end
- spk_t = ts(spk_i);
- m = (spk_t >= t0) & (spk_t <= t1);
- if any(m), R(c,:) = histcounts(spk_t(m), edges); end
- end
- % optional smoothing along time
- if opt.SmoothCounts
- for c = 1:nCells
- R(c,:) = smoothdata(R(c,:), 2, opt.SmoothMethod, opt.SmoothWindow);
- end
- end
- % decode this window
- bin_durs = diff(edges);
- post_w = nan(nStates, nBinsW);
- pred_bins_w = nan(1, nBinsW);
- pred_xy_w = nan(nBinsW, 2);
- % per-window X/Y marginals
- px_w = nan(nx, nBinsW);
- py_w = nan(ny, nBinsW);
- for b = 1:nBinsW
- r = R(:,b); % [nCells x 1]
- if all(r==0)
- p = prior(:); % no spikes → revert to prior
- else
- ll = (r.' * log_lam) - (sum_lam * bin_durs(b));
- ll = ll + logPrior;
- ll = ll - max(ll); % stabilize
- p = exp(ll);
- s = sum(p); if s>0, p=p/s; else, p=prior(:); end
- end
- post_w(:,b) = p(:);
- % MAP state
- [~, k_hat] = max(p);
- [iy_hat, ix_hat] = ind2sub([ny nx], k_hat); % Y-first indexing
- pred_bins_w(b) = k_hat;
- pred_xy_w(b,:) = [xcent(ix_hat), ycent(iy_hat)];
- % === NEW: Posterior marginals over X and Y ===
- % p is [nStates×1] flattened Y-first; reshape to [ny×nx], rows=Y, cols=X
- Pgrid = reshape(p, ny, nx);
- px_w(:,b) = sum(Pgrid, 1).'; % sum over Y → [nx×1]
- py_w(:,b) = sum(Pgrid, 2); % sum over X → [ny×1]
- % =============================================
- end
- R_all{w} = R;
- edges_all{w} = edges;
- % accumulate window-wise results
- pred_bins = [pred_bins, pred_bins_w];
- pred_xy = [pred_xy; pred_xy_w];
- post = [post, post_w];
- px = [px, px_w];
- py = [py, py_w];
- end
- % ---- pack model (T_occ intentionally empty)
- model = struct();
- model.prior = prior;
- model.nx = nx; model.ny = ny;
- model.xedges = xedges; model.yedges = yedges;
- model.xcenters = xcent; model.ycenters = ycent;
- model.RateMaps = lam_tuning; % [nCells x nStates], Hz
- model.T_occ = []; % no occupancy computed
- model.cells_used = true(nCells,1);
- model.decode_windows = DecodeWindows;
- model.decode_edges = edges_all;
- model.BinSize = BinSize;
- model.notes = "External ratemaps; x_dim/y_dim may be edges or centers; NO occupancy.";
- % ===================== NEW: Ground-truth aligned to decoded bins =====================
- % Build bin-midpoint time vector for all decoded bins
- t_mid = [];
- for w = 1:numel(edges_all)
- e = edges_all{w};
- if numel(e) >= 2
- t_mid = [t_mid, 0.5*(e(1:end-1) + e(2:end))]; %#ok<AGROW>
- end
- end
- nDecode = numel(t_mid);
- % Interpolate GT XY at those midpoints
- xs = Data.root.x(:); ys = Data.root.y(:);
- gt_x = interp1(ts, xs, t_mid, 'linear', 'extrap');
- gt_y = interp1(ts, ys, t_mid, 'linear', 'extrap');
- gt_xy = [gt_x(:), gt_y(:)];
- % Map GT XY to grid state (Y-first)
- ix = discretize(gt_x, xedges); % 1..nx or NaN
- iy = discretize(gt_y, yedges); % 1..ny or NaN
- gt_bins = nan(1, nDecode);
- ok = isfinite(ix) & isfinite(iy);
- gt_bins(ok) = sub2ind([ny, nx], iy(ok), ix(ok)); % Y-first linear index
- % ===================================================================
- % ===================== NEW: Errors =====================
- % Component errors (pred - GT), returned as row vectors [1 x nDecode]
- x_error = (pred_xy(:,1) - gt_x(:)).';
- y_error = (pred_xy(:,2) - gt_y(:)).';
- % Euclidean error per bin
- err_euclid = sqrt(x_error.^2 + y_error.^2);
- % =======================================================
- end
- % ---------------- helpers ----------------
- function edges = centers_to_edges(centers)
- % Convert a strictly monotonic vector of centers to edges by midpoints,
- % extrapolating half-step at both ends.
- centers = centers(:).';
- assert(numel(centers)>=2, 'Need at least 2 centers to form edges.');
- d = diff(centers);
- inner = (centers(1:end-1) + centers(2:end))/2;
- first = centers(1) - d(1)/2;
- last = centers(end) + d(end)/2;
- edges = [first, inner, last];
- end
- function I = mergeIntervals(I)
- % Merge overlapping intervals in a [n×2] list of [start end] rows.
- if isempty(I), return; end
- I = sortrows(I,1);
- out = I(1,:);
- for k=2:size(I,1)
- if I(k,1) <= out(end,2)
- out(end,2) = max(out(end,2), I(k,2));
- else
- out = [out; I(k,:)]; %#ok<AGROW>
- end
- end
- I = out;
- end
decode_position_from_DataRateMaps.m, under CC-BY-4.0 · at the source
Overview
- Leibniz Institute for Neurobiology, Brenneckestraße 6, 39118 Magdeburg, Germany
- Cognitive Neurophysiology Group, German Center for Neurodegenerative Diseases (DZNE), 39120 Magdeburg, Germany
- Institute of Physiology, Medical Faculty, Otto-Von-Guericke University, 39120 Magdeburg, Germany
- Molecular Neuroplasticity Group, German Center for Neurodegenerative Diseases (DZNE), 39120 Magdeburg, Germany
- Medical Faculty, Otto-von-Guericke University (OVGU), 39120 Magdeburg, Germany
- Center for Behavioral Brain Sciences (CBBS), 39106 Magdeburg, Germany
Abstract
Neurons are the fundamental units of cognitive processing. The prevailing view holds that neurons are input-output units that fire action potentials only upon receiving sufficient synaptic input. Here, we demonstrate that this may not be the sole operational mode of neurons in vivo during cognitive tasks, by showing that hippocampal place cells actively maintain firing and preserve spatial information through molecularly defined intrinsic mechanisms. Using in vitro and in vivo recordings coupled with molecular manipulation in mice, we reveal that hippocampal persistent firing during spatial working memory is supported by individual neurons via TRPC4 ion channels. Despite the general belief that persistent activity maintains working memory content, we demonstrate that persistent firing instead maintains immediate spatial representations, potentially supporting the encoding of spatial information to guide behavior. These findings position individual neurons as active contributors to information retention, extending their traditional role as passive input-output units and potentially broadening our understanding of neural computation.
Reproduced under the paper's license (CC BY), from the paper cited above.
Repository
Its files are read in the Code ↔ Paper reader above, with 9 matches between paragraphs and lines of code.
Zenodo 21775727
Availability: 1 check, the latest on 31 October 2026: the link answers (HTTP 200)
- 31 October 2026: the link answers (HTTP 200)
61 files
- Fig 2 Fig S2 and FigS3.zip/
Fig2.m , MATLAB, 1,054 lines, 1 match - Fig 2 Fig S2 and FigS3.zip/
Fig2pyrvsIN.m , MATLAB, 425 lines - Fig 2 Fig S2 and FigS3.zip/
Temp_fields_size.m , MATLAB, 76 lines - Fig 3.zip/
Fig3.m , MATLAB, 357 lines - Fig 3.zip/
Temp_fields_size.m , MATLAB, 76 lines - Fig 3.zip/
Z_function.m , MATLAB, 96 lines - Fig 3.zip/
bonf_holm.m , MATLAB, 109 lines - Fig 5.zip/
Acc_SVM5.m , MATLAB, 78 lines, 1 match - Fig 5.zip/
Fig5.m , MATLAB, 574 lines - Fig 5.zip/
SVM_models_LvsR.m , MATLAB, 246 lines - Fig 5.zip/
Z_function.m , MATLAB, 96 lines - Fig 6_I_K.zip/
Fig6_I_K.m , MATLAB, 860 lines - Fig 6_I_K.zip/
chi2cont.m , MATLAB, 36 lines - Fig 7.zip/
Acc_SVM5.m , MATLAB, 78 lines - Fig 7.zip/
Fig7_A_G.m , MATLAB, 495 lines - Fig 7.zip/
Fig7_H_K.m , MATLAB, 92 lines, 1 match - Fig 7.zip/
SVM_GL_SmplChc.m , MATLAB, 174 lines - Fig 7.zip/
complement_head_tail.m , MATLAB, 80 lines - Fig 7.zip/
decode_position_from_Dat , MATLAB, 310 lines, 2 matchesaRateMaps.m - Fig 7.zip/
make_decode_summary_ABCD , MATLAB, 1,337 lines_v6_singleTraceColumn.m - Fig 8.zip/
Fig8.m , MATLAB, 100 lines - Fig 8.zip/
analyzeBootstrapZDistrib , MATLAB, 1,197 linesution_v3.m - Fig 8.zip/
bootstrapRf_goalMode_all , MATLAB, 1,651 linesScopesSideStratified_v5. m - Fig4.zip/
BinFirRateFig5.m , MATLAB, 328 lines - Fig4.zip/
PlotBinFirRateBatch.m , MATLAB, 47 lines, 1 match - Fig4.zip/
PlotBinFirRateFig5.m , MATLAB, 1,315 lines - Fig4.zip/
PlotPlotBinFirRateBatchR , MATLAB, 109 lines, 2 matchesesult.m - Fig4.zip/
Zenodo_Fig4_main.m , MATLAB, 50 lines - Fig6A-H.zip/
PlaceCellAna.m , MATLAB, 213 lines - Fig6A-H.zip/
PlotBinFirRateFig7.m , MATLAB, 1,310 lines - Fig6A-H.zip/
PlotPlaceCellAna.m , MATLAB, 396 lines - Fig6A-H.zip/
Zenodo_Fig6_main.m , MATLAB, 46 lines - FigS4.zip/
FigS4.m , MATLAB, 558 lines - FigS5.zip/
Acc_SVM5.m , MATLAB, 78 lines - FigS5.zip/
FigS5_A_G.m , MATLAB, 864 lines - FigS5.zip/
FigS5_H_L.m , MATLAB, 92 lines - FigS5.zip/
SVM_GL_SmplChc.m , MATLAB, 174 lines - FigS6.zip/
Acc_SVM5.m , MATLAB, 78 lines - FigS6.zip/
FigS6_A_G.m , MATLAB, 494 lines - FigS6.zip/
FigS6_H_L .m , MATLAB, 92 lines - FigS6.zip/
SVM_GL_SmplChc.m , MATLAB, 174 lines - FigS7.zip/
FigS7.m , MATLAB, 812 lines - FigS8.zip/
FigS8.m , MATLAB, 1,028 lines, 1 match - FigS8.zip/
Fig_Bootstrapping_summar , MATLAB, 317 linesy_Delay.m - FigS8.zip/
Fig_Bootstrapping_summar , MATLAB, 320 linesy_Goalc.m - FigS8.zip/
Fig_Bootstrapping_summar , MATLAB, 317 linesy_ITI.m - FigS8.zip/
analyzeBootstrapZDistrib , MATLAB, 1,138 linesution_v2.m - FigS8.zip/
bootstrapRf_goalMode_all , MATLAB, 1,651 linesScopesSideStratified_v5. m - Fig 2 Fig S2 and FigS3.zip/
Readme.txt , Text, 4 lines - Fig 3.zip/
Readme.txt , Text, 2 lines - Fig 5.zip/
Readme.txt , Text, 3 lines - Fig 6_I_K.zip/
Readme.txt , Text, 2 lines - Fig 7.zip/
Readme.txt , Text, 5 lines - Fig 8.zip/
Readme.txt , Text, 15 lines - Fig4.zip/
Readme.txt , Text, 5 lines - Fig6A-H.zip/
Readme.txt , Text, 5 lines - FigS4.zip/
Readme.txt , Text, 1 line - FigS5.zip/
Readme.txt , Text, 4 lines - FigS6.zip/
Readme.txt , Text, 4 lines - FigS7.zip/
Readme.txt , Text, 1 line - FigS8.zip/
Readme.txt , Text, 4 lines
The paper's code and data availability statement is in the Data section.
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;
- 48 scripts, each with its path and the digest of its content;
- 9 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
No dataset and no data link were found in the paper.
Data, code, and materials availability
All data needed to evaluate and reproduce the results in the paper are present in the paper and/
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, 1 November 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 7 authors, 6 MeSH terms, 3 funders, 73 references.
Cite
This paper
Saber Marouf, B., Reboreda, A., Theissen, F., Kaushik, R., Sauvage, M., Dityatev, A., & Yoshida, M. (2026). Intrinsic cellular persistent firing sustains hippocampal spatial representations during working memory. Science advances, 12(44), eaef9907. https://
BibTeX
@article{sabermarouf2026
author = {Saber Marouf, Babak and Reboreda, Antonio and Theissen, Frederik and Kaushik, Rahul and Sauvage, Magdalena and Dityatev, Alexander and Yoshida, Motoharu},
title = {{Intrinsic cellular persistent firing sustains hippocampal spatial representations during working memory}},
journal = {Science advances},
year = {2026},
month = oct,
volume = {12},
number = {44},
pages = {eaef9907},
publisher = {American Association for the Advancement of Science},
issn = {2375-2548},
doi = {10.1126/
url = {https://
pmid = {42962002},
pmcid = {PMC13721955}
}
RIS
TY - JOUR
AU - Saber Marouf, Babak
AU - Reboreda, Antonio
AU - Theissen, Frederik
AU - Kaushik, Rahul
AU - Sauvage, Magdalena
AU - Dityatev, Alexander
AU - Yoshida, Motoharu
TI - Intrinsic cellular persistent firing sustains hippocampal spatial representations during working memory
T2 - Science advances
J2 - Sci Adv
PY - 2026
DA - 2026/
VL - 12
IS - 44
SP - eaef9907
SN - 2375-2548
PB - American Association for the Advancement of Science
DO - 10.1126/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1126/
"type": "article-journal",
"title": "Intrinsic cellular persistent firing sustains hippocampal spatial representations during working memory",
"container-title": "Science advances",
"author": [
{
"family": "Saber Marouf",
"given": "Babak"
},
{
"family": "Reboreda",
"given": "Antonio"
},
{
"family": "Theissen",
"given": "Frederik"
},
{
"family": "Kaushik",
"given": "Rahul"
},
{
"family": "Sauvage",
"given": "Magdalena"
},
{
"family": "Dityatev",
"given": "Alexander"
},
{
"family": "Yoshida",
"given": "Motoharu"
}
],
"container-title-short":
"volume": "12",
"issue": "44",
"page": "eaef9907",
"DOI": "10.1126/
"PMID": "42962002",
"PMCID": "PMC13721955",
"ISSN": "2375-2548",
"publisher": "American Association for the Advancement of Science",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
10,
30
]
]
}
}
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: [code]
- Intrinsic cellular persistent firing sustains hippocampal spatial representations during working memoryJournal: Science advancesIn common: Parallel Computing Toolbox, Signal Processing Toolbox, Image Processing Toolbox, 1 other tool, cognitive, 73 references, 6 authors
- [2] doi:10.1038/s41467-025-62498-z [code]
- Time cell sequences during delay intervals are not dependent on brain state and do not support hippocampus-dependent working memory.Journal: Nature communicationsIn common: Signal Processing Toolbox, Statistics and Machine Learning Toolbox, cognitive, 8 references
- [3] doi:10.1038/s41467-026-70267-9 [code]
- Neural circuit models for evidence accumulation through choice-selective sequences.Journal: Nature communicationsIn common: Parallel Computing Toolbox, Image Processing Toolbox, Statistics and Machine Learning Toolbox, 6 references
- [4] doi:10.1016/j.celrep.2022.111700 [code]
- Task-selective place cells show behaviorally driven dynamics during learning and stability during memory recall.Journal: Cell reportsIn common: Parallel Computing Toolbox, Signal Processing Toolbox, Image Processing Toolbox, 1 other tool, mouse, 5 references
- [5] doi:10.1038/s41467-023-35825-5 [code]
- Optogenetic frequency scrambling of hippocampal theta oscillations dissociates working memory retrieval from hippocampal spatiotemporal codes.Journal: Nature communicationsIn common: Signal Processing Toolbox, Image Processing Toolbox, Statistics and Machine Learning Toolbox, 6 references
- [6] doi:10.7554/elife.79545 [code]
- Rhythmic coordination and ensemble dynamics in the hippocampal-prefrontal network during odor-place associative memory and decision making.Journal: eLifeIn common: Parallel Computing Toolbox, Signal Processing Toolbox, Image Processing Toolbox, 1 other tool, cognitive, 4 references
- [7] doi:10.1016/j.neuron.2023.01.017 [code]
- Brief synaptic inhibition persistently interrupts firing of fast-spiking interneurons.Journal: NeuronIn common: Parallel Computing Toolbox, Signal Processing Toolbox, Image Processing Toolbox, 1 other tool, 3 references
- [8] doi:10.1126/sciadv.adr9916 [code]
- Frontal noradrenergic and cholinergic transients exhibit distinct spatiotemporal dynamics during competitive decision-making.Journal: Science advancesIn common: Signal Processing Toolbox, Image Processing Toolbox, Statistics and Machine Learning Toolbox, cognitive, mouse, 3 references
- [9] doi:10.1016/j.celrep.2024.113807 [code]
- Working memory features are embedded in hippocampal place fields.Journal: Cell reportsIn common: Parallel Computing Toolbox, Signal Processing Toolbox, Image Processing Toolbox, 1 other tool, cognitive, 3 references
- [10] doi:10.1016/j.cub.2023.02.029 [code]
- Distinct hippocampal-prefrontal neural assemblies coordinate memory encoding, maintenance, and recall.Journal: Current biology : CBIn common: Parallel Computing Toolbox, Signal Processing Toolbox, Statistics and Machine Learning Toolbox, cognitive, 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.
Claim this paper
Correct its record
Say what each link of this record is, remove the ones that are not the paper's, add the ones that are missing. The correction becomes a new version of the record, in its Versions section.
Validate its tracing map
You validate the map as this page shows it: 1 repository of the authors' code, each at its verified commit and with its license, 48 scripts, and 9 matches between paragraphs and code (see the Code and Map sections). It then receives a DOI on Zenodo, with you (your ORCID iD) and OSCR as its creators; the code itself is not deposited.
The map's fingerprint: sha256:2ff0d4d64fa240c0…
Add the badge to the code's README
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 -->
[](https://openscicode.org/badge/doi/10.1126/sciadv.aef9907)
<!-- oscr-badge:end -->reStructuredText
.. oscr-badge:start
.. image:: https://openscicode.org/badge/doi/10.1126/sciadv.aef9907.svg
:target: https://openscicode.org/badge/doi/10.1126/sciadv.aef9907
:alt: OSCR
.. oscr-badge:endHTML
<!-- oscr-badge:start -->
<a href="https://openscicode.org/badge/doi/10.1126/sciadv.aef9907"><img src="https://openscicode.org/badge/doi/10.1126/sciadv.aef9907.svg" alt="OSCR"></a>
<!-- oscr-badge:end -->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)
Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.
