OSCR

Presynaptic filopodia form kinapses and promote convective membrane flow to sustain synchronous neurotransmitter release.

Code ↔ Paper

3 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 3 matches
  1. [1] § RESULTS › A convection-diffusion model for filopodial effects on synchronous versus asynchronous release › Stochastic release module ↔ stochastic_vesicle_release/stochastic_vesicle_release_simulation.py, lines 74 to 160 · score 0.63 · considered asynchronous, Release events, simulated, ms, RRP, probabilities · Report a mismatch
  2. [2] § MATERIALS AND METHODS › Analysis of membrane flow and uPAINT SPT analysis ↔ spt_data_analysis/spt_data_analysis.py, lines 35 to 104 · score 0.59 · squared displacement, curves, longer, frames, SPT, fitting · Report a mismatch
  3. [3] § MATERIALS AND METHODS › Live imaging of filopodia formation and colocalization analysis with SypmOr2, LifeAct, Bsn, and GluA ↔ stochastic_vesicle_release/stochastic_vesicle_release_simulation.py, lines 74 to 160 · score 0.56 · pulse width, 4 s, RC, ms, AP, stimulation · 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

Python · 160 lines · 6.1 KB · no license · 2 matches

  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Tue Apr 8 19:14:29 2025
  4. @author: Rico's Account
  5. """
  6. import numpy as np
  7. from matplotlib import pyplot as plt
  8. from functions import integral, inverse
  9. def spike_train(time, pulse_width, t1 = 5, t2 = 100, A1 = 0.95, A2 = 0.05, plot = False):
  10. if np.isscalar(time):
  11. if time>pulse_width:
  12. return (A1*np.exp(-(time-pulse_width)/t1) + A2*np.exp(-(time-pulse_width)/t2))
  13. elif time<=pulse_width:
  14. return 1
  15. else:
  16. y = time.copy()
  17. y[time > pulse_width] = (A1*np.exp(-(time-pulse_width)/t1) + A2*np.exp(-(time-pulse_width)/t2))[time > pulse_width]
  18. y[time <= pulse_width] = 1
  19. if plot == True:
  20. plt.figure(dpi=300)
  21. plt.title('Release probability over time')
  22. plt.xlabel('Time (ms)')
  23. plt.ylabel('Release Probability (P_r = 1)')
  24. plt.plot(time, y)
  25. plt.show()
  26. return y
  27. def compute_next_timestep(a1, a2, t0, pulse_width, max_dt, increment, plot = False, debug = False):
  28. n = 1
  29. min_dt = 200
  30. while True:
  31. try:
  32. t = np.linspace(t0, t0+min_dt*n, int((min_dt)/increment))
  33. z = a1 + a2* spike_train(t, pulse_width)
  34. result = integral(t, z)
  35. if plot == True:
  36. plt.plot(t, result, color = 'red')
  37. plt.show()
  38. x = np.random.uniform(0,1)
  39. tau = inverse(t-t0, result, -np.log(1-x))
  40. break
  41. except KeyboardInterrupt:
  42. print("Stopped by user")
  43. break
  44. except Exception as e:
  45. if debug:
  46. print(e)
  47. n += 1
  48. if min_dt*n > max_dt:
  49. raise Exception('Max dt exceeded')
  50. else:
  51. if debug:
  52. print(f"dt too small, new dt = {min_dt*n}")
  53. pass
  54. return tau
  55. #Parameters
  56. simlen = 50 #simulation length in ms
  57. pulse_width = 1 #pulse width of AP stimulation in millseconds
  58. k = 0.004 #units of 1/vesicle*ms
  59. R0 = 6 #total vesicles in RRP
  60. async_thresh = 10 #ms after ap upon which releases are considered asynchronous
  61. R_init = R0/2 #initial number of vesicles in RRP
  62. P_r_list = [0.048, 0.44] #Probability of Release (per vesicle) values to iterate through
  63. async_frac_list = [] #average async release fraction per P_r in P_r_list
  64. plt.figure(dpi=600)
  65. plt.rcParams.update({'font.size': 18}) #initialize a matplotlib figure
  66. for P_r in P_r_list: #Choose a P_r from P_r_list
  67. times = [] #initialize a list containing times where a vesicle was released, aggregated across all iterations
  68. iteration = 0 #initialize number of iterations run so far
  69. while iteration < 30000: #sample at least 30000 times before stopping
  70. R = R_init #initialize RRP with R_init vesicles
  71. S = 0 #initialize with 0 vesicles released
  72. time = 0 #initialize current time in simulation as 0
  73. R_rxn = [1, -1] #if reaction 0, then RRP gains vesicle, if reaction 1, RRP loses vesicle
  74. S_rxn = [0, 1] #if reaction 0, no vesicles are released, if reaction 1, a vesicle is released
  75. while(time<simlen): #run the simulation as long as the current time is less than simlen
  76. a1 = k*(R0-R)
  77. a2 = P_r*R
  78. dt = compute_next_timestep(a1, a2, t0 = time, #compute when the first reaction happens
  79. pulse_width = pulse_width,
  80. max_dt = 4000, increment = 1e-2)
  81. time += dt #move forward to when the reaction happens
  82. propensities = [a1, a2*spike_train(time, pulse_width)] #calculate propensities
  83. p_sum = np.sum(propensities)
  84. propensities_prob = propensities/p_sum
  85. rxn = np.random.choice([0, 1], p = propensities_prob) #pick the reaction to run
  86. if rxn == 1 and time <= simlen:
  87. times.append(time) #if a release event happens at this time, add it to the list of release events
  88. R = R + R_rxn[rxn] #update the number of vesicles in RRP
  89. S = S + S_rxn[rxn] #update the number of vesicles released
  90. iteration += 1
  91. if np.mod(iteration, 100) == 0:
  92. print(f'Iteration {iteration}') #output iteration number every 100 iterations
  93. times = np.array(times)#convert times to a numpy array
  94. def compute_async_frac(u_bound, times, async_thresh):
  95. #only compute the ratio within the simulation time interval
  96. data = times[times<=u_bound]
  97. syn = np.shape(data[data<=async_thresh])[0] #releases within async_thresh ms is synchronous
  98. asyn = np.shape(data[data>async_thresh])[0] #releases after async_thresh ms is asynchronous
  99. async_frac = asyn/(syn+asyn) #compute async release fraction
  100. plt.xlim(0,u_bound)
  101. bins = np.linspace(0, 50, 25)
  102. bin_centers = (bins[:-1]+bins[1:])/2
  103. plt.xlim(0,u_bound)
  104. counts, bins = np.histogram(data, bins = bins, density = True)
  105. plt.plot(bin_centers, counts, '.', markersize = 15, label = f'P_r={P_r}')
  106. plt.plot(bin_centers, counts, '--', linewidth = 2, color = 'black') #plot the data but do not show yet; we will save everything at the end
  107. return async_frac
  108. async_frac = compute_async_frac(simlen, times, async_thresh)
  109. async_frac_list.append(async_frac)
  110. plt.xlabel('Time (ms)')
  111. plt.ylabel('Normalized Frequency')
  112. plt.axvline(async_thresh, linestyle = '--', color = 'orangered')
  113. plt.yscale('log')
  114. plt.legend()
  115. plt.savefig('/results/vesicle_releases_over_time.jpg')
  116. #%%
  117. plt.figure(dpi=300)
  118. plt.scatter(np.array(P_r_list), async_frac_list)
  119. plt.xlabel('Probability of release (per vesicle)')
  120. plt.ylabel('Asynchronous release fraction')
  121. plt.title('Async. Frac. vs. Prob. of release')
  122. plt.savefig('/results/Async_frac_vs_P_r.jpg')

stochastic_vesicle_release_simulation.py at commit df8af3c, no license · at the source

Overview

  1. Institute for Neuroscience and Cardiovascular Research, Hugh Robson Building, George Square, University of Edinburgh, Edinburgh, Scotland, UK
  2. Muir Maxwell Epilepsy Centre, Hugh Robson Building, George Square, University of Edinburgh, Edinburgh, Scotland, UK
  3. Simons Initiative for the Developing Brain, Hugh Robson Building, George Square, University of Edinburgh, Edinburgh, Scotland, UK
  4. Department of Cell Biology, School of Medicine, Johns Hopkins University, Baltimore, MD, USA
  5. Center for Cell Dynamics, School of Medicine, Johns Hopkins University, Baltimore, MD, USA
  6. Charité-Universitätsmedizin Berlin, Corporate Member of Freie Universität Berlin and Humboldt-Universität zu Berlin, Institute of Neurophysiology, Charitéplatz 1, Berlin, Germany
  7. The Roslin Institute 3D Volume Electron Microscopy Capability, Proteomics and Metabolomics Facility, The Roslin Institute, Royal (Dick) School of Veterinary Studies, College of Medicine and Veterinary Medicine, University of Edinburgh, Edinburgh, Scotland, UK
  8. Johannes Gutenberg University Mainz, Institute of Developmental Biology and Neurobiology, AG Functional Neurobiology, Biocenter 1, Hanns-Dieter Hüsch Weg 15, Mainz, Germany
  9. Kinases and Brain Development Lab, The Francis Crick Institute, London, UK
Journal: Science advances, volume 12, issue 44, article eaei2661
Dates: received 23 April 2026; accepted 25 September 2026; published online 28 October 2026; in print October 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1126/sciadv.aei2661 · PMID 42950046 · PMCID PMC13715708 · OpenAlex W7224086438
Open access: gold, a free copy (OpenAlex)
Status: code verified (how the code is found and verified)
Categories: human (organism), cellular / molecular (subfield)
Methods: Statistics, Connectivity, Evoked potentials, fMRI & imaging, Single-unit activity, calcium imaging
MeSH: Cell Membrane*, Neurotransmitter Agents*, Presynaptic Terminals*, Pseudopodia*, Synaptic Transmission*, Animals, Humans, Neuronal Plasticity, Synaptic Vesicles (* major topic)
Topic: Neuroscience and Neuropharmacology Research (Cellular and Molecular Neuroscience, Neuroscience), according to OpenAlex
Citations: not cited yet (Europe PMC); 80 references in the paper
Research resources: NHE1 RRID:AB_11153959, goat anti-rabbit Alexa Fluor 488 RRID:AB_143165, synaptophysin 1 RRID:AB_1961591, vGAT sulfocyanine 3 (vGAT-Cy3 RRID:AB_2189809, donkey anti-rabbit Alexa Fluor 568 RRID:AB_2534017, goat anti-rabbit Alexa Fluor 647 RRID:AB_2535812, synaptobrevin 2 RRID:AB_2619757, GluA Oyster550 RRID:AB_2619877, GFP-Booster_ATTO647N RRID:AB_2629215, RRID:AB_2715510, goat anti-mouse IgG IRDye 800 CW RRID:AB_621842, SV2A RRID:AB_778192, pAAV.hSyn.iGluSnFR3.v857.SGZ RRID:Addgene_178330, GPI-mApple RRID:Addgene_182868, pCAG:GPI-GFP RRID:Addgene_32601, GCaMP6f RRID:Addgene_40755, mRuby-Lifeact-7 RRID:Addgene_54560, RRID:IMSR_JAX:007788

Abstract

Synaptic plasticity is the principal mechanism by which neural circuits compute and adapt. Presynaptic plasticity is traditionally regarded as a transient adaptation of the synaptic vesicle fusion and recycling machinery, whereas the role of structural remodeling of synaptic boutons remains unclear. Here, we demonstrate a mechanical coupling between presynaptic structural remodeling and synaptic efficacy. We find that dynamic presynaptic filopodia emerge during active synaptic transmission and deform synaptic boutons while forming transient contacts with postsynaptic structures, which we term neuronal kinapses. Filopodia formation is activity dependent and occurs in intact circuits and human brain. Mechanistically, filopodial growth induces convective in-plane membrane flow toward the filopodium, accelerating release site clearance, a process associated with sustained release probability during repeated synaptic vesicle fusion. As a result, filopodia formation favors an increase in synchronous over asynchronous neurotransmitter release. These results indicate that presynaptic structural remodeling can alter the spatial organization of neurotransmission and, through the membrane flow it generates, modulate its temporal precision.

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 3 matches between paragraphs and lines of code.

Zenodo 19667730

License: CC-BY-4.0
State: the link answers, verified on 30 October 2026
Evidence: files inventoried
Size: 1 file
Software Heritage: not checked
Found in: “Data, code, and materials availability:”
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: Matplotlib (3 files), NumPy (3 files), SciPy (2 files), pandas (1 file), scikit-learn (1 file)
Availability: 1 check, the latest on 30 October 2026: the link answers (HTTP 200)
  • 30 October 2026: the link answers (HTTP 200)
4 files

jliu187/presynaptic-terminal-flow

License: none: the authors keep all their rights
State: the link answers, verified on 30 October 2026
Evidence: files inventoried
Commit: df8af3ca6885253b94babf81f87c3f085dd764e9, 20 April 2026
Languages: Python (3)
Size: 27 files, 3 scripts
Software Heritage: not archived
Found in: the Zenodo archive record
Holds: README
Not found: license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: Matplotlib (3 files), NumPy (3 files), SciPy (2 files), pandas (1 file), scikit-learn (1 file)
Availability: 1 check, the latest on 30 October 2026: the link answers
  • 30 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:

  • 2 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
  • 6 scripts, each with its path and the digest of its content;
  • 3 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 and code needed to evaluate and reproduce the results in the paper are present in the paper and/or the Supplementary Materials. All custom code used for data analysis and mathematical modeling is archived on Zenodo at https://doi.org/10.5281/zenodo.19667730. The newly generated DNA constructs in this study are available from the corresponding author (D.I.) upon reasonable request without restrictions.

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

Recorded: type, language, journal, volume, issue, pages, dates, 13 authors, 9 MeSH terms, 12 funders, 79 references, 18 RRIDs.

Cite

This paper

Jain, A., Dong, R., Kroll, J., Webster, J. F., Moss, J., Bikbaev, A., Ultanir, S. K., Gonzalez-Sulser, A., Rosenmund, C., Heine, M., Liu, J., Cousin, M. A., & Ivanova, D. (2026). Presynaptic filopodia form kinapses and promote convective membrane flow to sustain synchronous neurotransmitter release. Science advances, 12(44), eaei2661. https://doi.org/10.1126/sciadv.aei2661

BibTeX

@article{jain2026presynaptic,
author = {Jain, Akanksha and Dong, Rico and Kroll, Jana and Webster, Jack F and Moss, Jon and Bikbaev, Arthur and Ultanir, Sila K and Gonzalez-Sulser, Alfredo and Rosenmund, Christian and Heine, Martin and Liu, Jian and Cousin, Michael A and Ivanova, Daniela},
title = {{Presynaptic filopodia form kinapses and promote convective membrane flow to sustain synchronous neurotransmitter release}},
journal = {Science advances},
year = {2026},
month = oct,
volume = {12},
number = {44},
pages = {eaei2661},
publisher = {American Association for the Advancement of Science},
issn = {2375-2548},
doi = {10.1126/sciadv.aei2661},
url = {https://doi.org/10.1126/sciadv.aei2661},
pmid = {42950046},
pmcid = {PMC13715708}
}

RIS

TY - JOUR
AU - Jain, Akanksha
AU - Dong, Rico
AU - Kroll, Jana
AU - Webster, Jack F
AU - Moss, Jon
AU - Bikbaev, Arthur
AU - Ultanir, Sila K
AU - Gonzalez-Sulser, Alfredo
AU - Rosenmund, Christian
AU - Heine, Martin
AU - Liu, Jian
AU - Cousin, Michael A
AU - Ivanova, Daniela
TI - Presynaptic filopodia form kinapses and promote convective membrane flow to sustain synchronous neurotransmitter release
T2 - Science advances
J2 - Sci Adv
PY - 2026
DA - 2026/10/28
VL - 12
IS - 44
SP - eaei2661
SN - 2375-2548
PB - American Association for the Advancement of Science
DO - 10.1126/sciadv.aei2661
UR - https://doi.org/10.1126/sciadv.aei2661
LA - en
ER -

CSL-JSON

{
"id": "10.1126/sciadv.aei2661",
"type": "article-journal",
"title": "Presynaptic filopodia form kinapses and promote convective membrane flow to sustain synchronous neurotransmitter release",
"container-title": "Science advances",
"author": [
{
"family": "Jain",
"given": "Akanksha"
},
{
"family": "Dong",
"given": "Rico"
},
{
"family": "Kroll",
"given": "Jana"
},
{
"family": "Webster",
"given": "Jack F"
},
{
"family": "Moss",
"given": "Jon"
},
{
"family": "Bikbaev",
"given": "Arthur"
},
{
"family": "Ultanir",
"given": "Sila K"
},
{
"family": "Gonzalez-Sulser",
"given": "Alfredo"
},
{
"family": "Rosenmund",
"given": "Christian"
},
{
"family": "Heine",
"given": "Martin"
},
{
"family": "Liu",
"given": "Jian"
},
{
"family": "Cousin",
"given": "Michael A"
},
{
"family": "Ivanova",
"given": "Daniela"
}
],
"container-title-short": "Sci Adv",
"volume": "12",
"issue": "44",
"page": "eaei2661",
"DOI": "10.1126/sciadv.aei2661",
"PMID": "42950046",
"PMCID": "PMC13715708",
"ISSN": "2375-2548",
"publisher": "American Association for the Advancement of Science",
"URL": "https://doi.org/10.1126/sciadv.aei2661",
"language": "en",
"issued": {
"date-parts": [
[
2026,
10,
28
]
]
}
}

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-67291-6 [code]
Dynamic nanoscale architecture of synaptic vesicle fusion in mouse hippocampal neurons.
Journal: Nature communications
In common: pandas, SciPy, Matplotlib, 1 other tool, cellular / molecular, 3 references, 2 authors
[2] doi:10.1073/pnas.2407375121
Molecular architecture of synaptic vesicles.
Journal: Proceedings of the National Academy of Sciences of the United States of America
In common: cellular / molecular, 3 references, 2 authors
[3] doi:10.1038/s41467-023-38595-2 [code]
Membrane compression by synaptic vesicle exocytosis triggers ultrafast endocytosis.
Journal: Nature communications
In common: cellular / molecular, 4 references, author Jian Liu
[4] doi:10.7554/elife.107276 [code]
Deployment of endocytic machinery to periactive zones of nerve terminals is independent of active zone assembly and evoked release.
Journal: eLife
In common: scikit-learn, pandas, SciPy, 2 other tools, cellular / molecular, 5 references
[5] doi:10.7554/elife.84029 [code]
Targeted sensors for glutamatergic neurotransmission.
Journal: eLife
In common: pandas, SciPy, Matplotlib, 1 other tool, cellular / molecular, 3 references, author Christian Rosenmund
[6] doi:10.1038/s42003-025-07956-6 [code]
Power-law adaptation in the presynaptic vesicle cycle.
Journal: Communications biology
In common: scikit-learn, pandas, SciPy, 2 other tools, cellular / molecular, 3 references
[7] doi:10.1111/jnc.70551 [code]
Synaptobrevin-2 Containing Extracellular Vesicles Are Rapidly Incorporated Into Mammalian Neurons via a Dynamin-Dependent Pathway.
Journal: Journal of neurochemistry
In common: scikit-learn, SciPy, Matplotlib, 1 other tool, cellular / molecular, 4 references
[8] doi:10.1038/s41467-024-47571-3 [code]
Intracellular magnesium optimizes transmission efficiency and plasticity of hippocampal synapses by reconfiguring their connectivity.
Journal: Nature communications
In common: scikit-learn, pandas, SciPy, 2 other tools, cellular / molecular, 4 references
[9] doi:10.1523/eneuro.0369-22.2022
Differential Modes of Action of α1- and α1γ2-Autoantibodies Derived from Patients with GABA<sub>A</sub>R Encephalitis.
Journal: eNeuro
In common: cellular / molecular, 2 references, author Christian Rosenmund
[10] doi:10.1038/s41467-025-65813-w [code]
Single-cell synaptome mapping of endogenous protein subpopulations in mammalian brain.
Journal: Nature communications
In common: scikit-learn, pandas, SciPy, 2 other tools, cellular / molecular, 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.

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.1126/sciadv.aei2661.svg)](https://openscicode.org/badge/doi/10.1126/sciadv.aei2661)
<!-- oscr-badge:end -->
reStructuredText
.. oscr-badge:start

.. image:: https://openscicode.org/badge/doi/10.1126/sciadv.aei2661.svg
   :target: https://openscicode.org/badge/doi/10.1126/sciadv.aei2661
   :alt: OSCR

.. oscr-badge:end
HTML
<!-- oscr-badge:start -->
<a href="https://openscicode.org/badge/doi/10.1126/sciadv.aei2661"><img src="https://openscicode.org/badge/doi/10.1126/sciadv.aei2661.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.