OSCR

An artefact-resilient wide bandwidth bidirectional graphene neural interface.

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 › Device fabrication and characterization ↔ PhyREC/Calibration_old.py, lines 9–104 · score 0.54 · gate voltage, effective gate, offset, transfer, attribute, device
  2. [2] § Results › In vitro assessment of gSGFET recording performance during stimulation ↔ examples/spectrogram_plots.py, lines 1–15 · score 0.53 · power spectral density, baseline normalized, PSD, signals
  3. [3] § Methods › Data analysis ↔ examples/basic_plot.py, lines 1–21 · score 0.53 · PhyREC, Electrophysiological signals, library, Neo

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

Python · 318 lines · 11 KB · no license · 1 match

  1. import sys
  2. from neo.core import AnalogSignal
  3. import numpy as np
  4. import quantities as pq
  5. from scipy.interpolate import interpolate
  6. from PhyREC.SignalProcess import sliding_window
  7. def CalcVgeff(Sig, Tchar, VgsExp=None, Regim='hole', CalType='interp'):
  8. """
  9. Calibrate signal to gate voltage using transfer characteristics.
  10. Convert measured current signal to effective gate voltage using interpolation
  11. or linear approximation based on device transfer characteristics.
  12. Parameters
  13. ----------
  14. Sig : neo.core.AnalogSignal
  15. Input current signal to calibrate.
  16. Tchar : object
  17. Device transfer characteristics object with methods GetVgs(), GetIds(),
  18. GetGM(), GetUd0(), and IsOK attribute.
  19. VgsExp : float or array-like, optional
  20. Gate voltage value(s) for linear calibration method.
  21. Regim : str, optional
  22. Device regime ('hole' or 'electron', default: 'hole').
  23. CalType : str, optional
  24. Calibration method: 'interp' for interpolation or 'linear' for linear
  25. approximation (default: 'interp').
  26. Returns
  27. -------
  28. neo.core.AnalogSignal
  29. Calibrated signal in volts with annotations including calibration status,
  30. bias current, offset current, and device parameters.
  31. Notes
  32. -----
  33. The function adds several annotations to the returned signal:
  34. - Calibrated: Boolean indicating successful calibration
  35. - Working: Same as Calibrated
  36. - IdsOff: Offset current
  37. - VgsCal: Mean calibrated gate voltage
  38. - IdsBias: Bias current
  39. - IsOK: Device transfer characteristics status
  40. - Iname: Original signal name
  41. - GM: Conductance in Siemens
  42. """
  43. Vgs = Tchar.GetVgs()
  44. vgs = np.linspace(np.min(Vgs), np.max(Vgs), 10000)
  45. if Regim == 'hole':
  46. Inds = np.where(vgs < Tchar.GetUd0())[1]
  47. else:
  48. Inds = np.where(vgs > Tchar.GetUd0())[1]
  49. Ids = Tchar.GetIds(Vgs=vgs[Inds]) * pq.A
  50. GM = Tchar.GetGM(Vgs=VgsExp) * pq.S
  51. IdsExp = Tchar.GetIds(Vgs=VgsExp) * pq.A
  52. IdsOff = np.mean(Sig) - IdsExp
  53. IdsBias = np.mean(Sig)
  54. Calibrated = np.array((True,))
  55. try:
  56. if CalType == 'interp':
  57. fgm = interpolate.interp1d(Ids[:, 0], vgs[Inds])
  58. st = fgm(np.clip(Sig, np.min(Ids), np.max(Ids))) * pq.V
  59. elif CalType == 'linear':
  60. st = Sig / GM
  61. else:
  62. print('Calibration Not defined')
  63. except:
  64. print(Sig.name, "Calibration error:", sys.exc_info()[0])
  65. st = np.zeros(Sig.shape)
  66. Calibrated = np.array((False,))
  67. print(str(Sig.name), '-> ',
  68. 'IdsBias', IdsBias,
  69. 'IdsOff', IdsOff,
  70. 'Vgs', np.mean(st),
  71. Tchar.IsOK)
  72. annotations = {'Calibrated': Calibrated,
  73. 'Working': Calibrated,
  74. 'IdsOff': IdsOff.flatten()[0],
  75. 'VgsCal': np.mean(st),
  76. 'IdsBias': IdsBias.flatten()[0],
  77. 'IsOK': Tchar.IsOK,
  78. 'Iname': Sig.name,
  79. 'GM': GM,
  80. }
  81. CalSig = AnalogSignal(st,
  82. units='V',
  83. t_start=Sig.t_start,
  84. sampling_rate=Sig.sampling_rate,
  85. name=str(Sig.name),
  86. file_origin=Sig.file_origin)
  87. # CalSig.annotate(**annotations)
  88. CalSig.array_annotate(**annotations)
  89. return CalSig
  90. def CalcVgeff2(Sig, Tchar, VgsExp, Regim='hole', CalType='interp'):
  91. """
  92. Calibrate signal to gate voltage using transfer characteristics (alternative).
  93. Convert measured current signal to effective gate voltage using interpolation
  94. or linear approximation. This variant flattens arrays and handles units differently
  95. than CalcVgeff.
  96. Parameters
  97. ----------
  98. Sig : neo.core.AnalogSignal
  99. Input current signal to calibrate.
  100. Tchar : object
  101. Device transfer characteristics object with methods GetVgs(), GetIds(),
  102. GetGM(), GetUd0(), and IsOK attribute.
  103. VgsExp : float or array-like
  104. Gate voltage value(s) for calibration (required, not optional).
  105. Regim : str, optional
  106. Device regime ('hole' or 'electron', default: 'hole').
  107. CalType : str, optional
  108. Calibration method: 'interp' for interpolation or 'linear' for linear
  109. approximation (default: 'interp').
  110. Returns
  111. -------
  112. neo.core.AnalogSignal
  113. Calibrated signal in volts with array annotations including calibration
  114. status, bias current, offset current, and device parameters.
  115. Notes
  116. -----
  117. Similar to CalcVgeff but uses flattened arrays and stores annotations as
  118. Python floats rather than quantities objects. Used for compatibility with
  119. specific analysis workflows.
  120. """
  121. Vgs = Tchar.GetVgs()
  122. vgs = np.linspace(np.min(Vgs), np.max(Vgs), 10000)
  123. if Regim == 'hole':
  124. Inds = np.where(vgs < Tchar.GetUd0())[1]
  125. else:
  126. Inds = np.where(vgs > Tchar.GetUd0())[1]
  127. IdsBias = np.array((np.nan,)) * pq.A
  128. IdsOff = np.array((np.nan,)) * pq.A
  129. GM = np.nan * pq.S
  130. try:
  131. Ids = Tchar.GetIds(Vgs=vgs[Inds]).flatten()
  132. GM = Tchar.GetGM(Vgs=VgsExp).flatten()
  133. IdsExp = Tchar.GetIds(Vgs=VgsExp).flatten()
  134. IdsOff = np.mean(Sig) - IdsExp
  135. IdsBias = np.mean(Sig)
  136. Calibrated = np.array((True,))
  137. if CalType == 'interp':
  138. fgm = interpolate.interp1d(Ids, vgs[Inds])
  139. st = fgm(np.clip(Sig, np.min(Ids), np.max(Ids))) * pq.V
  140. elif CalType == 'linear':
  141. st = Sig / GM
  142. else:
  143. print('Calibration Not defined')
  144. except:
  145. print(Sig.name, "Calibration error:", sys.exc_info()[0])
  146. st = np.zeros(Sig.shape) * pq.V
  147. Calibrated = np.array((False,))
  148. print(str(Sig.name), '-> ',
  149. 'IdsBias', IdsBias,
  150. 'IdsOff', IdsOff,
  151. 'Vgs', np.mean(st),
  152. 'GM', GM,
  153. Tchar.IsOK)
  154. annotations = {'Calibrated': Calibrated[0],
  155. 'Working': Calibrated[0],
  156. 'IdsOff': float(IdsOff.flatten()[0].magnitude),
  157. 'VgsCal': float(np.mean(st).magnitude),
  158. 'IdsBias': float(IdsBias.flatten()[0].magnitude),
  159. 'IsOK': Tchar.IsOK,
  160. 'Iname': Sig.name,
  161. 'GM': float(GM.magnitude),
  162. }
  163. CalSig = AnalogSignal(st,
  164. units='V',
  165. t_start=Sig.t_start,
  166. sampling_rate=Sig.sampling_rate,
  167. name=str(Sig.name),
  168. file_origin=Sig.file_origin)
  169. CalSig.array_annotate(**annotations)
  170. # CalSig.array_annotate(**annotations)
  171. return CalSig
  172. def CalcVgeffNoInterp(Sig, Tchar, VgsExp=None, Regim='hole'):
  173. """
  174. Calibrate signal to gate voltage using linear approximation only.
  175. Convert measured current signal to effective gate voltage using conductance-based
  176. linear calibration. This simplified method does not use interpolation.
  177. Parameters
  178. ----------
  179. Sig : neo.core.AnalogSignal
  180. Input current signal to calibrate.
  181. Tchar : object
  182. Device transfer characteristics object with method GetGM() and IsOK attribute.
  183. VgsExp : float or array-like, optional
  184. Gate voltage value(s) for conductance calculation.
  185. Regim : str, optional
  186. Device regime ('hole' or 'electron', default: 'hole'). Not currently used.
  187. Returns
  188. -------
  189. neo.core.AnalogSignal
  190. Calibrated signal in volts with array annotations including calibration
  191. status, mean gate voltage, and device status.
  192. Notes
  193. -----
  194. This is a simplified calibration that only uses conductance (GM) for linear
  195. scaling. No interpolation is performed on transfer characteristics.
  196. """
  197. gm = Tchar.GetGM(Vgs=VgsExp)
  198. Calibrated = np.array((True,))
  199. try:
  200. st = Sig.magnitude / gm
  201. except:
  202. print(Sig.name, "Calibration error:", sys.exc_info()[0])
  203. st = np.zeros(Sig.shape)
  204. Calibrated = np.array((False,))
  205. print(str(Sig.name), '-> ', 'GM', gm, 'Vgs', np.mean(st), Tchar.IsOK)
  206. annotations = {'Calibrated': Calibrated,
  207. 'Working': Calibrated,
  208. # 'IdsOff': IdsOff.flatten(),
  209. 'VgsCal': np.array((np.mean(st),)),
  210. 'IsOK': np.array((Tchar.IsOK,)),
  211. 'Iname': np.array((Sig.name,)),
  212. }
  213. CalSig = AnalogSignal(st * pq.V,
  214. units='V',
  215. t_start=Sig.t_start,
  216. sampling_rate=Sig.sampling_rate,
  217. name=str(Sig.name),
  218. file_origin=Sig.file_origin)
  219. # CalSig.annotate(**annotations)
  220. CalSig.array_annotate(**annotations)
  221. return CalSig
  222. def NoiseBlanking(sig, NoiseLimitRMS=20 * pq.uV, MinNoiseFreeTime=5 * pq.s, timewidth=1 * pq.s, Value=0):
  223. """
  224. Remove high-noise sections from signal by blanking with a specified value.
  225. Identify periods where signal RMS exceeds a threshold and replace them with
  226. a constant value. Maintains breaks between noise blocks if they exceed minimum
  227. duration.
  228. Parameters
  229. ----------
  230. sig : neo.core.AnalogSignal
  231. Input signal to process.
  232. NoiseLimitRMS : quantities.Quantity, optional
  233. RMS threshold for noise detection (default: 20 µV).
  234. MinNoiseFreeTime : quantities.Quantity, optional
  235. Minimum time between noise blocks required to split into separate blocks
  236. (default: 5 s).
  237. timewidth : quantities.Quantity, optional
  238. Time window for sliding RMS calculation (default: 1 s).
  239. Value : float, optional
  240. Value to replace noise sections with (default: 0).
  241. Returns
  242. -------
  243. neo.core.AnalogSignal
  244. Signal with noise regions blanked with the specified value.
  245. Notes
  246. -----
  247. The function uses sliding window RMS analysis to identify noisy periods.
  248. Consecutive noise blocks separated by less than MinNoiseFreeTime are merged.
  249. """
  250. sRMS = sliding_window(sig, timewidth)
  251. noisets = sRMS.times[np.where(sRMS > NoiseLimitRMS)[0]]
  252. if len(noisets) == 0:
  253. return sig
  254. inds = np.where(np.diff(noisets) > MinNoiseFreeTime)[0]
  255. NoiseBlocks = []
  256. NoiseBlocks.append((noisets[0], noisets[inds[0]]))
  257. for ic, ind in enumerate(inds[:-1]):
  258. NoiseBlocks.append((noisets[ind + 1], noisets[inds[ic + 1]]))
  259. NoiseBlocks.append((noisets[inds[-1] + 1], noisets[-1]))
  260. for ti, te in NoiseBlocks:
  261. i1 = sig.time_index(ti)
  262. i2 = sig.time_index(te)
  263. sig[i1:i2] = np.ones((i2 - i1, 1)) * Value * sig.units
  264. return sig

