Neural dynamics for working memory and evidence integration during olfactory navigation in Drosophila.
The 8 matches · 1 of them tie a paragraph to a whole file, not to given lines: a weak match, whose lines are not tinted
- [1] § Methods › Modeling persistent goal-directed navigation in an odor plume ↔ run_nav_simulation.m, lines 1–36 · score 0.87 · state behavioral model, neural dynamics, plume environment, odor concentration, odor signal, Transitions
- [2] § Methods › Data analysis › Analysis of neural encoding properties ↔ Kathman2026 Analysis and Plotting Code/Fig1hSup1jk-RegAnlys_bumpprebump_all_and_sep.m, lines 474–538 · score 0.67 · pre bump, Behavioral metrics, pre odor, post odor, duration
- [3] § Results › A persistent goal representation improves navigation in turbulent environments ↔ run_nav_simulation.m, lines 1–36 · score 0.63 · working memory, olfactory navigation, angular velocities, transition, agent, dynamics
- [4] § Methods › Experimental Paradigms › Software control ↔ Kathman2026 Analysis and Plotting Code/utilities/balldata_struct copy.m, lines 1–92 · score 0.60 · odor state, wind position, wind speed, Fictrac, timestamps
- [5] § Methods › Data analysis › Analysis of freely walking wind tunnel behavior data ↔ Kathman2026 Analysis and Plotting Code/Sup1bc-persistent_walking_ndk copy.m, lines 1–119 · score 0.59 · pass filtered, odor onset, odor offset, persistence, walking, heading
- [6] § Methods › Data analysis › Analysis of neural encoding properties ↔ Kathman2026 Analysis and Plotting Code/utilities/plottrials_flex copy.m, lines 532–647 · score 0.57 · minimum bump duration, bump onset, gaps, offset, threshold
- [7] § Methods › Data analysis › Processing of imaging data ↔ Kathman2026 Analysis and Plotting Code/utilities/analyzeCalciumExperiment_newThor5D copy.m, the whole file · a weak match · score 0.56 · register_rois2, imported, motion, correlated, frames
- [8] § Methods › Data analysis › Processing of walking ball data ↔ Kathman2026 Analysis and Plotting Code/Fig1gSup1i-bump_dur_dist.m, lines 185–236 · score 0.53 · confidence interval, Exponential, CI, decay, curves, fit
Paper
Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC
The paper is loaded when this pane is shown.
The authors' code
MATLAB · 179 lines · 6 KB · GPL-3.0 · 2 matches
- function out = run_nav_simulation(triallength, tau, plot_figs)
- % RUN_NAV_SIMULATION Simulates odor-guided navigation based on neural dynamics
- %
- % out = run_nav_simulation(triallength, tau, plot_figs)
- %
- % This function simulates a Drosophila-like agent navigating within an odor
- % plume environment using a 3-state behavioral model (baseline, goal-directed,
- % search). The odor concentration is sampled from an external plume dataset
- % (Crimaldi 2017, 10 cm/s bounded plume).
- %
- % INPUTS:
- % triallength : number of samples to simulate (e.g. 1500 for ~100 s at fs=15 Hz)
- % tau : mean decay time constant (in seconds) controlling transition probability
- % plot_figs : logical (1 or 0), whether to display output figures
- %
- % OUTPUT:
- % out : structure with simulation results:
- % out.U - DN activity matrix (5 x time)
- % out.v - forward velocity (mm/s)
- % out.a - angular velocity (rad/s)
- % out.x - x position (plume pixel coordinates)
- % out.y - y position (plume pixel coordinates)
- % out.odor - sampled odor concentration
- % out.C - compressed odor signal
- % out.s - behavioral state index (1=baseline, 2=goal, 3=search)
- %
- % Example:
- % out = run_nav_simulation(1800, 5, 1);
- % This runs a 2-minute simulation with tau=5s and displays figures.
- %
- % Note:
- % You must edit the variable `plume_path` below to point to the correct
- % .h5 plume dataset on your system.
- %
- % Authors: Nicholas Kathman, Katherine Nagel (2025)
- % Manuscript: Neural dynamics for working memory and evidence integration during olfactory navigation in Drosophila
- %% 1. SETUP AND PARAMETERS
- % ---- Path to plume dataset (edit this path to your local copy) ----
- plume_path = '/path/to/10302017_10cms_bounded_2.h5'; % <-- update this line
- % ---- Simulation and model parameters ----
- beta = 0.025; % compression term
- thresh = 0.5; % odor detection threshold
- B = 0.8; % autocorrelation
- XLR = 0; % left-right weight (baseline)
- XLR2 = -0.035; % left-right weight (search)
- XS = -0.03; % stop weight
- XX = 0; % same-side DN interaction
- W = [B XX XS XLR XLR; XX B XS XLR XLR; XS XS B XS XS; XLR XLR XS B XX; XLR XLR XS XX B];
- Woff = [B XX XS XLR2 XLR2; XX B XS XLR2 XLR2; XS XS B XS XS; XLR2 XLR2 XS B XX; XLR2 XLR2 XS XX B];
- % Environment parameters (Crimaldi dataset)
- fs = 15; % Hz of plume video
- xpix = 216; ypix = 406; xmm = 159.84; ymm = 300.44;
- nsamp = 3600; % samples per plume dataset
- pxscale = xmm / xpix;
- % Behavioral coefficients and initial conditions
- avvars = [0.7 0.3 0.1 0.2]; % fitted from experimental data
- start_pos = [50, 0, 50, 300]; % [xrange, xoffset, yrange, yoffset]
- tauA = fs * 5; % adaptive odor time constant (samples)
- state = 'baseline'; % initial state
- U = [0.1; 0.1; 0; 0.1; 0.1]; % initial DN activity
- v(1) = 0; a(1) = 0; A(1) = 0; C(1) = 0;
- % Initial position and headin
- xrange = round(start_pos(1)*xpix/216);
- xoffset = round(start_pos(2)*xpix/216);
- yrange = round(start_pos(3)*ypix/406);
- yoffset = round(start_pos(4)*ypix/406);
- x(1) = randn(1)*xrange;
- y(1) = rand(1)*yrange - yoffset;
- theta(1) = 2*pi*rand(1);
- % Random noise and transition probability
- n = randn(5, triallength);
- p = 1 / (tau * fs); % convert decay time constant to probability
- %% 2. MAIN SIMULATION LOOP
- for i = 2:triallength
- tind = mod(i-1, nsamp) + 1; % restart plume sampling periodically
- xind = round(x(i-1)) + 108;
- yind = -round(y(i-1));
- % Sample odor intensity from plume dataset
- if ismember(xind, 1:216) && ismember(yind, 1:406)
- odor(i) = max(0, h5read(plume_path, '/dataset2', [xind yind tind], [1 1 1]));
- else
- odor(i) = 0;
- end
- % Adaptive odor compression
- A(i) = A(i-1) + (odor(i) - A(i-1)) / tauA;
- C(i) = round(odor(i) ./ (odor(i) + beta + A(i)));
- % Behavioral state updates
- switch state
- case 'baseline'
- s(i) = 1;
- U(:,i) = act(W*U(:,i-1) + 0.1*[1;1;0;-1;-1]*sin(theta(i-1)+pi/2) + n(:,i));
- if C(i) > thresh
- state = 'goal';
- end
- case 'goal'
- s(i) = 2;
- U(:,i) = act(W*U(:,i-1) + [1;1;0;-1;-1]*sin(theta(i-1)-pi/2) + [0;0;-.1;0;0] + n(:,i));
- if C(i) < thresh && rand(1) < p
- state = 'search';
- end
- case 'search'
- s(i) = 3;
- U(:,i) = act(Woff*U(:,i-1) + n(:,i));
- if C(i) > thresh
- state = 'goal';
- elseif rand(1) < 0.01
- state = 'baseline';
- end
- end
- % Compute motion
- if U(3,i) > 0
- v(i) = 0; a(i) = 0;
- else
- v(i) = (avvars(1)*max(0,sum(U([1 5],i))) + avvars(2)*max(0,sum(U([2 4],i))));
- a(i) = (avvars(3)*diff(U([1 5],i)) + avvars(4)*diff(U([2 4],i)));
- end
- theta(i) = theta(i-1) + a(i)/fs;
- [dx, dy] = pol2cart(theta(i), v(i)/fs);
- x(i) = x(i-1) + dx;
- y(i) = y(i-1) + dy;
- end
- %% 3. PLOTTING
- if plot_figs
- % Time series plots
- figure(1); set(gcf, 'Position', [78 34 367 751]);
- subplot(5,1,1); plot(odor); ylabel('odor');
- subplot(5,1,2); plot(C); ylabel('binary odor');
- subplot(5,1,3); hold off; plot(s==2,'r'); hold on; plot(s==3,'b'); ylabel('states');
- subplot(5,1,4); plot(v); ylabel('fvel');
- subplot(5,1,5); plot(a); ylabel('avel');
- % Trajectory plot
- figure(2); set(gcf, 'Position', [448 363 840 630]); hold on;
- plot(x, y, 'k');
- plot(x(s==1), y(s==1), 'k.');
- plot(x(s==2), y(s==2), 'c.');
- plot(x(s==3), y(s==3), 'g.');
- plot(x(1), y(1), 'xb', 'LineW', 6);
- plot([-107,108,108,-107,-107],[-405,-405,0,0,-405],'r-','LineWidth',3);
- plot([-107,0,108],[-405,0,-405],'r-','LineWidth',3);
- axis equal; xlabel('Crosswind (px)'); ylabel('Downwind (px)');
- end
- %% 4. OUTPUT STRUCTURE
- out.U = U;
- out.v = v;
- out.a = a;
- out.x = x;
- out.y = y;
- out.odor = odor;
- out.C = C;
- out.s = s;
- end
- %% HELPER FUNCTION
- function y = act(x)
- % Activation function preventing runaway excitation
- y = 20 ./ (1 + exp(-x/4)) - 10;
- end
run_nav_simulation.m at commit 371dc9d, under GPL-3.0 · at the source
Overview
- Department of Neuroscience, NYU School of Medicine,New York, NY USA
- Present Address: Department of Biological Sciences, Marshall University,Huntington, WV USA
Abstract
The abstract is not reproduced here: the paper's license (CC BY-NC-ND) does not allow it. Read it in the paper, at the publisher or on Europe PMC.
Repositories
Its files are read in the Code ↔ Paper reader above, with 8 matches between paragraphs and lines of code.
nagellab/AlvarezSalvado_ElementaryTransformations
46795a6c5b0228625fbecd1280a43f57ba3f0f39, 29 June 2018Availability: 1 check, the latest on 27 September 2026: the link answers
- 27 September 2026: the link answers
37 files
- Code/
Elifenavmodel_bilateral. , MATLAB, 523 linesm - Code/
a_peaks.m , MATLAB, 197 lines - Code/
a_selectdata.m , MATLAB, 186 lines - Code/
a_thetahist.m , MATLAB, 144 lines - Code/
a_vels.m , MATLAB, 64 lines - Code/
a_warp.m , MATLAB, 47 lines - Code/
a_ydist.m , MATLAB, 59 lines - Code/
analyzer.m , MATLAB, 74 lines - Code/
import functions feb2017/ , MATLAB, 54 linesaccumorientations.m - Code/
import functions feb2017/ , MATLAB, 31 lineschronosort.m - Code/
import functions feb2017/ , MATLAB, 29 linescorrectorientation.m - Code/
import functions feb2017/ , MATLAB, 75 linescorrecttheta.m - Code/
import functions feb2017/ , MATLAB, 55 linesexptimeline.m - Code/
import functions feb2017/ , MATLAB, 204 linesfiltering.m - Code/
import functions feb2017/ , MATLAB, 73 linesfindtrialinfo.m - Code/
import functions feb2017/ , MATLAB, 72 linesfindtrialinfo_analog.m - Code/
import functions feb2017/ , MATLAB, 63 linesfindtrialinfo_rand.m - Code/
import functions feb2017/ , MATLAB, 104 linesflyseparator.m - Code/
import functions feb2017/ , MATLAB, 60 linesimporter for older files/ findtrialinfo_prejul2017 .m - Code/
import functions feb2017/ , MATLAB, 96 linesimporter for older files/ flyseparator_prejul2017. m - Code/
import functions feb2017/ , MATLAB, 105 linesimporter for older files/ importthatfolder_prejul2 017.m - Code/
import functions feb2017/ , MATLAB, 48 linesimporter for older files/ openbindata_prejul2017.m - Code/
import functions feb2017/ , MATLAB, 103 linesimporter for unfiltered and history data/ importer2history.m - Code/
import functions feb2017/ , MATLAB, 130 linesimporter.m - Code/
import functions feb2017/ , MATLAB, 99 linesimporter2history_ver1.m - Code/
import functions feb2017/ , MATLAB, 115 linesimporter_randoms.m - Code/
import functions feb2017/ , MATLAB, 110 linesimportthatfolder.m - Code/
import functions feb2017/ , MATLAB, 258 linesnormaxy.m - Code/
import functions feb2017/ , MATLAB, 49 linesopenbindata.m - Code/
import functions feb2017/ , MATLAB, 59 linesopenbindata_analog.m - Code/
import functions feb2017/ , MATLAB, 48 linesopenbindata_rand.m - Code/
import functions feb2017/ , MATLAB, 53 linesstimseparator.m - Code/
navigation_model_vec.m , MATLAB, 485 lines - Code/
runmodel.m , MATLAB, 49 lines - Code/
stimwarp.m , MATLAB, 98 lines - LICENSE, License, 21 lines
- README.md, Text, 2 lines
nagellab/Mathesonetal2022
30bc47c0703527995af2a9d671bd2a1f32c1a29a, 5 July 2022Availability: 1 check, the latest on 27 September 2026: the link answers
- 27 September 2026: the link answers
155 files
- ADP_Motion_Correction3.m
, MATLAB, 57 lines - CNMF_noparpool.m, MATLAB, 111 lines
- CNMF_noparpoolAM.m, MATLAB, 119 lines
- Correct_all.m, MATLAB, 28 lines
- MBONphysanalysis.m, MATLAB, 232 lines
- MBONplotting.m, MATLAB, 136 lines
- Model Code/
draw_trajectory.m , MATLAB, 34 lines - Model Code/
heading_inputs_allocentr , MATLAB, 58 linesic.m - Model Code/
heading_inputs_pfn.m , MATLAB, 86 lines - Model Code/
make_figures.m , MATLAB, 263 lines - Model Code/
make_hdc_col_mat.m , MATLAB, 23 lines - Model Code/
mutual_inh_model_n8_pape , MATLAB, 233 linesr.m - Model Code/
mutual_inh_model_n8_pape , MATLAB, 234 linesr_test.m - Model Code/
phase_shift.m , MATLAB, 23 lines - Model Code/
sigmoid_func.m , MATLAB, 8 lines - Model Code/
wrap_heading_plot.m , MATLAB, 84 lines - POST SUBMISSION ADD ONS/
alltrialstimecourse_newt , MATLAB, 235 lineshor.m - POST SUBMISSION ADD ONS/
analyzeCalciumExperiment , MATLAB, 74 lines_newThor.m - POST SUBMISSION ADD ONS/
balldata_struct.m , MATLAB, 101 lines - POST SUBMISSION ADD ONS/
findkeyparams_newThor.m , MATLAB, 19 lines - POST SUBMISSION ADD ONS/
plotanalog.m , MATLAB, 25 lines - POST SUBMISSION ADD ONS/
rotoball_fileimporter.m , MATLAB, 70 lines - POST SUBMISSION ADD ONS/
rotoball_importer.m , MATLAB, 24 lines - PaperVersion/ LNaLR.m, MATLAB, 107 lines
- PaperVersion/
LNaLRodour.m , MATLAB, 172 lines - PaperVersion/
ManifoldStimulusScript.m , MATLAB, 20 lines - PaperVersion/
TabLR.m , MATLAB, 27 lines - PaperVersion/
abovebase.m , MATLAB, 100 lines - PaperVersion/
alltrialstimecourse_hdc. , MATLAB, 123 linesm - PaperVersion/
alltrialstimecourse_pape , MATLAB, 157 linesr.m - PaperVersion/
avg_thetahist.m , MATLAB, 25 lines - PaperVersion/
column_histogram_hdc.m , MATLAB, 204 lines - PaperVersion/
comparematchedtimecourse , MATLAB, 135 liness_paper.m - PaperVersion/
decayscript_paper.m , MATLAB, 30 lines - PaperVersion/
decayslope_paper.m , MATLAB, 58 lines - PaperVersion/
directionalratio_paper.m , MATLAB, 39 lines - PaperVersion/
dirratioscript_paper.m , MATLAB, 41 lines - PaperVersion/
generateLRtreeclassifier , MATLAB, 48 liness.m - PaperVersion/
generateodourtreeclassif , MATLAB, 43 linesiers.m - PaperVersion/
generateodourtreeclassif , MATLAB, 43 linesiers_abvbase.m - PaperVersion/
generatetreeclassifiers. , MATLAB, 48 linesm - PaperVersion/
gtacr_script.m , MATLAB, 43 lines - PaperVersion/
hdc_trajs.m , MATLAB, 6 lines - PaperVersion/
makefigure1_paper.m , MATLAB, 89 lines - PaperVersion/
makefigure2_paper.m , MATLAB, 122 lines - PaperVersion/
makefigure3_paper.m , MATLAB, 20 lines - PaperVersion/
makefigure4_paper.m , MATLAB, 90 lines - PaperVersion/
makefigure5_paper.m , MATLAB, 37 lines - PaperVersion/
makeimagingplots_paper.m , MATLAB, 58 lines - PaperVersion/
makeodourtables.m , MATLAB, 13 lines - PaperVersion/
matchedtimecourses2conds , MATLAB, 72 lines_paper.m - PaperVersion/
matchedtimecourses_paper , MATLAB, 155 lines.m - PaperVersion/
maxalignedvt062617.m , MATLAB, 568 lines - PaperVersion/
mergeerror.m , MATLAB, 17 lines - PaperVersion/
organizePFNdata.m , MATLAB, 70 lines - PaperVersion/
orient_stats.m , MATLAB, 23 lines - PaperVersion/
plot_avgorientations.m , MATLAB, 84 lines - PaperVersion/
plotodourtreeerror.m , MATLAB, 41 lines - PaperVersion/
plotreeerror.m , MATLAB, 77 lines - PaperVersion/
plottreeerorvsshuff.m , MATLAB, 86 lines - PaperVersion/
polar2vec.m , MATLAB, 59 lines - PaperVersion/
processvt062617_paper.m , MATLAB, 375 lines - PaperVersion/
shufflederror.m , MATLAB, 16 lines - PaperVersion/
shufflederrorall.m , MATLAB, 33 lines - PaperVersion/
shufflederrorallodour.m , MATLAB, 28 lines - PaperVersion/
tabulateforLRclassifier. , MATLAB, 57 linesm - PaperVersion/
tabulateforclassifier.m , MATLAB, 57 lines - PaperVersion/
tabulateforodourclassifi , MATLAB, 56 lineser.m - PaperVersion/
tabulateforodourclassifi , MATLAB, 148 lineser_abvbase.m - PaperVersion/
trajectories_paper.m , MATLAB, 66 lines - PaperVersion/
treeerror.m , MATLAB, 44 lines - PaperVersion/
treeodourerror.m , MATLAB, 16 lines - PaperVersion/
vt062617_column.m , MATLAB, 553 lines - PaperVersion/
ydispersion_paper.m , MATLAB, 22 lines - RGdiff.m, MATLAB, 30 lines
- ROIManagerMoveSelections
.java , Java, 25 lines - ReadImageJROI.m, MATLAB, 569 lines
- alltrialstimecourse.m, MATLAB, 234 lines
- alltrialstimecourse_all.
m , MATLAB, 201 lines - alltrialstimecourse_mult
i.m , MATLAB, 313 lines - analyzeCalciumExperiment
.m , MATLAB, 70 lines - averagedirections.m, MATLAB, 19 lines
- avgROIs.m, MATLAB, 30 lines
- checkfits.m, MATLAB, 45 lines
- cleantrials.m, MATLAB, 68 lines
- columnvangle.m, MATLAB, 47 lines
- compare_tuning.m, MATLAB, 136 lines
- compare_tuning_old.m, MATLAB, 104 lines
- compareplot_singlemetric
new.m , MATLAB, 138 lines - copyROIs.m, MATLAB, 20 lines
- crossgenotimecourse.m, MATLAB, 120 lines
- crossgenotuning.m, MATLAB, 118 lines
- decayslope.m, MATLAB, 58 lines
- dff1.m, MATLAB, 68 lines
- dff2.m, MATLAB, 60 lines
- directionalratio.m, MATLAB, 37 lines
- directionaltuningscript.
m , MATLAB, 46 lines - extract.m, MATLAB, 113 lines
- findbase.m, MATLAB, 34 lines
- findkeyparams.m, MATLAB, 19 lines
- fixROIs.m, MATLAB, 16 lines
- fluormean.m, MATLAB, 97 lines
- fluormean_old.m, MATLAB, 92 lines
- imagingcvscript.m, MATLAB, 60 lines
- interactive_model_paper.
m , MATLAB, 349 lines - jdir.m, MATLAB, 7 lines
- lscovalldat.m, MATLAB, 69 lines
- makeStacks3.m, MATLAB, 64 lines
- makefigure4.m, MATLAB, 31 lines
- makeimagingplots.m, MATLAB, 66 lines
- makesummarytable.m, MATLAB, 189 lines
- matchedtimecourses.m, MATLAB, 165 lines
- matchedtimecourses2conds
.m , MATLAB, 72 lines - orcoacvextract.m, MATLAB, 134 lines
- parseXML.m, MATLAB, 70 lines
- peakcolanalysis.m, MATLAB, 99 lines
- pickerGUI.m, MATLAB, 103 lines
- plotROIsummary.m, MATLAB, 43 lines
- plotalldat.m, MATLAB, 37 lines
- plotcolouredROIs.m, MATLAB, 26 lines
- plotcomparevels_multipre
tty.m , MATLAB, 100 lines - plotcomparevels_multpret
ty.m , MATLAB, 112 lines - plotcomparevels_pretty.m
, MATLAB, 96 lines - plotdirections.m, MATLAB, 18 lines
- plotfluordirections.m, MATLAB, 136 lines
- plotfluordirections_pick
er.m , MATLAB, 136 lines - plotfluordirections_tile
.m , MATLAB, 164 lines - plotparameters.m, MATLAB, 93 lines
- plotparameters_FSB.m, MATLAB, 127 lines
- plotstrongestdir.m, MATLAB, 214 lines
- plotstrongestdir_save.m, MATLAB, 263 lines
- plottrackspretty.m, MATLAB, 46 lines
- pooldirections.m, MATLAB, 133 lines
- poolfluoroverROIs.m, MATLAB, 13 lines
- processvt062617.m, MATLAB, 815 lines
- quickCalciumExperiment.m
, MATLAB, 10 lines - quickcheckfits.m, MATLAB, 54 lines
- quickstrongestdir.m, MATLAB, 9 lines
- removemotion.m, MATLAB, 27 lines
- rmmotion.m, MATLAB, 82 lines
- rmmotion_cell.m, MATLAB, 82 lines
- run_orientation_analysis
.m , MATLAB, 33 lines - selectrespcolumns.m, MATLAB, 44 lines
- shadedErrorBar.m, MATLAB, 163 lines
- singleflyeventdetection.
m , MATLAB, 218 lines - singleflyeventdetectionj
ustincase.m , MATLAB, 209 lines - takeDelta.m, MATLAB, 10 lines
- tntfunctions/
comparematchedtimecourse , MATLAB, 144 liness.m - tntfunctions/
compareplot_tnt.m , MATLAB, 112 lines - tntfunctions/
plotparameters_TNT.m , MATLAB, 97 lines - trajectories.m, MATLAB, 67 lines
- trialvariabilityCV.m, MATLAB, 19 lines
- xml2struct.m, MATLAB, 183 lines
- README.md, Text, 6 lines
- license.txt, License, 24 lines
nagellab/Kathmanetal2025
371dc9de7a26edb0de4ee79b077a09283ac3a2eb, 16 June 2026Availability: 1 check, the latest on 27 September 2026: the link answers
- 27 September 2026: the link answers
46 files
- Kathman2026 Analysis and Plotting Code/
F6de - run_FSCnavmodel.m , MATLAB, 258 lines - Kathman2026 Analysis and Plotting Code/
Fig1d4de-dffVbehav.m , MATLAB, 462 lines - Kathman2026 Analysis and Plotting Code/
Fig1e-heatmap_pbump_odor , MATLAB, 185 linesaligned_wPID.m - Kathman2026 Analysis and Plotting Code/
Fig1f-align_odor_trials. , MATLAB, 169 linesm - Kathman2026 Analysis and Plotting Code/
Fig1gSup1i-bump_dur_dist , MATLAB, 451 lines, 1 match.m - Kathman2026 Analysis and Plotting Code/
Fig1hSup1jk-RegAnlys_bum , MATLAB, 579 lines, 1 matchpprebump_all_and_sep.m - Kathman2026 Analysis and Plotting Code/
Fig1ij-bumptrig_offonly_ , MATLAB, 461 linespulse_cntrlcomp.m - Kathman2026 Analysis and Plotting Code/
Fig2b-posVhead_allfly_ne , MATLAB, 267 linesw.m - Kathman2026 Analysis and Plotting Code/
Fig2d-windshifttrig.m , MATLAB, 373 lines - Kathman2026 Analysis and Plotting Code/
Fig3d-bumptrig_offonly_p , MATLAB, 564 lineslume_cntrlcomp.m - Kathman2026 Analysis and Plotting Code/
Fig3e4bcSup2abc-plot_lin , MATLAB, 168 linesfilt_sepflies.m - Kathman2026 Analysis and Plotting Code/
Fig6c-FSCnavmodel_compva , MATLAB, 373 linesrs2real2.m - Kathman2026 Analysis and Plotting Code/
Fig6e-TauscreenScatter_f , MATLAB, 122 linesromfile.m - Kathman2026 Analysis and Plotting Code/
Sup1a3b-StimnostimUwv_Li , MATLAB, 412 linesnecomp_allflymeans.m - Kathman2026 Analysis and Plotting Code/
Sup1bc-persistent_walkin , MATLAB, 464 lines, 1 matchg_ndk copy.m - Kathman2026 Analysis and Plotting Code/
Sup1e-dff_dist.m , MATLAB, 152 lines - Kathman2026 Analysis and Plotting Code/
Sup1g-bumpwidth.m , MATLAB, 179 lines - Kathman2026 Analysis and Plotting Code/
Sup1h-plot_pid.m , MATLAB, 98 lines - Kathman2026 Analysis and Plotting Code/
Sup2d-bumptrig_ononly.m , MATLAB, 409 lines - Kathman2026 Analysis and Plotting Code/
Sup2e-BumpnobumpStraight , MATLAB, 711 lines_Linecomp_allflymeans.m - Kathman2026 Analysis and Plotting Code/
Sup3d-Dff_TslineStimalig , MATLAB, 233 linesn_allflymeans.m - Kathman2026 Analysis and Plotting Code/
Sup4c-windspeed_behav_co , MATLAB, 1,033 linesmp2.m - Kathman2026 Analysis and Plotting Code/
utilities/ , MATLAB, 119 linesCNMF_noparpoolAM copy.m - Kathman2026 Analysis and Plotting Code/
utilities/ , MATLAB, 186 linesNDK_Motion_Correction5D copy.m - Kathman2026 Analysis and Plotting Code/
utilities/ , MATLAB, 132 lines, 1 matchanalyzeCalciumExperiment _newThor5D copy.m - Kathman2026 Analysis and Plotting Code/
utilities/ , MATLAB, 35 linesautocorrMatrix copy.m - Kathman2026 Analysis and Plotting Code/
utilities/ , MATLAB, 239 lines, 1 matchballdata_struct copy.m - Kathman2026 Analysis and Plotting Code/
utilities/ , MATLAB, 188 linesbumpfinder2 copy.m - Kathman2026 Analysis and Plotting Code/
utilities/ , MATLAB, 76 linescomputebumpfilters copy.m - Kathman2026 Analysis and Plotting Code/
utilities/ , MATLAB, 70 linesdff2 copy.m - Kathman2026 Analysis and Plotting Code/
utilities/ , MATLAB, 27 linesfindkeyparams_newThor5D copy.m - Kathman2026 Analysis and Plotting Code/
utilities/ , MATLAB, 124 linesmakeStacks5D_ndk copy.m - Kathman2026 Analysis and Plotting Code/
utilities/ , MATLAB, 76 linespadtrials copy.m - Kathman2026 Analysis and Plotting Code/
utilities/ , MATLAB, 161 linesplot_a_trial copy.m - Kathman2026 Analysis and Plotting Code/
utilities/ , MATLAB, 16 linesplot_stimfills copy.m - Kathman2026 Analysis and Plotting Code/
utilities/ , MATLAB, 241 linesplotalltrajs copy.m - Kathman2026 Analysis and Plotting Code/
utilities/ , MATLAB, 1,299 lines, 1 matchplottrials_flex copy.m - Kathman2026 Analysis and Plotting Code/
utilities/ , MATLAB, 20 linespredict copy.m - Kathman2026 Analysis and Plotting Code/
utilities/ , MATLAB, 340 linesprocess_rotaball2p copy.m - Kathman2026 Analysis and Plotting Code/
utilities/ , MATLAB, 32 linesquickfftxcorr copy.m - Kathman2026 Analysis and Plotting Code/
utilities/ , MATLAB, 73 linesrotaball_fileimporter copy.m - Kathman2026 Analysis and Plotting Code/
utilities/ , MATLAB, 24 linesrotaball_importer copy.m - Kathman2026 Analysis and Plotting Code/
utilities/ , MATLAB, 183 linessync2struct copy.m - run_nav_simulation.m, MATLAB, 179 lines, 2 matches
- LICENSE, License, 674 lines
- README.md, Text, 121 lines
Code availability statement
The paper has a code availability statement. Its license (CC BY-NC-ND) does not allow reproducing it here; in short, from what the harvester recognized in it:
- it points to the authors' code: nagellab/
Kathmanetal2025
Read it in the paper: doi.org/10.1038/s41467-026-75945-2.
Tracing map
Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.
What the map holds:
- 3 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 232 scripts, each with its path and the digest of its content;
- 8 matches between paragraphs of the paper and lines of the code (method lexical-v1);
- neither the text of the paper nor the code itself.
Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.
Data
Datasets cited
- zenodo:20053990, at Zenodo; found in “Data availability”
Data availability statement
The paper has a data availability statement. Its license (CC BY-NC-ND) does not allow reproducing it here; in short, from what the harvester recognized in it:
- it points to a dataset: Zenodo 20053990
Read it in the paper: doi.org/10.1038/s41467-026-75945-2.
Versions
The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.
Version 1, 27 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 4 authors, 2 keywords, 9 MeSH terms, 3 funders, 63 references, 5 RRIDs.
Cite
This paper
Kathman, N. D., Lanz, A. J., Freed, J. D., & Nagel, K. I. (2026). Neural dynamics for working memory and evidence integration during olfactory navigation in Drosophila. Nature communications, 17(1), 9082. https://
BibTeX
@article{kathman2026neur
author = {Kathman, Nicholas D. and Lanz, Aaron J. and Freed, Jacob D. and Nagel, Katherine I.},
title = {{Neural dynamics for working memory and evidence integration during olfactory navigation in Drosophila}},
journal = {Nature communications},
year = {2026},
month = jul,
volume = {17},
number = {1},
pages = {9082},
publisher = {Nature Publishing Group},
issn = {2041-1723},
doi = {10.1038/
url = {https://
pmid = {42649196},
pmcid = {PMC13518903}
}
RIS
TY - JOUR
AU - Kathman, Nicholas D.
AU - Lanz, Aaron J.
AU - Freed, Jacob D.
AU - Nagel, Katherine I.
TI - Neural dynamics for working memory and evidence integration during olfactory navigation in Drosophila
T2 - Nature communications
J2 - Nat Commun
PY - 2026
DA - 2026/
VL - 17
IS - 1
SP - 9082
SN - 2041-1723
PB - Nature Publishing Group
DO - 10.1038/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1038/
"type": "article-journal",
"title": "Neural dynamics for working memory and evidence integration during olfactory navigation in Drosophila",
"container-title": "Nature communications",
"author": [
{
"family": "Kathman",
"given": "Nicholas D."
},
{
"family": "Lanz",
"given": "Aaron J."
},
{
"family": "Freed",
"given": "Jacob D."
},
{
"family": "Nagel",
"given": "Katherine I."
}
],
"container-title-short":
"volume": "17",
"issue": "1",
"page": "9082",
"DOI": "10.1038/
"PMID": "42649196",
"PMCID": "PMC13518903",
"ISSN": "2041-1723",
"publisher": "Nature Publishing Group",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
7,
25
]
]
}
}
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.1126/sciadv.aeh7220 [code]
- Central complex representations of self-movement are sufficient to compute wind direction in flight.Journal: Science advancesIn common: shadedErrorBar, Curve Fitting Toolbox, Image Processing Toolbox, 2 other tools, 13 references, author Katherine I Nagel
- [2] doi:10.1038/s41586-026-10827-7 [code]
- A vector-based strategy for olfactory navigation in Drosophila.Journal: NatureIn common: drosophila, cognitive, 20 references
- [3] doi:10.7554/elife.107589 [code]
- Distinct evolutionary trajectories of two integration centres, the central complex and mushroom bodies, across Heliconiini butterflies.Journal: eLifeIn common: 10 references
- [4] doi:10.1038/s41586-026-10735-w [code]
- Distributed control circuits across a brain-and-cord connectome.Journal: NatureIn common: drosophila, 8 references
- [5] doi:10.3389/fnsys.2026.1822122 [code]
- Convergence-divergence circuits for multimodal integration of innate and learned opponent valences.Journal: Frontiers in systems neuroscienceIn common: 8 references
- [6] doi:10.1038/s41467-025-67545-3 [code]
- Updating an allocentric goal from lateralised egocentric visual memories.Journal: Nature communicationsIn common: Statistics and Machine Learning Toolbox, cognitive, 7 references
- [7] doi:10.1038/s41467-026-72445-1 [code]
- Perception and neural representation of intermittent odor stimuli in mice.Journal: Nature communicationsIn common: 6 references
- [8] doi:10.1093/cercor/bhag040 [code]
- BOLD response delays represent local cortical processing.Journal: Cerebral cortex (New York, N.Y. : 1991)In common: fdr_bh (Benjamini-Hochberg FDR), shadedErrorBar, Curve Fitting Toolbox, 2 other tools, cognitive
- [9] doi:10.1371/journal.pbio.3003938 [code]
- Theta oscillations tag episodic memories for sleep-dependent consolidation.Journal: PLoS biologyIn common: fdr_bh (Benjamini-Hochberg FDR), shadedErrorBar, Image Processing Toolbox, 2 other tools, cognitive
- [10] doi:10.1038/s41593-026-02357-2 [code]
- Experience reorganizes content-specific memory traces in macaques.Journal: Nature neuroscienceIn common: fdr_bh (Benjamini-Hochberg FDR), Curve Fitting Toolbox, Image Processing Toolbox, 2 other tools
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: 3 repositories of the authors' code, each at its verified commit and with its license, 232 scripts, and 8 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:6b73dca902a5047a…
Add the badge to its README
The badge links the code to this page. Copy one of these into the README of the paper's code: only you decide where it goes, and nothing is changed for you.
Markdown
[, paste the snippet at the top, then “Commit changes…” and, to review it first, “Create a new branch and start a pull request”. You open the pull request; OSCR asks for no permission.
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.
