OSCR

Scanning and active sampling behaviours emerge from conserved insect neural circuits

Code ↔ Paper

9 matches 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 9 matches
  1. [1] § Materials and methods › CX steering component › Intrinsic LAL oscillator ↔ oscillator_agent_fwd_inhibition.m, lines 1 to 44 · score 0.76 · steady state, Neural activity, exhaustion rate, firing rate, Intrinsic, oscillator · Report a mismatch
  2. [2] § Materials and methods › CX steering component › Intrinsic LAL oscillator ↔ oscillator_agent_fwd_inhibition.m, lines 87 to 128 · score 0.75 · synaptic exhaustion, negative feedback, oscillatory activity, reciprocally inhibiting · Report a mismatch
  3. [3] § Materials and methods › Model parameters ↔ oscillator_agent_fwd_inhibition.m, lines 1 to 44 · score 0.74 · reciprocal inhibition strength, oscillatory cycle, Firing rates, Angular speed, Forward speed, neurons · Report a mismatch
  4. [4] § Materials and methods › CX steering component › Intrinsic LAL oscillator ↔ oscillator_agent_fwd_inhibition.m, lines 87 to 128 · score 0.72 · reciprocal inhibition strength, synaptic exhaustion, negative feedback, noise, oscillator · Report a mismatch
  5. [5] § Materials and methods › CX steering component › Motor output ↔ oscillator_agent_fwd_inhibition.m, lines 130 to 168 · score 0.64 · motor noise, motor gain, angular speed, fwd, forward speed, oscillator · Report a mismatch
  6. [6] § Results and discussion › The oscillator phase influences fixation duration ↔ Ant_scanning_analysis.m, lines 271 to 288 · score 0.59 · sequential phase information, binary reversal, fixation duration, interaction, model · Report a mismatch
  7. [7] § Materials and methods › CX steering component ↔ oscillator_agent_fwd_inhibition.m, lines 47 to 84 · score 0.56 · Protocerebral bridge, cells, HDB, bump, neurons, agent · Report a mismatch
  8. [8] § Materials and methods › CX steering component ↔ oscillator_agent_fwd_inhibition.m, lines 47 to 84 · score 0.53 · Protocerebral bridge, sector, PB, neural, inhibition, body · Report a mismatch
  9. [9] § Results and discussion › CX steering influences saccade magnitude ↔ Ant_scanning_analysis.m, lines 241 to 268 · score 0.50 · random error, saccade amplitude, LME, ant, model, scanning · 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 · 306 lines · 11 KB · no license · 7 matches

  1. %% General explanation
  2. % This function models an intrinsic oscillator modulated by a CX ouptut,
  3. % The CX ouptut activity depend on the agent heading relative to its goal
  4. % heading (here constant). The oscillator left and right neuron activity
  5. % determines the agent angular speed (L-R) and forward speed (L+R) signals (+noise).
  6. % Angular speed is also linearly impeded by forward speed (the quicker the agent goes forward) the harder it is to turn.
  7. % This produce movements
  8. % At a given time (fwd_speed_inhibition_begining) an external inhibition of the forward speed can be applied
  9. % This inhibition last for a random duration (ends following a poisson statists).
  10. % If fwd_speed_inhibition is set at 0, the agent fully stop (assuming CPG creating movement is stopped)
  11. % The stopped agent needs to cumulate sufficient angular drive to start the CPG again and effect a
  12. % turn (resulting in saccads) unitl the inhibition period ceased.
  13. % If fwd_speed_inhibition is set >0, the agent forward speed is inhibited
  14. % during the inhibition time peridod, but not halted, so guidance continues as usual
  15. function [current_fixation_nb, body_orientation, Fixation_Duration,...
  16. X,Y,TH,CX_out,R,L, bearing_to_goal, ang_speed, fwd_speed]= oscillator_agent_fwd_inhibition (time, CX_gain, fwd_speed_inhibition_begining, stop_inhib_proba, fwd_speed_inhibition, myrmecia, display)
  17. % Agent parameter
  18. motor_gain_ang = 0.03; %0.03 (from neural activity to angle in Radian, act as multiplicator, the higher, the more zizaggy
  19. motor_noise = 0.1; %random angle added at each time step on both angular and forward speed
  20. CPG_ang_threshold = 2;% angular drive needed to restart the CPG movement (only used during true scan, fwd_speed =0;
  21. %desert ant forward control
  22. oscil_ctrl_fwd = 0.5;% (from neural activity to forward speed, act as power, so it increase forward variation acrooss the oscillatory cycle % 1.5 for myrmecia
  23. motor_gain_fwd = 1;
  24. %myrmecia ant forward control
  25. if myrmecia
  26. oscil_ctrl_fwd = 1.5;% (from neural activity to forward speed, act as power, so it increase forward variation acrooss the oscillatory cycle % 1.5 for myrmecia
  27. motor_gain_fwd = 0.2;
  28. end
  29. % Internal Oscillator parameters
  30. limit = 2; %max firing rate of neurons
  31. steady_state = 0.5;
  32. exhaust_rate = 0.01;
  33. reciprocal_inhibition_strength = 0.1;
  34. noise = 0.05; %will be normally distributed around 0;
  35. % CX parameters
  36. PB_thref = 0:pi/4:2*pi-0.1; %Protocerbral bridge sectors angle
  37. bump_pwr = 3; % encode neural bump width
  38. % Allocation variable cumulative
  39. [TH,X,Y,ang_speed, fwd_speed,R,L,R_NF,L_NF, CX_out,cumul_drive] = deal(nan([1,time]));
  40. %Allocation variable for scan
  41. [body_orientation, Fixation_Duration, current_fixation_nb, inhibition_time] =deal([]); % length = nb of fixation, cannot be known in advance.
  42. fix_nb = 1; % Register fix_nb
  43. frame_begining_fix = fwd_speed_inhibition_begining ; %Register the time of begining of each fixation (the first one start with the scan)
  44. %initial conditions CX
  45. th_goal = 0;
  46. HDB = ((abs(pi2pi(PB_thref - th_goal))).^bump_pwr) / pi.^bump_pwr; %hdelta cells represent the goal representation, here is assumed to be fixed in one direction
  47. % CX_out_R(1) = 0;
  48. % CX_out_L(1) = 0;
  49. % initial conditions oscillator
  50. R(1) = 1; % oscillator neuron firing rate
  51. L(1) = 0;
  52. R_NF(1) = 0; % internal exhaustion, negative feedback of neuron
  53. L_NF(1) = 0;
  54. % initial condition agent
  55. [X(1),Y(1)] = deal(0,0);
  56. TH(1) = 0;%(rand*2*pi)-pi;
  57. ang_speed(1) = 0;
  58. fwd_speed(1) = 0;
  59. cumul_drive(1) =0;
  60. speed_inhibition_time = 0;
  61. for i = 2:time
  62. if i == fwd_speed_inhibition_begining % then the inhibition on forward speed starts
  63. speed_inhibition_time=1;
  64. end
  65. % Update CX activity
  66. EPG =((pi-abs(pi2pi(PB_thref - TH(i-1)))).^bump_pwr) / pi.^bump_pwr; % EPG represent current heading bump
  67. PFL_L = HDB - circshift(EPG,+1); % PFL compare goal and current heading (2 version shifted by 45°)
  68. PFL_R = HDB - circshift(EPG,-1);
  69. PFL_L(PFL_L<0) = 0;
  70. PFL_R(PFL_R<0) = 0;
  71. CX_out_R = sum(PFL_R); % Get the output (mean instead of sum to stay between 0-1)
  72. CX_out_L = sum(PFL_L); % Note that a good left match (high CPU1_L) means turn right
  73. CX_out(i) = CX_out_R - CX_out_L;
  74. % Update oscillator activity (Negative feedback and lateral inhibition)
  75. R(i) = R(i-1) - R_NF(i-1) - (L(i-1)*reciprocal_inhibition_strength) + (noise*randn) ;
  76. L(i) = L(i-1) - L_NF(i-1) - (R(i-1)*reciprocal_inhibition_strength) + (noise*randn) ;
  77. % ----Add Input from CX output (Here each side inhibit the other, so winner
  78. % winner take all in CX before modulating the oscillator
  79. if CX_out(i)>0
  80. R(i) = R(i) + CX_out(i)*CX_gain ;
  81. else
  82. L(i) = L(i) - CX_out(i)*CX_gain ;
  83. end
  84. % % Both excite ipsi and inhibit contra
  85. % R(i) = R(i) + CX_out(i)*CX_gain ;
  86. % L(i) = L(i) - CX_out(i)*CX_gain ;
  87. % update negative feedback (synaptic exhaustion)
  88. R_NF(i) = R_NF(i-1)*(1-exhaust_rate) + (R(i) - (R_NF(i-1) + steady_state))*exhaust_rate;
  89. L_NF(i) = L_NF(i-1)*(1-exhaust_rate) + (L(i) - (L_NF(i-1) + steady_state))*exhaust_rate;
  90. %lower limit is zero
  91. if R(i) < 0; R(i) = 0; end
  92. if R(i) > limit; R(i) = limit; end
  93. if L(i) < 0; L(i) = 0; end
  94. if L(i) > limit; L(i) = limit; end
  95. %------------- move agent----------------------
  96. if speed_inhibition_time == 1 %---------------inhibition period ------------------------
  97. inhibition_time = [inhibition_time, i]; %register scanning's frames
  98. if fwd_speed_inhibition == 0 %------------------------- Full forward speed inhibition, CPG broken (proper scan)
  99. fwd_speed(i) = 0;
  100. if abs(cumul_drive(i-1)) <= CPG_ang_threshold + (noise*10*randn) % Stay fixed, but acumulate angular drive untiles it pass the threshold
  101. ang_speed(i) = 0;
  102. cumul_drive(i) = cumul_drive(i-1) + (L(i)-R(i)); %cumulate angular
  103. else % then end of fixation ; will display a saccad
  104. % get previous fixation data
  105. current_fixation_nb = [current_fixation_nb ; fix_nb] ;
  106. body_orientation = [body_orientation ; TH(i-1)];
  107. Fixation_Duration = [Fixation_Duration ; (i-frame_begining_fix)];
  108. % increament counter for next fixation
  109. fix_nb = fix_nb +1;
  110. frame_begining_fix = i;
  111. % calculate saccade
  112. ang_speed_raw = cumul_drive(i-1) + (L(i)-R(i)) ;
  113. ang_speed(i) = ang_speed_raw * motor_gain_ang * (1/(fwd_speed(i) + 0.15)) +(motor_noise*randn) ;
  114. cumul_drive(i)=0; %release the angular drive
  115. end
  116. else %------------------------------ --------non-full inhibition on forward speed, CPG not broken so angular speed proceed as normal,
  117. fwd_speed(i) = fwd_speed_inhibition + (motor_noise*randn);
  118. ang_speed_raw = L(i)-R(i); % usual angular speed control
  119. ang_speed(i) = ang_speed_raw * motor_gain_ang * (1/(fwd_speed(i) + 0.15)) +(motor_noise*randn) ;
  120. cumul_drive(i) = 0;
  121. end
  122. %Roll a dice to give a chance to end the forward speed inhibition
  123. dice = rand(1,1);
  124. if dice < stop_inhib_proba
  125. speed_inhibition_time = 0;
  126. end
  127. else % --------------------------------------------normal regime (no forward speed inhibition)
  128. fwd_speed_raw = L(i)+R(i);
  129. fwd_speed(i) = ((fwd_speed_raw .^ oscil_ctrl_fwd)+(motor_noise*randn))* motor_gain_fwd;
  130. ang_speed_raw = L(i)-R(i);
  131. ang_speed(i) = ang_speed_raw * motor_gain_ang * (1/(fwd_speed(i) + 0.15)) +(motor_noise*randn) ;
  132. cumul_drive(i) = 0;
  133. end
  134. TH(i) = TH(i-1) + ang_speed(i);
  135. [x,y] = pol2cart(TH(i),fwd_speed(i));
  136. X(i) = X(i-1) + x;
  137. Y(i) = Y(i-1) + y;
  138. end
  139. bearing_to_goal = pi2pi(TH - th_goal);
  140. body_orientation = pi2pi(body_orientation);
  141. %-------------------------Plot figures
  142. if display
  143. disp('Display is ON');
  144. cut = time/20; % Remove the begining for oscillator initialisation (unusually high values) does not overwhelm the color bar;
  145. figure()
  146. subplot(5,2,[1 3 5 7 9]);
  147. % color_line(X(cut:end),Y(cut:end),fwd_speed(cut:end),'lineWidth',2); hold on;
  148. colormap parula
  149. queue_length = -(fwd_speed(cut:end)-max(fwd_speed(cut:end)))*5; %so the saller the value, the bigger the head arrow
  150. color = fwd_speed(cut:end)+1;
  151. point_jump = 1;
  152. plot_angle_path (X(cut:end)',Y(cut:end)',TH(cut:end)',queue_length'+0.05,point_jump,2,color'); hold on
  153. axis equal
  154. text(0,0,'Start'); hold on
  155. scatter(0,0,'.','k');
  156. colorbar
  157. subplot(5,2,2);
  158. plot([0 time], [0 0], '--k'); hold on;
  159. for t = 2:time-1
  160. if CX_out(t) > 0
  161. color = 'b';
  162. elseif CX_out(t) <= 0
  163. color = 'r';
  164. end
  165. plot([t t+1], [CX_out(t) CX_out(t+1)], 'Color', color);
  166. end
  167. hCX = plot(nan, nan, 'ko', 'MarkerFaceColor', 'k');
  168. xlim([0,time]);
  169. title('Opponent CX output L(red), R(blue)');
  170. subplot(5,2,4);
  171. plot([R;L]');
  172. xlim([0,time+1]);
  173. title ('LAL neurons')
  174. subplot(5,2,6);
  175. scatter([1:length(TH)], bearing_to_goal, '.'); hold on
  176. plot([0,time+1],[0,0],'k--')
  177. ylim ([-3.15, 3.15])
  178. xlim([0,time+1]);
  179. title ('bearing to goal (0=goal direction)')
  180. subplot(5,2,8);
  181. plot(ang_speed,'k'); hold on,
  182. plot([0,time+1],[0,0],'k--')
  183. xlim([0,time+1]);
  184. title('ang speed (L - R)')
  185. subplot(5,2,10);
  186. plot(fwd_speed,'k'); hold on,
  187. xlim([0,time+1]);
  188. title('fwd speed (L + R)')
  189. %------------------ Figure focusing on the window of time during the forward speed inhibition -----
  190. if fix_nb>1 % if not, there was only one fixation.
  191. scan_duration = length(inhibition_time);
  192. figure()
  193. subplot(2,2,[1 2]);
  194. queue_length = 0.8;
  195. if length(Fixation_Duration) > 1
  196. color = Fixation_Duration;
  197. color = (color - min(color)) ; %normalise
  198. color = color/max(color);%normalise
  199. else
  200. color ='k';
  201. end
  202. point_jump = 1;
  203. plot_angle_path (current_fixation_nb,zeros([length(current_fixation_nb),1]),body_orientation,queue_length,point_jump,1,color); hold on
  204. xlim([0,length(current_fixation_nb)+1])
  205. axis equal;
  206. xlabel('fixation nb');
  207. colorbar;
  208. title('scan (color = fix duration)');
  209. subplot(2,2,3);
  210. color_line(inhibition_time - inhibition_time(1), cumul_drive(inhibition_time),inhibition_time); hold on;
  211. line([0, scan_duration-1],[CPG_ang_threshold, CPG_ang_threshold],'color','k');hold on;
  212. line([0, scan_duration-1],[-CPG_ang_threshold, -CPG_ang_threshold],'color', 'k');
  213. xlim([0, scan_duration-1]);
  214. xlabel('scan duration');
  215. title('cumul drive');
  216. subplot(2,2,4);
  217. color_line(inhibition_time - inhibition_time(1), ang_speed(inhibition_time),inhibition_time); hold on;
  218. plot([0, scan_duration-1],[0,0],'k--');
  219. xlim([0, scan_duration-1]);
  220. xlabel('scan duration');
  221. title('ang speed (L - R)');
  222. else
  223. warning('There has been only one fixation and thus no saccad (the cumul_drive didn''t reach the threshold before end of scan)')
  224. end
  225. end
  226. end

oscillator_agent_fwd_inhibition.m at commit e37c3fd, no license · at the source

Overview

Authors: Cody A Freas1,2, Antoine Wystrach1
  1. Research Center on Animal Cognition (CRCA), Center for Integrative Biology (CBI), CNRS, University of Toulouse, Toulouse, France
  2. School of Natural Sciences, Macquarie University, Sydney, Australia
Journal: eLife, volume 15, article RP110165
Dates: published online 6 October 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI · PMCID PMC13641763
Status: code verified (how the code is found and verified)
Categories: other (organism), systems (subfield)
Methods: Statistics, Single-unit activity, calcium imaging, Physiology & signal measures
Keywords: Other
Citations: not cited yet (Europe PMC); 133 references in the paper

Abstract

Navigating insects often pause and rotate to sample their surroundings, behaviours termed scanning. These and other active sampling behaviours embody navigational uncertainty and are key for spatial learning, yet their neural basis remains unclear and existing models impose scanning behaviours rather than explaining its emergence. Here, we show that desert ants’ scanning dynamics can emerge spontaneously from the same conserved neural circuits used for goal-directed navigation, without requiring a specialised scanning module. We built a biologically grounded model combining central complex steering and lateral accessory lobe oscillators and added a downstream stochastic inhibition of forward speed. This minimal system produced diverse, realistic scan dynamics; saccades, fixations, and reversals, whose features were qualitatively compared to high-speed video recordings of Melophorus bagoti scanning. Detailed analysis of these natural scans confirmed model predictions, including how scan structure depends on oscillator phase, goal-heading deviation, and navigational uncertainty. Furthermore, the model reveals that simple modulation of forward speed unifies a broad range of behaviours across ant species, from dashes to smooth oscillatory trajectories to pirouettes and voltes. Crucially, this model suggests a distributed control principle where forward speed acts as a single adjustable parameter, for both individuals and through evolution, to regulate the balance between goal-driven exploitation and information-seeking exploration.

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.

antnavteam/CX_oscillator_scans

License: none: the authors keep all their rights
State: the link answers, verified on 7 October 2026
Evidence: files inventoried
Commit: e37c3fdeb6652679eb1254b6d3b6c376b9f5d590, 7 October 2025
Languages: MATLAB (4)
Size: 5 files, 4 scripts
Software Heritage: not archived
Found in: “Data availability”
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Availability: 1 check, the latest on 7 October 2026: the link answers
  • 7 October 2026: the link answers
4 files

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;
  • 4 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 availability

All data, documentation, and code are made available online at https://github.com/antnavteam/CX_oscillator_scans (copy archived at antnavteam, 2026).

The following previously published dataset was used:

Deeti S, Cheng K, Graham P. 2023. Scan Data. Open Science Framework. e7qag

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

Recorded: type, language, journal, volume, pages, dates, 2 authors, 1 keyword, 127 references.

Cite

This paper

Freas, C. A., & Wystrach, A. (2026). Scanning and active sampling behaviours emerge from conserved insect neural circuits. eLife, 15, RP110165.

BibTeX

@article{freas2026scanning,
author = {Freas, Cody A and Wystrach, Antoine},
title = {{Scanning and active sampling behaviours emerge from conserved insect neural circuits}},
journal = {eLife},
year = {2026},
month = oct,
volume = {15},
pages = {RP110165},
publisher = {eLife Sciences Publications, Ltd},
issn = {2050-084X},
pmcid = {PMC13641763}
}

RIS

TY - JOUR
AU - Freas, Cody A
AU - Wystrach, Antoine
TI - Scanning and active sampling behaviours emerge from conserved insect neural circuits
T2 - eLife
J2 - eLife
PY - 2026
DA - 2026/10/07
VL - 15
SP - RP110165
SN - 2050-084X
PB - eLife Sciences Publications, Ltd
LA - en
ER -

CSL-JSON

{
"id": "pmcid:PMC13641763",
"type": "article-journal",
"title": "Scanning and active sampling behaviours emerge from conserved insect neural circuits",
"container-title": "eLife",
"author": [
{
"family": "Freas",
"given": "Cody A"
},
{
"family": "Wystrach",
"given": "Antoine"
}
],
"container-title-short": "eLife",
"volume": "15",
"page": "RP110165",
"PMCID": "PMC13641763",
"ISSN": "2050-084X",
"publisher": "eLife Sciences Publications, Ltd",
"language": "en",
"issued": {
"date-parts": [
[
2026,
10,
7
]
]
}
}

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-67545-3 [code]
Updating an allocentric goal from lateralised egocentric visual memories.
Journal: Nature communications
In common: Statistics and Machine Learning Toolbox, other, 46 references
[2] doi:10.1371/journal.pcbi.1012670 [code]
Lateralised memory networks may explain the use of higher-order visual features in navigating insects.
Journal: PLoS computational biology
In common: other, 17 references
[3] doi:10.3389/fncom.2022.948973 [code]
Production of adaptive movement patterns <i>via</i> an insect inspired spiking neural network central pattern generator.
Journal: Frontiers in computational neuroscience
In common: other, 15 references
[4] doi:10.7554/elife.107589 [code]
Distinct evolutionary trajectories of two integration centres, the central complex and mushroom bodies, across Heliconiini butterflies.
Journal: eLife
In common: other, 17 references
[5] doi:10.1098/rspb.2023.0767 [code]
A model of cue integration as vector summation in the insect brain.
Journal: Proceedings. Biological sciences
In common: other, 13 references
[6] doi:10.1038/s41586-024-07039-2 [code]
Transforming a head direction signal into a goal-oriented steering command.
Journal: Nature
In common: Statistics and Machine Learning Toolbox, systems, 12 references
[7] doi:10.1038/s41467-026-75945-2 [code]
Neural dynamics for working memory and evidence integration during olfactory navigation in Drosophila.
Journal: Nature communications
In common: Statistics and Machine Learning Toolbox, 11 references
[8] doi:10.7554/elife.102230 [code]
Neural circuit mechanisms for steering control in walking &lt;i&gt;Drosophila&lt;/i&gt;.
Journal: eLife
In common: Statistics and Machine Learning Toolbox, systems, 10 references
[9] doi:10.1038/s41586-026-10827-7 [code]
A vector-based strategy for olfactory navigation in Drosophila.
Journal: Nature
In common: 11 references
[10] doi:10.1038/s41467-022-32247-7 [code]
A neural circuit for wind-guided olfactory navigation.
Journal: Nature communications
In common: Statistics and Machine Learning Toolbox, systems, 10 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/repo/github.com/antnavteam/cx_oscillator_scans.svg)](https://openscicode.org/badge/repo/github.com/antnavteam/cx_oscillator_scans)
<!-- oscr-badge:end -->
reStructuredText
.. oscr-badge:start

.. image:: https://openscicode.org/badge/repo/github.com/antnavteam/cx_oscillator_scans.svg
   :target: https://openscicode.org/badge/repo/github.com/antnavteam/cx_oscillator_scans
   :alt: OSCR

.. oscr-badge:end
HTML
<!-- oscr-badge:start -->
<a href="https://openscicode.org/badge/repo/github.com/antnavteam/cx_oscillator_scans"><img src="https://openscicode.org/badge/repo/github.com/antnavteam/cx_oscillator_scans.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.