Calibration_old.py at commit f469409, no license · at the source

Overview

Authors: Michał Prokop1, Martín Esparza-Iaizzo2,3, Eduard Masvidal-Codina1,4,5, Xavi Illa4,6, Neela K Codadu2, Daman Rathore2, Nicola Ria1, Kostas Kostarelos1,5,7,8, Elena del Corro1, Ramon Garcia-Cortadella1,9, Rob C Wykes2,8,10, Anton Guimerà-Brunet4,6, Jose A Garrido1,7
  1. Catalan Institute of Nanoscience and Nanotechnology (ICN2), CSIC and BIST, Campus UAB, Barcelona, Spain
  2. University College London, Queen Square Institute of Neurology, London, UK
  3. INBRAIN Neuroelectronics SL, Barcelona, Spain
  4. Centro de Investigación Biomédica en Red de Bioingeniería, Biomateriales y Nanomedicina, Instituto de Salud Carlos III, Madrid, Spain
  5. Institute of Neurosciences, UAB Medical School, Bellaterra, Spain
  6. Institut de Microelectrònica de Barcelona, IMB-CNM (CSIC), Campus UAB, Bellaterra, Spain
  7. Institució Catalana de Recerca i Estudis Avançats (ICREA), Barcelona, Spain
  8. Centre for Nanotechnology in Medicine, Faculty of Biology Medicine & Health, AV Hill Building, University of Manchester, Manchester, UK
  9. Bernstein Center for Computational Neuroscience Munich, Faculty of Medicine, Ludwig-Maximilians Universität München, Planegg-Martinsried, Munich, Germany
  10. Division of Neuroscience, School of Biological Sciences, University of Manchester, Manchester, UK
