OSCR

High-resolution Bayesian Virtual Epileptic Patient using neural field models.

Code ↔ Paper

7 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 7 matches
  1. [1] § METHODS › Feature Extraction ↔ lib/preprocess/envelope.py, lines 37–53 · score 0.76 · sliding window, low pass filter, high pass filtering, log power, smoothing, preprocessed
  2. [2] § METHODS › Feature Extraction ↔ feature_extract.ipynb, lines 306–328 · score 0.74 · sliding window, low pass filter, log power, smoothing, SEEG
  3. [3] § METHODS › Patient Data ↔ retro_results.py, lines 206–289 · score 0.61 · Engel score, Patient IDs, III, IV, VEP
  4. [4] § METHODS › Patient Data ↔ precision_recall.py, lines 48–85 · score 0.60 · Engel score, Patient IDs, III, IV
  5. [5] § METHODS › Pseudospectral Method ↔ TVB_forward_sim.ipynb, lines 16–97 · score 0.58 · state variables, tracts, speeds, chosen, cortical, coupling
  6. [6] § METHODS › Patient Data › Forward model. ↔ lib/preprocess/base.py, lines 9–28 · score 0.51 · bipolar montage, contacts, preprocessing, matrix
  7. [7] § METHODS › Patient Data › Forward model. ↔ TVB_forward_sim.ipynb, lines 16–97 · score 0.51 · gain matrix, chosen, subcortical, sensor, variable, epileptor

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 · 249 lines · 8.7 KB · Apache-2.0 · 2 matches

  1. # %%
  2. %matplotlib inline
  3. from tvb.simulator.lab import *
  4. import os.path
  5. import matplotlib.pyplot as plt
  6. import matplotlib.gridspec as gridspec
  7. from matplotlib import colors, cm
  8. import time
  9. import scipy.signal as sig
  10. import scipy.spatial.distance as dists
  11. import numpy as np
  12. import time
  13. from scipy.optimize import fsolve
  14. import os
  15. # %%
  16. def get_equilibrium(model, init):
  17. nvars = len(model.state_variables)
  18. cvars = len(model.cvar)
  19. def func(x):
  20. fx = model.dfun(x.reshape((nvars, 1, 1)),
  21. np.zeros((cvars, 1, 1)))
  22. return fx.flatten()
  23. x = fsolve(func, init)
  24. return x
  25. root_dir = os.getcwd()
  26. data_dir = os.path.join(root_dir, '/home/anirudh/Academia/projects/isp_benchmark/datasets/syn_data/id001_bt')
  27. results_dir = os.path.join(root_dir, 'datasets/syn_data/id001_bt_5ez')
  28. figs_dir = os.path.join(results_dir, 'figures')
  29. os.makedirs(figs_dir, exist_ok=True)
  30. # ! mkdir -p {figs_dir}
  31. # # ROIs chosen for generating synthetic data
  32. # chsnAreas = np.array([27,20,58,18,61])
  33. # ROIs chosen as Epileptogenic/propagation zones
  34. # ez = np.array([79, 14, 74], dtype=np.int32)
  35. # pz_x0 = np.array([22, 75, 11, 17], dtype=np.int32)
  36. # pz_kplng = [] #np.array([], dtype=np.int32)
  37. # pz = np.append(pz_kplng,pz_x0, dtype=np.int32)
  38. # pz = np.unique(np.array([75,22,53,104,163,20], dtype=np.int32))
  39. con = connectivity.Connectivity.from_file(os.path.join(data_dir, "connectivity.destrieux.zip"))
  40. num_regions = len(con.region_labels)
  41. con.speed = np.array([np.inf])
  42. # normalize
  43. con.weights = con.weights/np.max(con.weights)
  44. # # scaled down the coupling from all nodes to EZ to avoid inhibition due to strong coupling
  45. # wts_sf = 1e-4 # weights scaling factor
  46. # con.weights[ez,:] = wts_sf
  47. # # scale down the coupling from EZ to all nodes except PZ, so seizure is propogated only to PZ
  48. # con.weights[np.ix_(np.setdiff1d(np.r_[0:num_regions],pz),ez)] = wts_sf * con.weights[np.ix_(np.setdiff1d(np.r_[0:num_regions],pz),ez)]
  49. # # scale down the coupling from all nodes (except EZ) to PZ to avoid inhibtion due to strong coupling
  50. # con.weights[np.ix_(pz,np.setxor1d(np.r_[0:num_regions],ez))] = wts_sf * con.weights[np.ix_(pz,np.setxor1d(np.r_[0:num_regions],ez))]
  51. # # scale down the coupling from PZ to all nodes to avoid seizure propagation further
  52. # con.weights[np.ix_(np.setdiff1d(np.r_[0:num_regions],np.append(ez,pz)),pz)] = wts_sf * con.weights[np.ix_(np.setdiff1d(np.r_[0:num_regions],np.append(ez,pz)),pz)]
  53. # con.weights[np.ix_(pz_kplng,ez)] = 4.0
  54. # con.weights[np.ix_(pz_x0,ez)] = 2.0
  55. # con.weights[np.ix_(pz,ez)] = 2.0
  56. con.weights[np.diag_indices(con.weights.shape[0])] = 0
  57. con.cortical[:] = True # To avoid adding analytical gain matrix for subcortical sources
  58. # Create connectivity object for the chosen ROIs
  59. # conNew = connectivity.Connectivity()
  60. # conNew.weights = con.weights[:,chsnAreas][chsnAreas,:]
  61. # conNew.tract_lengths = con.tract_lengths[:,chsnAreas][chsnAreas,:]
  62. # conNew.centres = con.centres[chsnAreas]
  63. # conNew.region_labels = np.array([con.region_labels[i] for i in chsnAreas])
  64. # conNew.speed = con.speed
  65. # conNew.cortical = np.ones(len(chsnAreas),dtype=bool)
  66. # num_regions = len(chsnAreas)
  67. gain_mat = np.loadtxt(os.path.join(data_dir,'gain_inv-square.destrieux.txt'))
  68. plt.figure(figsize=[15,4])
  69. plt.subplot(121)
  70. norm = colors.LogNorm(1e-7, con.weights.max())
  71. im = plt.imshow(con.weights,norm=norm,cmap=cm.jet)
  72. plt.colorbar(im, fraction=0.046, pad=0.04)
  73. plt.gca().set_title('Strcutural Connectivity', fontsize=13.0)
  74. plt.subplot(122)
  75. norm = colors.LogNorm(gain_mat.min(), gain_mat.max())
  76. im = plt.imshow(gain_mat,norm=norm,cmap=cm.jet)
  77. plt.colorbar(im, fraction=0.046, pad=0.04)
  78. plt.gca().set_title('Gain Matrix', fontsize=13.0)
  79. plt.xlabel('Node')
  80. plt.ylabel('Sensor')
  81. plt.tight_layout()
  82. plt.savefig(os.path.join(figs_dir, 'network.png'))
  83. # %% [markdown]
  84. # ### Choose EZ and PZ
  85. # %%
  86. n_ez = 5
  87. nprop_roi_per_ez = 2
  88. ez = np.sort(np.argsort(gain_mat.sum(axis=0))[-n_ez:])
  89. print(f"ROI in EZ: {ez}")
  90. ez_con = con.weights[ez]
  91. pz = np.unique(ez_con.argsort(axis=1)[:, -nprop_roi_per_ez:])
  92. pz = np.setdiff1d(pz, ez)
  93. print(f"ROI in PZ: {pz}")
  94. # %%
  95. epileptors = models.Epileptor(variables_of_interest=['x1', 'y1', 'z', 'x2', 'y2', 'g', 'x2 - x1'])
  96. epileptors.r = np.array([1.0/2857])
  97. epileptors.Ks = np.ones(num_regions)*(-1)
  98. epileptors.tt = np.array([1.0])
  99. simLen = 2500 # simulation length in milliseconds
  100. noiseON = True
  101. epileptors.x0 = np.ones(num_regions)*-3.0
  102. epileptors.x0[ez] = -1.5
  103. epileptors.x0[pz] = -2.7
  104. con.weights[np.ix_(pz,ez)] = 1.3
  105. coupl = coupling.Difference(a=np.array([1.0]))
  106. nsf = 1.0 # noise scaling factor
  107. # hiss = noise.Additive(nsig = nsf*np.array([0.01, 0.01, 0., 0.00015, 0.00015, 0.]))
  108. hiss = noise.Additive(nsig = nsf*np.array([0.0, 0.0, 0., 0.0, 0.0, 0.]))
  109. if(noiseON):
  110. heunint = integrators.HeunStochastic(dt=0.04, noise=hiss)
  111. else:
  112. heunint = integrators.HeunDeterministic(dt=0.04)
  113. #mon_raw = monitors.Raw()
  114. mon_tavg = monitors.TemporalAverage(period=1.0)
  115. # mon_SEEG = monitors.iEEG.from_file(sensors_fname=os.path.join(rootDir, "data/CJ/seeg.txt"),
  116. # projection_fname=os.path.join(rootDir, "data/CJ/gain_inv-square.txt"),
  117. # period=1.0,
  118. # variables_of_interest=[6])
  119. # num_contacts = mon_SEEG.sensors.labels.size
  120. # Find a fixed point to initialize the epileptor in a stable state
  121. epileptor_equil = models.Epileptor()
  122. epileptor_equil.x0 = np.array([-3.0])
  123. #init_cond = np.array([0, -5, 3, 0, 0, 0])
  124. init_cond = get_equilibrium(epileptor_equil, np.array([0.0, 0.0, 3.0, -1.0, 1.0, 0.0]))
  125. init_cond_reshaped = np.repeat(init_cond, num_regions).reshape((1, len(init_cond), num_regions, 1))
  126. sim = simulator.Simulator(model=epileptors,
  127. initial_conditions=init_cond_reshaped,
  128. connectivity=con,
  129. coupling=coupl,
  130. conduction_speed=np.inf,
  131. integrator=heunint,
  132. monitors=[mon_tavg])
  133. sim.configure()
  134. [(ttavg, tavg)] = sim.run(simulation_length=simLen)
  135. srcSig = tavg[:,0,:,0] + tavg[:,3,:,0]
  136. # # Normalize the time series for better visualization
  137. # tavgn = (srcSig - np.min(srcSig,1)[:,np.newaxis])/(np.max(srcSig, 1) - np.min(srcSig, 1))[:,np.newaxis]
  138. # Compute the seeg from the source signals
  139. seeg = np.dot(gain_mat,srcSig.T)
  140. # Save data for data fitting
  141. savePathTS=os.path.join(results_dir,"syn_tvb_ez=%s_pz=%s.npz"%('-'.join([str(el) for el in ez]), '-'.join([str(el) for el in pz])))
  142. np.savez(savePathTS, time_steps=ttavg, src_sig=tavg, seeg=seeg, x0=epileptors.x0, Ks=epileptors.Ks, ez=ez, pz=pz)
  143. np.savez(os.path.join(results_dir, 'network.npz'),SC=con.weights,gain_mat=gain_mat)
  144. # %% [markdown]
  145. # #### Plot source activity
  146. # %%
  147. %matplotlib inline
  148. import matplotlib.pyplot as plt
  149. # Plot source time series
  150. indf = 0
  151. indt = -1
  152. regf = 0
  153. regt = num_regions
  154. plt.figure(figsize=(20,20))
  155. plt.plot(ttavg, srcSig/4 + np.r_[regf:regt], 'r')
  156. plt.yticks(np.r_[regf:regt], np.r_[regf:regt]+1,fontsize=7.0)
  157. plt.title("Source signal (x)",fontsize=15)
  158. plt.xlabel('Time',fontsize=12)
  159. plt.ylabel('Region#',fontsize=12)
  160. plt.savefig(os.path.join(figs_dir, "src_signals_all.png"))
  161. plt.figure(figsize=(20,5))
  162. for roi in ez:
  163. plt.plot(ttavg, srcSig[:,roi],label=str(roi+1)+' (EZ)',alpha=0.7, color='red')
  164. for roi in pz:
  165. plt.plot(ttavg, srcSig[:,roi],label=str(roi+1)+' (PZ)',alpha=0.7, color='orange')
  166. plt.title("Source signal (x)",fontsize=15)
  167. plt.xlabel('Time',fontsize=12)
  168. plt.legend()
  169. plt.tight_layout()
  170. plt.savefig(os.path.join(figs_dir, "src_signals_seizing_roi.png"))
  171. # %%
  172. plt.figure(figsize=(25,5))
  173. plt.plot(ttavg, srcSig[:,pz],label=str(roi+1)+' (PZ)',alpha=0.7)
  174. # %% [markdown]
  175. # #### Plot SEEG
  176. # %%
  177. seegn = (seeg - np.min(seeg,1)[:,np.newaxis]) / (np.max(seeg,1) - np.min(seeg,1))[:,np.newaxis]
  178. # seegn = seegn - np.mean(seegn)
  179. # b, a = sig.butter(2, 0.1, btype='highpass', output='ba')
  180. # seegf = sig.filtfilt(B, A, seegn)
  181. # seegf = np.zeros(seegn.shape)
  182. # for i in range(num_contacts):
  183. # seegf[:, 0, i, 0] = sig.filtfilt(b, a, seeg[:, 0, i, 0])
  184. # Plot the seeg time series
  185. nChannels = np.shape(gain_mat)[0]
  186. with open(os.path.join(data_dir,'seeg.xyz'),'r') as fd:
  187. snsrLabels = [line.split(' ')[0] for line in fd]
  188. plt.figure(figsize=(7,20))
  189. plt.plot(ttavg, seegn.T + np.r_[0:nChannels],'k')
  190. plt.xlabel('Time',fontsize=13.0)
  191. plt.yticks(np.r_[0:nChannels], snsrLabels, fontsize=7.0)
  192. plt.title("SEEG")
  193. plt.tight_layout()
  194. plt.savefig(os.path.join(figs_dir,"seeg_split.png"))
  195. plt.figure(figsize=(20,5));
  196. plt.plot(ttavg, seegn.T, 'k', alpha=0.1);
  197. plt.xlabel('Time',fontsize=13.0)
  198. plt.title('SEEG')
  199. plt.savefig(os.path.join(figs_dir,"seeg_overlap.png"))
  200. # %%
  201. import lib.preprocess.envelope
  202. # %%
  203. slp = lib.preprocess.envelope.compute_slp_syn(seeg.T, samp_rate=256, win_len=50, hpf=10.0, lpf=2.0, logtransform=True)

