OSCR

Astrocyte Proximity Protects Synapses From Human Amyloid-Beta Induced Degeneration in a Mouse Ex Vivo Model of Early Alzheimer's Disease.

Code ↔ Paper

4 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 4 matches
  1. [1] § Materials and Methods › Data Analysis › Analysis of Calcium Activity and Event Extraction ↔ Synapse_Event_Detection_Runme.ipynb, lines 69–192 · score 0.92 · constrained_foopsi, optimize_g, s_min, PRE recordings, scored normalised, Event frequency
  2. [2] § Results › Multicolour Imaging of Synaptic Activity and Astrocyte–Neuron Interactions ↔ Single_event_calculation.ipynb, lines 511–536 · score 0.74 · GCaMP6s, jGCaMP8s, peak amplitude, jGCaMP7b, GECI, variants
  3. [3] § Materials and Methods › Structural and Calcium Imaging › Comparison of GCaMP Variants ↔ Single_event_calculation.ipynb, lines 511–536 · score 0.65 · GCaMP6s, jGCaMP8s, jGCaMP7b, Variants
  4. [4] § Materials and Methods › Data Analysis › Comparison of GCaMP Variants ↔ Synapse_Event_Detection_Runme.ipynb, lines 69–192 · score 0.62 · event detection, scored normalised, raw, optimize, OASIS, frame

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