Journal: Nature communications, volume 17, issue 1, article 6536
Dates: received 24 August 2025; accepted 20 May 2026; published online 28 May 2026
Type: Research article · Language: English
License: CC BY-NC-ND
Identifiers: DOI 10.1038/s41467-026-73790-x · PMID 42203801 · PMCID PMC13379384 · OpenAlex W4410533608
Open access: gold, a free copy (OpenAlex)
Status: code verified
Methods: Connectivity
Keywords: Electronic properties and devices, Biomedical engineering, Electrical and electronic engineering
MeSH: Brain*, Graphite*, Neurons*, Animals, Artifacts, Local Field Potential Measurement, Microelectrodes, Transistors, Electronic (* major topic)
Topic: Neuroscience and Neural Engineering (Cellular and Molecular Neuroscience, Neuroscience), according to OpenAlex
Funding: Ministerio de Ciencia, Innovación y Universidades (10.13039.501100011033, CEX2023, CEX2023-001397-M, PID2021-126117NA-I00, 100010434, PID2020‐113663RB‐I00, CEX2021‐001214‐S, PID2020, PLEC2022-009232, 10.13039, 13039/501100011033, SEV‐2017‐0706, 501100011033); Centres de Recerca de Catalunya (501100011033); Institut Català de Nanociència i Nanotecnologia (CEX2021-001214-S); Graphene Flagship (881603, Core3); European Regional Development Fund (CEX2021-001214-S, 100010434, 101130650, 13039/501100011033, 501100011033, HORIZON2020, 881603, 101070865, SEV-2017-0706, ID 100010434, CEX2023-001397-M); Generalitat de Catalunya (SEV-2017-0706, 501100011033, CEX2021-001214-S); Ministerio de Ciencia e Innovación (SEV‐2017‐0706, 13039/501100011033, ID100010434, 10.13039, / AEI/10, PID2021-126117NA-I00, 10.13039/501100011033/, 100010434, 501100011033, PID2020, CEX2021‐001214‐S); Centro de Investigación Biomédica en Red en Bioingeniería, Biomateriales y Nanomedicina (CB06/01/0049); Fundación Bancaria Caixa d'Estalvis i Pensions de Barcelona (ID 100010434, 100010434); HORIZON EUROPE Framework Programme (881603, 101070865); Instituto de Salud Carlos III (CB06/01/0049); Agencia Estatal de Investigación (CEX2023-001397-M, 501100011033, 13039, CEX2021‐001214‐S, 13039/501100011033, 10.13039, SEV‐2017‐0706, AEI/10, PID2020-113663RB-I00)
Citations: not cited yet (Europe PMC); 67 references in the paper
Research resources: RRID:SCR_000903, RRID:SCR_001622