TVB_forward_sim.ipynb at commit 94c3950, under Apache-2.0 · at the source

Overview

Authors: Anirudh Nihalani Vattikonda1, Meysam Hashemi1, Marmaduke M Woodman1, Jean-Didier Lemarechal1, Daniele Daini1, Fabrice Bartolomei1,2, Viktor Jirsa1
  1. Aix Marseille Univ, INSERM, INS, Inst Neurosci Syst, Marseille, France
  2. Epileptology Department and Clinical Neurophysiology Department, Assistance publique des Hopitaux de Marseille, Marseille, France
Journal: Network neuroscience (Cambridge, Mass.), volume 10, issue 2, pages 374-399
Dates: received 9 April 2025; accepted 15 December 2025; published online 22 April 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1162/netn.a.543 · PMID 42039098 · PMCID PMC13108505 · OpenAlex W7118859449
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: human (organism), epilepsy (population), computational (subfield)
Methods: Smoothing, state filtering, decompositions, Preprocessing, Connectivity, Machine learning, Physiology & signal measures
Keywords: Focal epilepsy, Bayesian inference, Epileptor, Neural fields, Pseudospectral method
Topic: Functional Brain Connectivity Studies (Cognitive Neuroscience, Neuroscience), according to OpenAlex
Funding: European Regional Development Fund (101147319); Agence Nationale de la Recherche (ANR-17, ANR-17-RHUS-0004); Fondation pour la Recherche Médicale (DIC20161236442); Société d'Accélération du Transfert de Technologies; HORIZON EUROPE Framework Programme (101147319)
Citations: not cited yet (Europe PMC); 85 references in the paper