Jupyter notebook · 448 lines · 14 KB · Apache-2.0 · 2 matches

  1. # %%
  2. import pandas as pd
  3. import numpy as np
  4. import matplotlib.pyplot as plt
  5. import seaborn as sns
  6. import os
  7. import matplotlib as mpl
  8. import caiman as cm
  9. from caiman.source_extraction import cnmf
  10. from caiman.utils.utils import download_demo
  11. from caiman.utils.visualization import inspect_correlation_pnr
  12. from caiman.source_extraction.cnmf import params as params
  13. from caiman.source_extraction.cnmf.deconvolution import constrained_foopsi
  14. from caiman.source_extraction.cnmf.deconvolution import constrained_oasisAR2
  15. def Okada_filter(trace):
  16. """Trace is a list.
  17. This will apply Okada filter to it as described in Ishikawa et al, STAR Protocols 2020"""
  18. x=trace.copy()
  19. M=np.mean(x)
  20. SD=np.std(x)
  21. T=len(x)
  22. for t in range(2, T-1):
  23. Z=abs(x[t+1]-M)/SD
  24. if (x[t]-x[t+1])*(x[t]-x[t+1])>0:
  25. x[t]=(x[t-1]+Z*x[t]+x[t+1])/(2+Z)
  26. return x
  27. def subtract_baseline(trace, order):
  28. x=np.linspace(0,len(trace)*0.05,len(trace))
  29. p = np.poly1d(np.polyfit(x, trace, int(order)))
  30. return p
  31. def dFF(trace):
  32. """Trace is a list.
  33. This will calculate deltaF/F0"""
  34. x=trace.copy()
  35. M=np.mean(trace)
  36. T=len(trace)
  37. for t in range(0, T):
  38. x[t]=(trace[t]-M)/M
  39. return x
  40. def process(trace, polynomial_order=10, Okada_order=4):
  41. """Trace is a list.
  42. This will subtract the background with a nth order polynomial and apply Okada filter (m interactions)
  43. n=polynomial_order (default is 10)
  44. m=number of consecutive Okada iteraction (default is 4)
  45. """
  46. x=trace.tolist().copy()
  47. baseline=subtract_baseline(x,polynomial_order)
  48. t = np.linspace(0, len(x)*0.05,len(x))
  49. x = [a - b for a, b in zip(x, baseline(t))]
  50. for i in range(Okada_order):
  51. x=Okada_filter(x)
  52. return x
  53. framerate=20 #Hz for interframe time 50ms
  54. # %%
  55. #Select PRE ROIs
  56. folder=r'\\AA06299633\S2410250541\Results' # Input folder
  57. file="20241210_S2410250541_field01_day1_mScarletxCre_Ch1mScarlet-Ch2GCaMP7b_PRE_Results.csv" #File location of PRE recording
  58. df=pd.read_csv(os.path.join(folder, file))
  59. df=df.iloc[:, 1:]
  60. for column in df.columns:
  61. if column[:4]!='Mean' :
  62. df=df.drop(column, axis=1)
  63. elif column[:4]=='Mean' :
  64. df=df.rename(columns={column:'ROI'+column[4:]})
  65. df2=df.copy()
  66. for column in df2.columns:
  67. df2[column]=dFF(df2[column]) #calculates Delta F/F
  68. df2[column]=process(df2[column]) # subtracts background and filters noise
  69. cells=df.columns
  70. from matplotlib import gridspec
  71. from sklearn.preprocessing import normalize
  72. #plotting params
  73. mpl.rcParams['axes.facecolor'] = 'white'
  74. mpl.rcParams['axes.edgecolor'] = 'black'
  75. mpl.rcParams['axes.linewidth'] = '0.5'
  76. mpl.rcParams['axes.labelsize'] = '8'
  77. mpl.rcParams['axes.labelcolor'] = 'black'
  78. mpl.rcParams['xtick.color'] = 'black'
  79. mpl.rcParams['xtick.labelsize'] = '4'
  80. mpl.rcParams['ytick.labelsize'] = '4'
  81. mpl.rcParams['ytick.color'] = 'black'
  82. bl=None
  83. c1=None #initial calcium concentation (value)
  84. g=None
  85. sn=10 #noise SD
  86. p=1
  87. method_deconvolution='oasis'
  88. bas_nonneg=True #baseline estimation
  89. noise_range=[0.25, 0.75] #frquency range to estimate noise
  90. noise_method='logmexp' #method to estimate noise
  91. lags=5
  92. fudge_factor=.99
  93. verbosity=False
  94. solvers=None
  95. optimize_g=5
  96. s_min=2.5 #if z-scored use s_min=2.5 equivalent to 2.5SD ; elsse use s_min between .1 and .25 (usually .2)
  97. #--------------------------------------
  98. trace_dlc = np.array(df2.values.astype(float)).transpose()[:]
  99. cells_tv = cells[:]
  100. all_events = []
  101. all_events_count=[]
  102. all_events_frequency=[]
  103. for cell in range(len(trace_dlc)):
  104. raw_trace = trace_dlc[cell]
  105. raw_trace = np.array(raw_trace)#/max(np.array(raw_trace)) #If we want traces between 0 and 1 (OPTIONAL)
  106. raw_trace = (raw_trace - np.mean(raw_trace))/np.std(raw_trace) #z-score normalised
  107. #OASIS function run through
  108. events = constrained_foopsi(raw_trace,
  109. bl=bl,
  110. c1=c1,
  111. g=g,
  112. sn=sn,
  113. p=p,
  114. method_deconvolution=method_deconvolution,
  115. bas_nonneg=bas_nonneg,
  116. noise_range=noise_range,
  117. noise_method=noise_method,
  118. lags=lags,
  119. fudge_factor=fudge_factor,
  120. verbosity=verbosity,
  121. solvers=solvers,
  122. optimize_g=optimize_g,
  123. s_min=s_min)
  124. all_events.append(events[5])
  125. all_events_frequency.append(np.count_nonzero(events[5])/len(events[5])*framerate)
  126. all_events_count.append(np.count_nonzero(events[5]))
  127. #Visualising data
  128. fig, axs = plt.subplots(3, 1, figsize=(5,1), dpi=400, facecolor='w', edgecolor='k' )
  129. gs = gridspec.GridSpec(3, 1, height_ratios=[1,1,1], )
  130. fig.suptitle(cells_tv[cell], fontsize=10)
  131. for ax in fig.get_axes():
  132. ax.tick_params(bottom=False, labelbottom=False, left=False, labelleft=False)
  133. #Raw traces
  134. axs[0] = plt.subplot(gs[0])
  135. axs[0] = plt.plot( raw_trace, c='green', linewidth=.5)
  136. #OASIS noise consideration
  137. axs[1] = plt.subplot(gs[1])
  138. axs[1] = plt.plot(events[0], c='b', linewidth=.5)
  139. #Events plotted on raw trace
  140. axs[2] = plt.subplot(gs[2])
  141. axs[2] = plt.plot(raw_trace, c='k', alpha=0.1, linewidth=.5)
  142. axs[2] = plt.scatter( np.arange(0,len(events[5]),1),events[5], c='r', s=.5)
  143. fig.text(0.5, -0.1, 'Frame', ha='center', fontsize=5)
  144. fig.text(0.05, 0.5, u'Δ F/F (z-score)', va='center', rotation='vertical', fontsize=5)
  145. plt.subplots_adjust(wspace=0, hspace=0)
  146. plt.show()
  147. df_events=pd.DataFrame(data={'ROI':cells,'PRE_n':all_events_count,'PRE_Hz':all_events_frequency})
  148. # %%
  149. #Select POST ROIs
  150. file="20241210_S2410250541_field01_day1_mScarletxCre_Ch1mScarlet-Ch2GCaMP7b_POST_Results.csv" #File location of POST recording
  151. df=pd.read_csv(os.path.join(folder, file))
  152. df=df.iloc[:, 1:]
  153. for column in df.columns:
  154. if column[:4]!='Mean' :
  155. df=df.drop(column, axis=1)
  156. elif column[:4]=='Mean' :
  157. df=df.rename(columns={column:'ROI'+column[4:]})
  158. df2=df.copy()
  159. for column in df2.columns:
  160. df2[column]=dFF(df2[column]) #calculates Delta F/F
  161. df2[column]=process(df2[column]) # subtracts background and filters noise
  162. cells=df.columns
  163. from matplotlib import gridspec
  164. from sklearn.preprocessing import normalize
  165. #plotting params
  166. mpl.rcParams['axes.facecolor'] = 'white'
  167. mpl.rcParams['axes.edgecolor'] = 'black'
  168. mpl.rcParams['axes.linewidth'] = '0.5'
  169. mpl.rcParams['axes.labelsize'] = '8'
  170. mpl.rcParams['axes.labelcolor'] = 'black'
  171. mpl.rcParams['xtick.color'] = 'black'
  172. mpl.rcParams['xtick.labelsize'] = '4'
  173. mpl.rcParams['ytick.labelsize'] = '4'
  174. mpl.rcParams['ytick.color'] = 'black'
  175. bl=None
  176. c1=None #initial calcium concentation (value)
  177. g=None
  178. sn=10 #noise SD
  179. p=1
  180. method_deconvolution='oasis'
  181. bas_nonneg=True #baseline estimation
  182. noise_range=[0.25, 0.75] #frquency range to estimate noise
  183. noise_method='logmexp' #method to estimate noise
  184. lags=5
  185. fudge_factor=.99
  186. verbosity=False
  187. solvers=None
  188. optimize_g=5
  189. s_min=2.2 #if z-scored use s_min=2 equivalent to 2SD ; elsse use s_min between .1 and .25 (usually .2)
  190. #--------------------------------------
  191. trace_dlc = np.array(df2.values.astype(float)).transpose()[:]
  192. cells_tv = cells[:]
  193. all_events = []
  194. all_events_count=[]
  195. all_events_frequency=[]
  196. for cell in range(len(trace_dlc)):
  197. raw_trace = trace_dlc[cell]
  198. raw_trace = np.array(raw_trace)#/max(np.array(raw_trace)) #If we want traces between 0 and 1 (OPTIONAL)
  199. raw_trace = (raw_trace - np.mean(raw_trace))/np.std(raw_trace) #z-score normalised
  200. #OASIS function run through
  201. events = constrained_foopsi(raw_trace,
  202. bl=bl,
  203. c1=c1,
  204. g=g,
  205. sn=sn,
  206. p=p,
  207. method_deconvolution=method_deconvolution,
  208. bas_nonneg=bas_nonneg,
  209. noise_range=noise_range,
  210. noise_method=noise_method,
  211. lags=lags,
  212. fudge_factor=fudge_factor,
  213. verbosity=verbosity,
  214. solvers=solvers,
  215. optimize_g=optimize_g,
  216. s_min=s_min)
  217. all_events.append(events[5])
  218. all_events_frequency.append(np.count_nonzero(events[5])/len(events[5])*framerate)
  219. all_events_count.append(np.count_nonzero(events[5]))
  220. #Viualising data
  221. fig, axs = plt.subplots(3, 1, figsize=(5,1), dpi=400, facecolor='w', edgecolor='k' )
  222. gs = gridspec.GridSpec(3, 1, height_ratios=[1,1,1], )
  223. fig.suptitle(cells_tv[cell], fontsize=10)
  224. for ax in fig.get_axes():
  225. ax.tick_params(bottom=False, labelbottom=False, left=False, labelleft=False)
  226. #Raw traces
  227. axs[0] = plt.subplot(gs[0])
  228. axs[0] = plt.plot( raw_trace, c='green', linewidth=.5)
  229. #OASIS noise consideration
  230. axs[1] = plt.subplot(gs[1])
  231. axs[1] = plt.plot(events[0], c='b', linewidth=.5)
  232. #Events plotted on raw trace
  233. axs[2] = plt.subplot(gs[2])
  234. axs[2] = plt.plot(raw_trace, c='k', alpha=0.1, linewidth=.5)
  235. axs[2] = plt.scatter( np.arange(0,len(events[5]),1),events[5], c='r', s=.5)
  236. fig.text(0.5, -0.1, 'Frame', ha='center', fontsize=5)
  237. fig.text(0.05, 0.5, u'Δ F/F (z-score)', va='center', rotation='vertical', fontsize=5)
  238. plt.subplots_adjust(wspace=0, hspace=0)
  239. plt.show()
  240. df_events_post=pd.DataFrame(data={'ROI':cells,'POST_n':all_events_count,'POST_Hz':all_events_frequency})
  241. df_events=pd.merge(df_events, df_events_post, on='ROI')
  242. # %%
  243. #Select POST ROIs
  244. file="20241210_S2410250541_field01_day1_mScarletxCre_Ch1mScarlet-Ch2GCaMP7b_POST2_Results.csv" #Optional :File location of second POST recording
  245. df=pd.read_csv(os.path.join(folder, file))
  246. df=df.iloc[:, 1:]
  247. for column in df.columns:
  248. if column[:4]!='Mean' :
  249. df=df.drop(column, axis=1)
  250. elif column[:4]=='Mean' :
  251. df=df.rename(columns={column:'ROI'+column[4:]})
  252. df2=df.copy()
  253. for column in df2.columns:
  254. df2[column]=dFF(df2[column]) #calculates Delta F/F
  255. df2[column]=process(df2[column]) # subtracts background and filters noise
  256. cells=df.columns
  257. from matplotlib import gridspec
  258. from sklearn.preprocessing import normalize
  259. #plotting params
  260. mpl.rcParams['axes.facecolor'] = 'white'
  261. mpl.rcParams['axes.edgecolor'] = 'black'
  262. mpl.rcParams['axes.linewidth'] = '0.5'
  263. mpl.rcParams['axes.labelsize'] = '8'
  264. mpl.rcParams['axes.labelcolor'] = 'black'
  265. mpl.rcParams['xtick.color'] = 'black'
  266. mpl.rcParams['xtick.labelsize'] = '4'
  267. mpl.rcParams['ytick.labelsize'] = '4'
  268. mpl.rcParams['ytick.color'] = 'black'
  269. bl=None
  270. c1=None #initial calcium concentation (value)
  271. g=None
  272. sn=10 #noise SD
  273. p=1
  274. method_deconvolution='oasis'
  275. bas_nonneg=True #baseline estimation
  276. noise_range=[0.25, 0.75] #frquency range to estimate noise
  277. noise_method='logmexp' #method to estimate noise
  278. lags=5
  279. fudge_factor=.99
  280. verbosity=False
  281. solvers=None
  282. optimize_g=5
  283. s_min=2.2 #if z-scored use s_min=2 equivalent to 2SD ; elsse use s_min between .1 and .25 (usually .2)
  284. #--------------------------------------
  285. trace_dlc = np.array(df2.values.astype(float)).transpose()[:]
  286. cells_tv = cells[:]
  287. all_events = []
  288. all_events_count=[]
  289. all_events_frequency=[]
  290. for cell in range(len(trace_dlc)):
  291. raw_trace = trace_dlc[cell]
  292. raw_trace = np.array(raw_trace)#/max(np.array(raw_trace)) #If we want traces between 0 and 1 (OPTIONAL)
  293. raw_trace = (raw_trace - np.mean(raw_trace))/np.std(raw_trace) #z-score normalised
  294. #OASIS function run through
  295. events = constrained_foopsi(raw_trace,
  296. bl=bl,
  297. c1=c1,
  298. g=g,
  299. sn=sn,
  300. p=p,
  301. method_deconvolution=method_deconvolution,
  302. bas_nonneg=bas_nonneg,
  303. noise_range=noise_range,
  304. noise_method=noise_method,
  305. lags=lags,
  306. fudge_factor=fudge_factor,
  307. verbosity=verbosity,
  308. solvers=solvers,
  309. optimize_g=optimize_g,
  310. s_min=s_min)
  311. all_events.append(events[5])
  312. all_events_frequency.append(np.count_nonzero(events[5])/len(events[5])*framerate)
  313. all_events_count.append(np.count_nonzero(events[5]))
  314. #Viualising data
  315. fig, axs = plt.subplots(3, 1, figsize=(5,1), dpi=400, facecolor='w', edgecolor='k' )
  316. gs = gridspec.GridSpec(3, 1, height_ratios=[1,1,1], )
  317. fig.suptitle(cells_tv[cell], fontsize=10)
  318. for ax in fig.get_axes():
  319. ax.tick_params(bottom=False, labelbottom=False, left=False, labelleft=False)
  320. #Raw traces
  321. axs[0] = plt.subplot(gs[0])
  322. axs[0] = plt.plot( raw_trace, c='green', linewidth=.5)
  323. #OASIS noise consideration
  324. axs[1] = plt.subplot(gs[1])
  325. axs[1] = plt.plot(events[0], c='b', linewidth=.5)
  326. #Events plotted on raw trace
  327. axs[2] = plt.subplot(gs[2])
  328. axs[2] = plt.plot(raw_trace, c='k', alpha=0.1, linewidth=.5)
  329. axs[2] = plt.scatter( np.arange(0,len(events[5]),1),events[5], c='r', s=.5)
  330. fig.text(0.5, -0.1, 'Frame', ha='center', fontsize=5)
  331. fig.text(0.05, 0.5, u'Δ F/F (z-score)', va='center', rotation='vertical', fontsize=5)
  332. plt.subplots_adjust(wspace=0, hspace=0)
  333. plt.show()
  334. df_events_post=pd.DataFrame(data={'ROI':cells,'POST2_n':all_events_count,'POST2_Hz':all_events_frequency})
  335. df_events=pd.merge(df_events, df_events_post, on='ROI')
  336. # %%
  337. df_events
  338. # %%
  339. df_events.to_csv(os.path.join(folder, file[:21]+'EVE.csv'))
  340. # %%