Abstract

The abstract is not reproduced here: the paper's license (CC BY-NC-ND) does not allow it. Read it in the paper, at the publisher or on Europe PMC.

Repository

Its files are read in the Code ↔ Paper reader above, with 3 matches between paragraphs and lines of code.

aguimera/PhyREC

License: none: the authors keep all their rights
State: the link answers, verified on 28 September 2026
Evidence: files inventoried
Commit: f469409926f1f1acc91e7edf3a950d7e10114e65, 28 May 2026
Languages: Python (38), JavaScript (13)
Size: 294 files, 51 scripts
Software Heritage: not archived
Found in: “Code availability”
Holds: README, environment (pyproject.toml, requirements.txt, setup.py, docs/requirements.txt), documentation
Not found: license file, CITATION.cff, tests, continuous integration
Tools: NumPy (33 files), Matplotlib (30 files), Neo (30 files), SciPy (7 files)
Availability: 1 check, the latest on 28 September 2026: the link answers
  • 28 September 2026: the link answers
52 files

Code availability statement

The paper has a code availability statement. Its license (CC BY-NC-ND) does not allow reproducing it here; in short, from what the harvester recognized in it:

Read it in the paper: doi.org/10.1038/s41467-026-73790-x.

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;
  • 51 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 availability statement