Abstract

Epilepsy remains a significant medical challenge, particularly in drug-resistant cases where surgical intervention may be the only viable treatment option. Identifying the epileptogenic zone, the brain region responsible for seizure initiation, is a critical step in surgical planning. Combining dynamical system models, machine learning, and the neuroimaging data of epileptic patients in the so-called Bayesian Virtual Epileptic Patient (VEP) framework has previously been shown to be a promising approach for identifying the epileptogenic zone. However, previous studies employed coupled neural mass models to describe the whole-brain seizure dynamics and, hence, could only provide a highly coarse spatial estimate of the epileptogenic zone. In this study, we propose an extension of the Bayesian VEP to a neural field model, which can improve the spatial resolution by several orders. Performing model inversion using neural field models is a challenging task as the parameter space is very high dimensional, and it becomes computationally expensive to compute gradients. We demonstrate that by using pseudospectral methods and spherical harmonic transforms, it is feasible to perform model inversion on a neural field extension. We found that the high-resolution Bayesian VEP not only improves the spatial resolution but also significantly reduces the number of false positives.

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

ins-amu/infr_szr_prpgtn

License: Apache-2.0
State: the link answers, verified on 29 September 2026
Evidence: files inventoried
Commit: 94c3950d63903e82bbda771937eb3fe52448315b, 25 July 2023
Languages: Python (32), Jupyter (25), Stan (18), Shell (11)
Size: 93 files, 86 scripts
Software Heritage: archived
Found in: “Data Availability”
Holds: README, license file, 25 notebooks
Not found: CITATION.cff, environment file, tests, continuous integration, documentation
Tools: NumPy (43 files), Matplotlib (29 files), Stan (12 files), SciPy (10 files), MNE-Python (4 files), PyMC (3 files), The Virtual Brain (2 files), NiBabel (1 file)
Availability: 1 check, the latest on 29 September 2026: the link answers
  • 29 September 2026: the link answers