Synapse_Event_Detection_Runme.ipynb at commit 48fd558, under Apache-2.0 · at the source

Overview

Authors: Francesco Gobbo1, Declan King1, Jane Tulloch1, Davide Gobbo2, Calum Bonthron1, Soraya Meftah1, Caleb Stoddart‐Campbelton1, Arisa Tamura3, Jamie Rose1, Colin Smith1, Claire Durrant1, Tara L Spires‐Jones1
  1. Institute for Neuroscience and Cardiovascular Research and UK Dementia Research Institute, University of Edinburgh, Edinburgh, UK
  2. Department of Molecular Physiology, Centre for Integrative Physiology and Molecular Medicine (CIPMM), University of Saarland, Homburg, Germany
  3. Department of Biological Sciences, Tokyo Metropolitan University, Tokyo, Japan
Institutions: UK Dementia Research Institute (United Kingdom); University of Edinburgh (United Kingdom); Saarland University (Germany); Tokyo Metropolitan University (Japan)
Journal: The European journal of neuroscience, volume 63, issue 7, article e70480
Dates: received 3 September 2025; accepted 9 March 2026; published online 28 March 2026; in print April 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1111/ejn.70480 · PMID 41902755 · PMCID PMC13032744 · OpenAlex W7142270710
Open access: hybrid, a free copy (OpenAlex)
Status: code verified
Categories: histology / microscopy (modality), human (organism), mouse (organism), Alzheimer's / dementia (population), cellular / molecular (subfield)
Methods: Evoked potentials, Statistics, fMRI & imaging, Single-unit activity, calcium imaging
Keywords: Alzheimer's disease, astrocytes, Aβ, synapse, synapse loss
MeSH: Alzheimer Disease*, Amyloid beta-Peptides*, Astrocytes*, Synapses*, Animals, Brain, Dendritic Spines, Disease Models, Animal, Humans, Male, Mice, Mice, Inbred C57BL (* major topic)
Topic: Alzheimer's disease research and treatments (Physiology, Medicine), according to OpenAlex
Funding: Alzheimer's Society (AS-PG-21-006); James Dyson Foundation; The James Dyson Foundation; UK Dementia Research Institute (UK DRI-4204, UK DRI‐4204); Race Against Dementia (ARUK-RADF-2019a-001)
Citations: not cited yet (Europe PMC); 87 references in the paper