The paper has a data availability statement. Its license (CC BY-NC-ND) does not allow reproducing it here; in short, from what the harvester recognized in it:

  • no repository, dataset or request procedure was recognized in it

Read it in the paper: doi.org/10.1038/s41467-026-73790-x.

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

  • Funding: added Ministerio de Ciencia, Innovación y Universidades: 10.13039.501100011033, CEX2023, CEX2023-001397-M, PID2021-126117NA-I00, 100010434, PID2020‐113663RB‐I00, CEX2021‐001214‐S, PID2020, PLEC2022-009232, 10.13039, 13039/501100011033, SEV‐2017‐0706, 501100011033; Centres de Recerca de Catalunya: 501100011033; Institut Català de Nanociència i Nanotecnologia: CEX2021-001214-S; Graphene Flagship: 881603, Core3; European Commission: CEX2021-001214-S, 100010434, 101130650, 13039/501100011033, 501100011033, HORIZON2020, 881603, 101070865, SEV-2017-0706, ID 100010434, CEX2023-001397-M; Generalitat de Catalunya: SEV-2017-0706, 501100011033, CEX2021-001214-S; Ministerio de Ciencia e Innovación: SEV‐2017‐0706, 13039/501100011033, ID100010434, 10.13039, / AEI/10, PID2021-126117NA-I00, 10.13039/501100011033/, 100010434, 501100011033, PID2020, CEX2021‐001214‐S; Centro de Investigación Biomédica en Red en Bioingeniería, Biomateriales y Nanomedicina: CB06/01/0049; Fundación Bancaria Caixa d'Estalvis i Pensions de Barcelona: ID 100010434, 100010434; HORIZON EUROPE Framework Programme: 881603, 101070865; Instituto de Salud Carlos III: CB06/01/0049; Agencia Estatal de Investigación: CEX2023-001397-M, 501100011033, 13039, CEX2021‐001214‐S, 13039/501100011033, 10.13039, SEV‐2017‐0706, AEI/10, PID2020-113663RB-I00

