Presynaptic filopodia form kinapses and promote convective membrane flow to sustain synchronous neurotransmitter release.
The 3 matches
- [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] § 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] § 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
- # -*- coding: utf-8 -*-
- """
- Created on Tue Apr 8 19:14:29 2025
- @author: Rico's Account
- """
- import numpy as np
- from matplotlib import pyplot as plt
- from functions import integral, inverse
- def spike_train(time, pulse_width, t1 = 5, t2 = 100, A1 = 0.95, A2 = 0.05, plot = False):
- if np.isscalar(time):
- if time>pulse_width:
- return (A1*np.exp(-(time-pulse_width)/t1) + A2*np.exp(-(time-pulse_width)/t2))
- elif time<=pulse_width:
- return 1
- else:
- y = time.copy()
- y[time > pulse_width] = (A1*np.exp(-(time-pulse_width)/t1) + A2*np.exp(-(time-pulse_width)/t2))[time > pulse_width]
- y[time <= pulse_width] = 1
- if plot == True:
- plt.figure(dpi=300)
- plt.title('Release probability over time')
- plt.xlabel('Time (ms)')
- plt.ylabel('Release Probability (P_r = 1)')
- plt.plot(time, y)
- plt.show()
- return y
- def compute_next_timestep(a1, a2, t0, pulse_width, max_dt, increment, plot = False, debug = False):
- n = 1
- min_dt = 200
- while True:
- try:
- t = np.linspace(t0, t0+min_dt*n, int((min_dt)/increment))
- z = a1 + a2* spike_train(t, pulse_width)
- result = integral(t, z)
- if plot == True:
- plt.plot(t, result, color = 'red')
- plt.show()
- x = np.random.uniform(0,1)
- tau = inverse(t-t0, result, -np.log(1-x))
- break
- except KeyboardInterrupt:
- print("Stopped by user")
- break
- except Exception as e:
- if debug:
- print(e)
- n += 1
- if min_dt*n > max_dt:
- raise Exception('Max dt exceeded')
- else:
- if debug:
- print(f"dt too small, new dt = {min_dt*n}")
- pass
- return tau
- #Parameters
- simlen = 50 #simulation length in ms
- pulse_width = 1 #pulse width of AP stimulation in millseconds
- k = 0.004 #units of 1/vesicle*ms
- R0 = 6 #total vesicles in RRP
- async_thresh = 10 #ms after ap upon which releases are considered asynchronous
- R_init = R0/2 #initial number of vesicles in RRP
- P_r_list = [0.048, 0.44] #Probability of Release (per vesicle) values to iterate through
- async_frac_list = [] #average async release fraction per P_r in P_r_list
- plt.figure(dpi=600)
- plt.rcParams.update({'font.size': 18}) #initialize a matplotlib figure
- for P_r in P_r_list: #Choose a P_r from P_r_list
- times = [] #initialize a list containing times where a vesicle was released, aggregated across all iterations
- iteration = 0 #initialize number of iterations run so far
- while iteration < 30000: #sample at least 30000 times before stopping
- R = R_init #initialize RRP with R_init vesicles
- S = 0 #initialize with 0 vesicles released
- time = 0 #initialize current time in simulation as 0
- R_rxn = [1, -1] #if reaction 0, then RRP gains vesicle, if reaction 1, RRP loses vesicle
- S_rxn = [0, 1] #if reaction 0, no vesicles are released, if reaction 1, a vesicle is released
- while(time<simlen): #run the simulation as long as the current time is less than simlen
- a1 = k*(R0-R)
- a2 = P_r*R
- dt = compute_next_timestep(a1, a2, t0 = time, #compute when the first reaction happens
- pulse_width = pulse_width,
- max_dt = 4000, increment = 1e-2)
- time += dt #move forward to when the reaction happens
- propensities = [a1, a2*spike_train(time, pulse_width)] #calculate propensities
- p_sum = np.sum(propensities)
- propensities_prob = propensities/p_sum
- rxn = np.random.choice([0, 1], p = propensities_prob) #pick the reaction to run
- if rxn == 1 and time <= simlen:
- times.append(time) #if a release event happens at this time, add it to the list of release events
- R = R + R_rxn[rxn] #update the number of vesicles in RRP
- S = S + S_rxn[rxn] #update the number of vesicles released
- iteration += 1
- if np.mod(iteration, 100) == 0:
- print(f'Iteration {iteration}') #output iteration number every 100 iterations
- times = np.array(times)#convert times to a numpy array
- def compute_async_frac(u_bound, times, async_thresh):
- #only compute the ratio within the simulation time interval
- data = times[times<=u_bound]
- syn = np.shape(data[data<=async_thresh])[0] #releases within async_thresh ms is synchronous
- asyn = np.shape(data[data>async_thresh])[0] #releases after async_thresh ms is asynchronous
- async_frac = asyn/(syn+asyn) #compute async release fraction
- plt.xlim(0,u_bound)
- bins = np.linspace(0, 50, 25)
- bin_centers = (bins[:-1]+bins[1:])/2
- plt.xlim(0,u_bound)
- counts, bins = np.histogram(data, bins = bins, density = True)
- plt.plot(bin_centers, counts, '.', markersize = 15, label = f'P_r={P_r}')
- plt.plot(bin_centers, counts, '--', linewidth = 2, color = 'black') #plot the data but do not show yet; we will save everything at the end
- return async_frac
- async_frac = compute_async_frac(simlen, times, async_thresh)
- async_frac_list.append(async_frac)
- plt.xlabel('Time (ms)')
- plt.ylabel('Normalized Frequency')
- plt.axvline(async_thresh, linestyle = '--', color = 'orangered')
- plt.yscale('log')
- plt.legend()
- plt.savefig('/results/vesicle_releases_over_time.jpg')
- #%%
- plt.figure(dpi=300)
- plt.scatter(np.array(P_r_list), async_frac_list)
- plt.xlabel('Probability of release (per vesicle)')
- plt.ylabel('Asynchronous release fraction')
- plt.title('Async. Frac. vs. Prob. of release')
- plt.savefig('/results/Async_frac_vs_P_r.jpg')
stochastic_vesicle_release_simulation.py at commit df8af3c, no license · at the source
Overview
- Institute for Neuroscience and Cardiovascular Research, Hugh Robson Building, George Square, University of Edinburgh, Edinburgh, Scotland, UK
- Muir Maxwell Epilepsy Centre, Hugh Robson Building, George Square, University of Edinburgh, Edinburgh, Scotland, UK
- Simons Initiative for the Developing Brain, Hugh Robson Building, George Square, University of Edinburgh, Edinburgh, Scotland, UK
- Department of Cell Biology, School of Medicine, Johns Hopkins University, Baltimore, MD, USA
- Center for Cell Dynamics, School of Medicine, Johns Hopkins University, Baltimore, MD, USA
- 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
- 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
- Johannes Gutenberg University Mainz, Institute of Developmental Biology and Neurobiology, AG Functional Neurobiology, Biocenter 1, Hanns-Dieter Hüsch Weg 15, Mainz, Germany
- Kinases and Brain Development Lab, The Francis Crick Institute, London, UK
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
Availability: 1 check, the latest on 30 October 2026: the link answers (HTTP 200)
- 30 October 2026: the link answers (HTTP 200)
4 files
- spt_data_analysis/
spt_data_analysis.py , Python, 206 lines - stochastic_vesicle_relea
se/ , Python, 31 linesfunctions.py - stochastic_vesicle_relea
se/ , Python, 160 linesstochastic_vesicle_relea se_simulation.py - README, Text, 1 line
jliu187/presynaptic-terminal-flow
df8af3ca6885253b94babf81f87c3f085dd764e9, 20 April 2026Availability: 1 check, the latest on 30 October 2026: the link answers
- 30 October 2026: the link answers
4 files
- spt_data_analysis/
spt_data_analysis.py , Python, 206 lines, 1 match - stochastic_vesicle_relea
se/ , Python, 31 linesfunctions.py - stochastic_vesicle_relea
se/ , Python, 160 lines, 2 matchesstochastic_vesicle_relea se_simulation.py - README, Text, 1 line
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/
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://
BibTeX
@article{jain2026presyna
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/
url = {https://
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/
VL - 12
IS - 44
SP - eaei2661
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": "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":
"volume": "12",
"issue": "44",
"page": "eaei2661",
"DOI": "10.1126/
"PMID": "42950046",
"PMCID": "PMC13715708",
"ISSN": "2375-2548",
"publisher": "American Association for the Advancement of Science",
"URL": "https://
"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 communicationsIn 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 AmericaIn 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 communicationsIn 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: eLifeIn 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: eLifeIn 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 biologyIn 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 neurochemistryIn 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 communicationsIn 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: eNeuroIn 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 communicationsIn 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.
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: 2 repositories of the authors' code, each at its verified commit and with its license, 6 scripts, and 3 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:514940a9985554d2…
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.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:endHTML
<!-- 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.