Abstract

Synapse loss is the strongest pathological correlate of cognitive decline in Alzheimer's disease (ad) and is most pronounced around amyloid plaque pathology in the brain. Although mechanisms remain incompletely understood, hyperactivity downstream of soluble amyloid beta (Aβ) is strongly implicated in synapse degeneration. Engulfment of synapses by reactive astrocytes was observed in end‐stage disease tissue, particularly around plaques. Due to astrocytes' role in synaptic modulation, we hypothesised that astrocytes could modulate synapse degeneration downstream of soluble Aβ earlier in disease pathogenesis. To test this, we challenged organotypic mouse brain slices with human ad brain homogenates containing Aβ. Changes in synaptic activity were detected 2 h after Aβ challenge, and spine loss was seen after 24 h. We observe that Aβ‐containing homogenate induces a significant loss of spines compared with controls. Aβ‐containing homogenate also causes a significant increase in the frequency of synaptic calcium events, particularly in synapses lost at 24 h. Dendritic spines associated with astrocytic processes were significantly more likely to survive at 24 h after Aβ challenge and had reduced levels of externalised phosphatidyl serine despite no effect of astrocyte proximity on synaptic activity. Inhibiting astrocytic glutamate transporters prevented the protective effects of astrocytes on synapses, indicating that astrocytes are protective of synapses at least in part through removing excess glutamate from the synaptic microenvironment. Our findings suggest that an organotypic mouse brain slice model challenged with disease tissue homogenates effectively recapitulates key features of early AD, including synapse loss and hyperexcitability. Moreover, they indicate that astrocytes play a protective role in preserving synapses, particularly during short‐term exposure to low concentrations of toxic Aβ. Future work is needed to elucidate the role of astrocyte‐mediated synapse phagocytosis in response to chronic Aβ exposure.

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