Version 1, 28 September 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 13 authors, 3 keywords, 8 MeSH terms, 62 references, 2 RRIDs.

Cite

This paper

Prokop, M., Esparza-Iaizzo, M., Masvidal-Codina, E., Illa, X., Codadu, N. K., Rathore, D., Ria, N., Kostarelos, K., del Corro, E., Garcia-Cortadella, R., Wykes, R. C., Guimerà-Brunet, A., & Garrido, J. A. (2026). An artefact-resilient wide bandwidth bidirectional graphene neural interface. Nature communications, 17(1), 6536. https://doi.org/10.1038/s41467-026-73790-x

BibTeX

@article{prokop2026artefact,
author = {Prokop, Michał and Esparza-Iaizzo, Martín and Masvidal-Codina, Eduard and Illa, Xavi and Codadu, Neela K and Rathore, Daman and Ria, Nicola and Kostarelos, Kostas and del Corro, Elena and Garcia-Cortadella, Ramon and Wykes, Rob C and Guimerà-Brunet, Anton and Garrido, Jose A},
title = {{An artefact-resilient wide bandwidth bidirectional graphene neural interface}},
journal = {Nature communications},
year = {2026},
month = may,
volume = {17},
number = {1},
pages = {6536},
publisher = {Nature Publishing Group},
issn = {2041-1723},
doi = {10.1038/s41467-026-73790-x},
url = {https://doi.org/10.1038/s41467-026-73790-x},
pmid = {42203801},
pmcid = {PMC13379384}
}

RIS

TY - JOUR
AU - Prokop, Michał
AU - Esparza-Iaizzo, Martín
AU - Masvidal-Codina, Eduard
AU - Illa, Xavi
AU - Codadu, Neela K
AU - Rathore, Daman
AU - Ria, Nicola
AU - Kostarelos, Kostas
AU - del Corro, Elena
AU - Garcia-Cortadella, Ramon
AU - Wykes, Rob C
AU - Guimerà-Brunet, Anton
AU - Garrido, Jose A
TI - An artefact-resilient wide bandwidth bidirectional graphene neural interface
T2 - Nature communications
J2 - Nat Commun
PY - 2026
DA - 2026/05/28
VL - 17
IS - 1
SP - 6536
SN - 2041-1723
PB - Nature Publishing Group
DO - 10.1038/s41467-026-73790-x
UR - https://doi.org/10.1038/s41467-026-73790-x
LA - en
ER -

CSL-JSON

{
"id": "10.1038/s41467-026-73790-x",
"type": "article-journal",
"title": "An artefact-resilient wide bandwidth bidirectional graphene neural interface",
"container-title": "Nature communications",
"author": [
{
"family": "Prokop",
"given": "Michał"
},
{
"family": "Esparza-Iaizzo",
"given": "Martín"
},
{
"family": "Masvidal-Codina",
"given": "Eduard"
},
{
"family": "Illa",
"given": "Xavi"
},
{
"family": "Codadu",
"given": "Neela K"
},
{
"family": "Rathore",
"given": "Daman"
},
{
"family": "Ria",
"given": "Nicola"
},
{
"family": "Kostarelos",
"given": "Kostas"
},
{
"family": "del Corro",
"given": "Elena"
},
{
"family": "Garcia-Cortadella",
"given": "Ramon"
},
{
"family": "Wykes",
"given": "Rob C"
},
{
"family": "Guimerà-Brunet",
"given": "Anton"
},
{
"family": "Garrido",
"given": "Jose A"
}
],
"container-title-short": "Nat Commun",
"volume": "17",
"issue": "1",
"page": "6536",
"DOI": "10.1038/s41467-026-73790-x",
"PMID": "42203801",
"PMCID": "PMC13379384",
"ISSN": "2041-1723",
"publisher": "Nature Publishing Group",
"URL": "https://doi.org/10.1038/s41467-026-73790-x",
"language": "en",
"issued": {
"date-parts": [
[
2026,
5,
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.1002/epi.70252
Dual role of spreading depolarization in an epileptic focus.
Journal: Epilepsia
In common: 7 references
[2] doi:10.1371/journal.pone.0353399
Data driven multiscale modelling of paroxysmal brain transitions using DC-coupled electrophysiological data.
Journal: PloS one
In common: 2 references, author Rob C Wykes
[3] doi:10.1038/s41531-026-01531-4 [code]
Inconsistent subthalamic local field potential beta activity amid in- and antiphasic neuronal bursts.
Journal: NPJ Parkinson's disease
In common: Neo, SciPy, Matplotlib, 1 other tool, extracellular electrophysiology (units, LFP), 1 reference
[4] doi:10.1038/s41591-026-04434-2 [code]
Adaptive deep brain stimulation for dynamic gait control in Parkinson's disease: a randomized feasibility trial.
Journal: Nature medicine
In common: SciPy, Matplotlib, NumPy, 3 references
[5] doi:10.1038/s41591-026-04432-4 [code]
Activity-dependent adaptive deep brain stimulation improves gait in Parkinson's disease.
Journal: Nature medicine
In common: SciPy, Matplotlib, NumPy, 3 references
[6] doi:10.7554/elife.110588 [code]
Opening the black box toward a modular approach to spike sorting.
Journal: eLife
In common: Neo, SciPy, Matplotlib, 1 other tool, extracellular electrophysiology (units, LFP)
[7] doi:10.1016/j.patter.2026.101590 [code]
Density-based longitudinal neuron tracking in high-density electrophysiological recordings.
Journal: Patterns (New York, N.Y.)
In common: Neo, SciPy, Matplotlib, 1 other tool, extracellular electrophysiology (units, LFP)
[8] doi:10.1038/s41598-026-41561-9 [code]
Hybrid knowledge- and data-driven modelling for robust spike detection and sorting in human C-fiber microneurography.
Journal: Scientific reports
In common: Neo, SciPy, Matplotlib, 1 other tool, extracellular electrophysiology (units, LFP)
[9] doi:10.1007/s12021-026-09807-z [code]
Optimal Size of Electrocorticography Grids for Classification of Hand Movements.
Journal: Neuroinformatics
In common: SciPy, Matplotlib, NumPy, 2 references
[10] doi:10.64898/2026.08.12.26350419 [code]
Volitional deep brain stimulation following brain-computer interface training for Parkinson’s disease
Journal: medRxiv (preprint)
In common: SciPy, Matplotlib, NumPy, 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.