76 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;
  • 74 scripts, each with its path and the digest of its content;
  • 7 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

The patient datasets cannot be made publicly available due to the data protection concerns. The main code supporting this study is publicly available at https://github.com/ins-amu/infr_szr_prpgtn, neural_fields branch.

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

Recorded: type, language, journal, volume, issue, pages, dates, 7 authors, 5 keywords, 5 funders, 82 references.

Cite

This paper

Vattikonda, A. N., Hashemi, M., Woodman, M. M., Lemarechal, J.-D., Daini, D., Bartolomei, F., & Jirsa, V. (2026). High-resolution Bayesian Virtual Epileptic Patient using neural field models. Network neuroscience (Cambridge, Mass.), 10(2), 374-399. https://doi.org/10.1162/netn.a.543

BibTeX

@article{vattikonda2026high,
author = {Vattikonda, Anirudh Nihalani and Hashemi, Meysam and Woodman, Marmaduke M and Lemarechal, Jean-Didier and Daini, Daniele and Bartolomei, Fabrice and Jirsa, Viktor},
title = {{High-resolution Bayesian Virtual Epileptic Patient using neural field models}},
journal = {Network neuroscience (Cambridge, Mass.)},
year = {2026},
month = apr,
volume = {10},
number = {2},
pages = {374--399},
publisher = {MIT Press},
issn = {2472-1751},
doi = {10.1162/netn.a.543},
url = {https://doi.org/10.1162/netn.a.543},
pmid = {42039098},
pmcid = {PMC13108505}
}

RIS

TY - JOUR
AU - Vattikonda, Anirudh Nihalani
AU - Hashemi, Meysam
AU - Woodman, Marmaduke M
AU - Lemarechal, Jean-Didier
AU - Daini, Daniele
AU - Bartolomei, Fabrice
AU - Jirsa, Viktor
TI - High-resolution Bayesian Virtual Epileptic Patient using neural field models
T2 - Network neuroscience (Cambridge, Mass.)
J2 - Netw Neurosci
PY - 2026
DA - 2026/04/22
VL - 10
IS - 2
SP - 374
EP - 399
SN - 2472-1751
PB - MIT Press
DO - 10.1162/netn.a.543
UR - https://doi.org/10.1162/netn.a.543
LA - en
ER -

CSL-JSON

{
"id": "10.1162/netn.a.543",
"type": "article-journal",
"title": "High-resolution Bayesian Virtual Epileptic Patient using neural field models",
"container-title": "Network neuroscience (Cambridge, Mass.)",
"author": [
{
"family": "Vattikonda",
"given": "Anirudh Nihalani"
},
{
"family": "Hashemi",
"given": "Meysam"
},
{
"family": "Woodman",
"given": "Marmaduke M"
},
{
"family": "Lemarechal",
"given": "Jean-Didier"
},
{
"family": "Daini",
"given": "Daniele"
},
{
"family": "Bartolomei",
"given": "Fabrice"
},
{
"family": "Jirsa",
"given": "Viktor"
}
],
"container-title-short": "Netw Neurosci",
"volume": "10",
"issue": "2",
"page": "374-399",
"DOI": "10.1162/netn.a.543",
"PMID": "42039098",
"PMCID": "PMC13108505",
"ISSN": "2472-1751",
"publisher": "MIT Press",
"URL": "https://doi.org/10.1162/netn.a.543",
"language": "en",
"issued": {
"date-parts": [
[
2026,
4,
22
]
]
}
}

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.1371/journal.pcbi.1014673 [code]
Modeling the influences of non-local connectomic projections on geometrically constrained cortical dynamics.
Journal: PLoS computational biology
In common: computational, 10 references
[2] doi:10.1162/imag.a.1147 [code]
The Virtual Brain links transcranial magnetic stimulation evoked potentials and inhibitory neurotransmitter changes in major depressive disorder.
Journal: Imaging neuroscience (Cambridge, Mass.)
In common: The Virtual Brain, MNE-Python, SciPy, 2 other tools, computational, 2 references
[3] doi:10.1038/s41592-026-03159-x [code]
Siibra: a software tool suite for realizing a Multilevel Human Brain Atlas from complex data resources.
Journal: Nature methods
In common: NiBabel, SciPy, Matplotlib, 1 other tool, 1 reference, author Viktor Jirsa
[4] doi:10.1038/s41593-026-02359-0 [code]
The cross-site reproducibility of MRI morphometric phenotypes in psychiatric disorders.
Journal: Nature neuroscience
In common: NiBabel, SciPy, Matplotlib, 1 other tool, 5 references
[5] doi:10.1002/epi4.70311 [code]
Bridging computational and clinical strategies for presurgical identification of epileptogenic networks.
Journal: Epilepsia open
In common: MNE-Python, SciPy, Matplotlib, 1 other tool, epilepsy, 3 references
[6] doi:10.1038/s41467-026-71918-7 [code]
Developmental disinhibition gates language lateralization in childhood.
Journal: Nature communications
In common: MNE-Python, NiBabel, SciPy, 2 other tools, 3 references
[7] doi:10.1162/imag.a.1249 [code]
Global search metaheuristics for neural mass model calibration.
Journal: Imaging neuroscience (Cambridge, Mass.)
In common: computational, 5 references
[8] doi:10.1371/journal.pcbi.1013290 [code]
Developmental and aging changes in brain network switching dynamics revealed by EEG phase synchronization.
Journal: PLoS computational biology
In common: 2 references, author Viktor Jirsa
[9] doi:10.1162/imag.a.1269 [code]
From early to contemporary normative modeling: Mapping individual differences in neurophysiological signals.
Journal: Imaging neuroscience (Cambridge, Mass.)
In common: PyMC, MNE-Python, NiBabel, 3 other tools, computational
[10] doi:10.1038/s41467-026-75704-3 [code]
A minimal model of working memory in neural systems and neuromorphic circuits.
Journal: Nature communications
In common: SciPy, Matplotlib, NumPy, 4 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.