francesco-gobbo/astrocyte-proximity-protects-synapses-in-ad

License: Apache-2.0
State: the link answers, verified on 28 September 2026
Evidence: files inventoried
Commit: 48fd5583b2f733ef8b43398879ae458aa4b03ce1, 9 February 2026
Languages: Jupyter (3), R (1)
Size: 9 files, 4 scripts
Software Heritage: not archived
Found in: “Data Availability Statement”
Holds: README, license file, 4 notebooks
Not found: CITATION.cff, environment file, tests, continuous integration, documentation
Tools: Matplotlib (3 files), NumPy (3 files), pandas (3 files), CaImAn (2 files), scikit-learn (2 files), SciPy (2 files), seaborn (2 files), emmeans (1 file), ggplot2 (1 file), lme4 (1 file), lmerTest (1 file), reshape2 (1 file), statsmodels (1 file), tidyverse (1 file)
Availability: 1 check, the latest on 28 September 2026: the link answers
  • 28 September 2026: the link answers
6 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;
  • 4 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 Statement

The code used in the paper is available at https://github.com/francesco‐gobbo/Astrocyte‐proximity‐protects‐synapses‐in‐AD/tree/main (https://github.com/francesco-gobbo/Astrocyte-proximity-protects-synapses-in-AD/tree/main). The data used in this paper are available at Edinburgh DataShare: https://doi.org/10.7488/ds/8077 (within the collection https://datashare.ed.ac.uk/handle/10283/3076). Original images are available from the corresponding author upon request.

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 2, 28 September 2026

  • Publisher: n/a → Wiley

Version 1, 28 September 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 12 authors, 5 keywords, 12 MeSH terms, 5 funders, 85 references.

Cite

This paper

Gobbo, F., King, D., Tulloch, J., Gobbo, D., Bonthron, C., Meftah, S., Stoddart‐Campbelton, C., Tamura, A., Rose, J., Smith, C., Durrant, C., & Spires‐Jones, T. L. (2026). Astrocyte Proximity Protects Synapses From Human Amyloid-Beta Induced Degeneration in a Mouse Ex Vivo Model of Early Alzheimer's Disease. The European journal of neuroscience, 63(7), e70480. https://doi.org/10.1111/ejn.70480

BibTeX

@article{gobbo2026astrocyte,
author = {Gobbo, Francesco and King, Declan and Tulloch, Jane and Gobbo, Davide and Bonthron, Calum and Meftah, Soraya and Stoddart‐Campbelton, Caleb and Tamura, Arisa and Rose, Jamie and Smith, Colin and Durrant, Claire and Spires‐Jones, Tara L},
title = {{Astrocyte Proximity Protects Synapses From Human Amyloid-Beta Induced Degeneration in a Mouse Ex Vivo Model of Early Alzheimer's Disease}},
journal = {The European journal of neuroscience},
year = {2026},
month = apr,
volume = {63},
number = {7},
pages = {e70480},
publisher = {Wiley},
issn = {0953-816X},
doi = {10.1111/ejn.70480},
url = {https://doi.org/10.1111/ejn.70480},
pmid = {41902755},
pmcid = {PMC13032744}
}

RIS

TY - JOUR
AU - Gobbo, Francesco
AU - King, Declan
AU - Tulloch, Jane
AU - Gobbo, Davide
AU - Bonthron, Calum
AU - Meftah, Soraya
AU - Stoddart‐Campbelton, Caleb
AU - Tamura, Arisa
AU - Rose, Jamie
AU - Smith, Colin
AU - Durrant, Claire
AU - Spires‐Jones, Tara L
TI - Astrocyte Proximity Protects Synapses From Human Amyloid-Beta Induced Degeneration in a Mouse Ex Vivo Model of Early Alzheimer's Disease
T2 - The European journal of neuroscience
J2 - Eur J Neurosci
PY - 2026
DA - 2026/04/01
VL - 63
IS - 7
SP - e70480
SN - 0953-816X
PB - Wiley
DO - 10.1111/ejn.70480
UR - https://doi.org/10.1111/ejn.70480
LA - en
ER -

CSL-JSON

{
"id": "10.1111/ejn.70480",
"type": "article-journal",
"title": "Astrocyte Proximity Protects Synapses From Human Amyloid-Beta Induced Degeneration in a Mouse Ex Vivo Model of Early Alzheimer's Disease",
"container-title": "The European journal of neuroscience",
"author": [
{
"family": "Gobbo",
"given": "Francesco"
},
{
"family": "King",
"given": "Declan"
},
{
"family": "Tulloch",
"given": "Jane"
},
{
"family": "Gobbo",
"given": "Davide"
},
{
"family": "Bonthron",
"given": "Calum"
},
{
"family": "Meftah",
"given": "Soraya"
},
{
"family": "Stoddart‐Campbelton",
"given": "Caleb"
},
{
"family": "Tamura",
"given": "Arisa"
},
{
"family": "Rose",
"given": "Jamie"
},
{
"family": "Smith",
"given": "Colin"
},
{
"family": "Durrant",
"given": "Claire"
},
{
"family": "Spires‐Jones",
"given": "Tara L"
}
],
"container-title-short": "Eur J Neurosci",
"volume": "63",
"issue": "7",
"page": "e70480",
"DOI": "10.1111/ejn.70480",
"PMID": "41902755",
"PMCID": "PMC13032744",
"ISSN": "0953-816X",
"publisher": "Wiley",
"URL": "https://doi.org/10.1111/ejn.70480",
"language": "en",
"issued": {
"date-parts": [
[
2026,
4,
1
]
]
}
}

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.64898/2026.05.08.26352549 [code]
Pre- and Post-synapses Contain Lecanemab-reactive Amyloid-β in Post-mortem Human Alzheimer’s Disease Brain
Journal: medRxiv (preprint)
In common: histology / microscopy, Alzheimer's / dementia, cellular / molecular, 10 references, author Tara L. Spires-Jones
[2] doi:10.1016/j.celrep.2026.117505 [code]
Impaired spatial coding and neuronal hyperactivity in the medial entorhinal cortex of aged APP knock-in mice.
Journal: Cell reports
In common: emmeans, lmerTest, lme4, 6 other tools, Alzheimer's / dementia, mouse, 6 references
[3] doi:10.1038/s41467-026-69866-3 [code]
Selective weakening of population-coupled synaptic activity in vivo in a mouse model of amyloid-beta pathology.
Journal: Nature communications
In common: ggplot2, tidyverse, histology / microscopy, Alzheimer's / dementia, mouse, 1 other category, 9 references
[4] doi:10.1093/braincomms/fcag176 [code]
Tau topography subtypes account for clinical heterogeneity and longitudinal trajectories in early-onset Alzheimer's disease.
Journal: Brain communications
In common: emmeans, lmerTest, lme4, 9 other tools, Alzheimer's / dementia, 2 references
[5] doi:10.1002/advs.202600020 [code]
Early Retinal UCHL1 Dysregulation Coupled With Synaptic Loss Reflects Alzheimer's Disease Severity.
Journal: Advanced science (Weinheim, Baden-Wurttemberg, Germany)
In common: seaborn, scikit-learn, pandas, 3 other tools, Alzheimer's / dementia, cellular / molecular, 7 references
[6] doi:10.1016/j.celrep.2026.117646 [code]
Medial entorhinal-hippocampal desynchronization parallels the emergence of memory impairment in a mouse model of Alzheimer's disease pathology.
Journal: Cell reports
In common: emmeans, lmerTest, lme4, 6 other tools, Alzheimer's / dementia, mouse, 2 references
[7] doi:10.1038/s41593-026-02228-w [code]
Circuit response to neuromodulation characterized with simultaneous deep brain stimulation and precision neuroimaging in humans.
Journal: Nature neuroscience
In common: emmeans, lmerTest, lme4, 9 other tools
[8] doi:10.34133/csbj.0042 [code]
Using Steady-State Visual Evoked Potentials to Characterize Wide-Ranging Retinopathy Linked to <i>CRB1</i>: Implications for Clinical Trials.
Journal: Computational and structural biotechnology journal
In common: emmeans, lmerTest, lme4, 9 other tools
[9] doi:10.1371/journal.pbio.3003666 [code]
Emotion regulation success involves systematic gradient-based reconfigurations of large-scale activation patterns in the human brain.
Journal: PLoS biology
In common: emmeans, lmerTest, lme4, 9 other tools
[10] doi:10.1371/journal.pcbi.1014327 [code]
Supervised deep learning with gene functional annotation for cell classification.
Journal: PLoS computational biology
In common: reshape2, statsmodels, ggplot2, 7 other tools, Alzheimer's / dementia, cellular / molecular, 2 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.

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.