OSCR

Competitive interactions shape mammalian brain network dynamics and computation.

Code ↔ Paper

2 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 2 matches
  1. [1] § Methods › Computational memory capacity from reservoir computing ↔ conn2res/tasks.py, lines 331–469 · score 0.64 · memory capacity task, uniformly distributed, absolute, trained, reproduce, delayed
  2. [2] § Methods › Updating the generative connectivity ↔ matlab/analysis_utils/hopf_config_utils.m, lines 7–118 · score 0.60 · optimization iteration, L1 regularization, GEC, optional

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 · 492 lines · 14 KB · BSD-3-Clause · 1 match

  1. # -*- coding: utf-8 -*-
  2. """
  3. Functionality for fetching task datasets
  4. """
  5. from abc import ABCMeta, abstractmethod
  6. import numpy as np
  7. import neurogym as ngym
  8. from reservoirpy import datasets
  9. NEUROGYM_TASKS = [
  10. 'AntiReach',
  11. # 'Bandit', # *
  12. 'ContextDecisionMaking',
  13. # 'DawTwoStep', # *
  14. 'DelayComparison',
  15. 'DelayMatchCategory',
  16. 'DelayMatchSample',
  17. 'DelayMatchSampleDistractor1D',
  18. 'DelayPairedAssociation',
  19. # 'Detection', # *
  20. 'DualDelayMatchSample',
  21. # 'EconomicDecisionMaking', # *
  22. 'GoNogo',
  23. 'HierarchicalReasoning',
  24. 'IntervalDiscrimination',
  25. 'MotorTiming',
  26. 'MultiSensoryIntegration',
  27. # 'Null',
  28. 'OneTwoThreeGo',
  29. 'PerceptualDecisionMaking',
  30. 'PerceptualDecisionMakingDelayResponse',
  31. 'PostDecisionWager',
  32. 'ProbabilisticReasoning',
  33. 'PulseDecisionMaking',
  34. 'Reaching1D',
  35. 'Reaching1DWithSelfDistraction',
  36. 'ReachingDelayResponse',
  37. 'ReadySetGo',
  38. 'SingleContextDecisionMaking',
  39. 'SpatialSuppressMotion',
  40. # 'ToneDetection' # *
  41. ]
  42. RESERVOIRPY_TASKS = [
  43. 'henon_map',
  44. 'logistic_map',
  45. 'lorenz',
  46. 'mackey_glass',
  47. 'multiscroll',
  48. 'doublescroll',
  49. 'rabinovich_fabrikant',
  50. 'narma',
  51. 'lorenz96',
  52. 'rossler'
  53. ]
  54. CONN2RES_TASKS = [
  55. 'MemoryCapacity'
  56. ]
  57. class Task(metaclass=ABCMeta):
  58. """
  59. Class for generating task datasets
  60. Parameters
  61. ----------
  62. name : str
  63. name of the task
  64. n_trials : int, optional
  65. number of trials if task indicated by 'name' is a
  66. a trial-based task, by default 10
  67. """
  68. def __init__(self, name, n_trials=10):
  69. """
  70. Constructor method for class Task
  71. """
  72. self.name = name
  73. self.n_trials = n_trials
  74. self.n_targets = None
  75. self.n_features = None
  76. @property
  77. @abstractmethod
  78. def name(self):
  79. pass
  80. @name.setter
  81. @abstractmethod
  82. def name(self, name):
  83. pass
  84. @abstractmethod
  85. def fetch_data(self, n_trials=None, **kwargs):
  86. pass
  87. class NeuroGymTask(Task):
  88. """
  89. Class for generating task datasets from the
  90. Neurogym repository
  91. Parameters
  92. ----------
  93. name : str
  94. name of the task
  95. n_trials : int, optional
  96. number of trials if task indicated by 'name' is a
  97. a trial-based task, by default 10
  98. """
  99. def __init__(self, *args, **kwargs):
  100. """
  101. Constructor method for class NeuroGymTask
  102. """
  103. super().__init__(*args, **kwargs)
  104. self.timing = None
  105. @property
  106. def name(self):
  107. return self._name
  108. @name.setter
  109. def name(self, name):
  110. if name not in NEUROGYM_TASKS:
  111. raise ValueError("Task not included in NeuroGym tasks")
  112. self._name = name
  113. def fetch_data(self, n_trials=None, input_gain=None, add_bias=False,
  114. **kwargs):
  115. """
  116. Fetch data for Neurogym tasks
  117. Parameters
  118. ----------
  119. n_trials : int, optional
  120. number of trials to be generated, by default None
  121. input_gain : float, optional
  122. gain on the input signal, i.e., scalar multiplier, by default None
  123. add_bias : bool, optional
  124. decides whether bias is added to the input signal or not,
  125. by default False
  126. Returns
  127. -------
  128. x, y : numpy.ndarray, list
  129. input (x) and output (y) training data
  130. """
  131. if n_trials is not None:
  132. self.n_trials = n_trials
  133. # create a Dataset object from NeuroGym
  134. dataset = ngym.Dataset(self._name + '-v0', kwargs)
  135. # get environment object
  136. env = dataset.env
  137. # generate per trial dataset
  138. _ = env.reset()
  139. x, y = [], []
  140. for _ in range(self.n_trials):
  141. env.new_trial()
  142. ob, gt = env.ob, env.gt
  143. # reshape data if needed
  144. if ob.ndim == 1:
  145. ob = ob[:, np.newaxis]
  146. if gt.ndim == 1:
  147. gt = gt[:, np.newaxis]
  148. # scale input data
  149. if input_gain is not None:
  150. ob *= input_gain
  151. # add bias to input data if needed
  152. if add_bias:
  153. ob = np.hstack((np.ones((n_trials, 1)), ob))
  154. # store input and output
  155. x.append(ob)
  156. y.append(gt)
  157. # set attributes
  158. if x[0].squeeze().ndim == 1:
  159. self.n_features = 1
  160. elif x[0].squeeze().ndim == 2:
  161. self.n_features = x[0].shape[1]
  162. if y[0].squeeze().ndim == 1:
  163. self.n_targets = 1
  164. elif y[0].squeeze().ndim == 2:
  165. self.n_targets = y[0].shape[1]
  166. self.timing = env.timing
  167. # self._data = {'x': x, 'y': y}
  168. return x, y
  169. class ReservoirPyTask(Task):
  170. """
  171. Class for generating task datasets from the
  172. ReservoirPy repository
  173. Parameters
  174. ----------
  175. name : str
  176. name of the task
  177. n_trials : int, optional
  178. number of trials if task indicated by 'name' is a
  179. a trial-based task, by default 10
  180. """
  181. def __init__(self, *args, **kwargs):
  182. """
  183. Constructor method for class NeuroGymTask
  184. """
  185. super().__init__(*args, **kwargs)
  186. self.horizon = None
  187. @property
  188. def name(self):
  189. return self._name
  190. @name.setter
  191. def name(self, name):
  192. if name not in RESERVOIRPY_TASKS:
  193. raise ValueError("Task not included in ReservoirPy tasks")
  194. self._name = name
  195. def fetch_data(self, n_trials=None, horizon=1, win=30,
  196. input_gain=None, add_bias=False, **kwargs):
  197. """
  198. Fetch data for ReservoirPy tasks, which are defined as single-
  199. or multi-output tasks using chaotic time series as input signal
  200. and preceded or delayed output signal(s) with respect to the input
  201. Parameters
  202. ----------
  203. n_trials : int, optional
  204. number of time steps in input and output, by default None
  205. horizon : int, numpy.ndarray or list, optional
  206. shift between input and output, i.e., positive number for
  207. prediction and negative number for memory task, by default 1
  208. note that array/list is used for multi-output task
  209. win : int, optional
  210. initial window of the input signal to be used for generating the
  211. delayed output signal in case of memory tasks, by default 30
  212. note that no values in horizon should exceed this window (in
  213. absolute value), otherwise ValueError is thrown
  214. input_gain : float, optional
  215. gain on the input signal, i.e., scalar multiplier, by default None
  216. add_bias : bool, optional
  217. decides whether bias is added to the input signal or not,
  218. by default False
  219. Returns
  220. -------
  221. x, y : numpy.ndarray, list
  222. input (x) and output (y) training data
  223. Raises
  224. ------
  225. ValueError
  226. if horizon has elements with different sign
  227. ValueError
  228. if any horizon exceeds win (in absolute value)
  229. """
  230. if n_trials is not None:
  231. self.n_trials = n_trials
  232. # make sure horizon is a list. Exclude 0.
  233. if isinstance(horizon, (int, np.integer)):
  234. horizon = [horizon]
  235. # check that horizon has elements with same sign
  236. if np.unique(np.sign(horizon)).size != 1:
  237. raise ValueError("Horizon sohuld have elements with same sign")
  238. # calculate absolute maximum horizon
  239. abs_horizon_max = np.max(np.abs(horizon))
  240. if win < abs_horizon_max:
  241. raise ValueError("Absolute maximum horizon should be within window")
  242. # generate input data
  243. env = getattr(datasets, self._name)
  244. x = env(n_timesteps=self.n_trials + win + abs_horizon_max + 1, **kwargs)
  245. # output data
  246. y = np.hstack([x[win + h : -abs_horizon_max + h - 1] for h in horizon])
  247. # update input data
  248. x = x[win : -abs_horizon_max - 1]
  249. # reshape data if needed
  250. if x.ndim == 1:
  251. x = x[:, np.newaxis]
  252. if y.ndim == 1:
  253. y = y[:, np.newaxis]
  254. # scale input data
  255. if input_gain is not None:
  256. x *= input_gain
  257. # add bias to input data if needed
  258. if add_bias:
  259. x = np.hstack((np.ones((n_trials, 1)), x))
  260. # set attributes
  261. if x.squeeze().ndim == 1:
  262. self.n_features = 1
  263. elif x.squeeze().ndim == 2:
  264. self.n_features = x.shape[1]
  265. if y.squeeze().ndim == 1:
  266. self.n_targets = 1
  267. elif y.squeeze().ndim == 2:
  268. self.n_targets = y.shape[1]
  269. self.horizon = horizon
  270. # self._data = {'x': x, 'y': y}
  271. return x, y
  272. class Conn2ResTask(Task):
  273. """
  274. Class for generating datasets for MemoryCapacity task
  275. Parameters
  276. ----------
  277. name : str
  278. name of the task
  279. n_trials : int, optional
  280. number of trials if task indicated by 'name' is a
  281. a trial-based task, by default 10
  282. """
  283. def __init__(self, *args, **kwargs):
  284. """
  285. Constructor method for class Conn2ResTask
  286. """
  287. super().__init__(*args, **kwargs)
  288. self.horizon_max = None
  289. @property
  290. def name(self):
  291. return self._name
  292. @name.setter
  293. def name(self, name):
  294. if name not in CONN2RES_TASKS:
  295. raise ValueError("Task not included in conn2res tasks")
  296. self._name = name
  297. def fetch_data(self, n_trials=None, horizon_max=-20, win=30,
  298. low=-1, high=1, input_gain=None, add_bias=False,
  299. seed=None):
  300. """
  301. Fetch data for MemoryCapacity, which is defined as a multi-output
  302. task using a uniformly distributed input signal and multiple
  303. delayed output signals
  304. Parameters
  305. ----------
  306. n_trials : int, optional
  307. number of time steps in input and output, by default None
  308. horizon_max : int, optional
  309. maximum shift between input and output, i.e., negative number
  310. for memory capacity task, by default -20
  311. note that an array of horizons are generated from -1 to
  312. inclusive of horizon_max using a step of -1, which
  313. defines memory capacity task as a multi-output task, i.e., one
  314. task per horizon
  315. win : int, optional
  316. initial window of the input signal to be used for generating the
  317. delayed output signal, by default 30
  318. note that horizon_max should exceed this window (in
  319. absolute value), otherwise ValueError is thrown
  320. low : float, optional
  321. lower boundary of the output interval of numpy.uniform(),
  322. by default -1
  323. high : float, optional
  324. upper boundary of the output interval of numpy.uniform(),
  325. by default 1
  326. input_gain : float, optional
  327. gain on the input signal, i.e., scalar multiplier, by default None
  328. add_bias : bool, optional
  329. decides whether bias is added to the input signal or not,
  330. by default False
  331. seed : int, array_like[ints], SeedSequence, BitGenerator, Generator, optional
  332. seed to initialize the random number generator, by default None
  333. for details, see numpy.random.default_rng()
  334. Returns
  335. -------
  336. x, y : numpy.ndarray, list
  337. input (x) and output (y) training data
  338. Raises
  339. ------
  340. ValueError
  341. if maximum horizon exceeds win (in absolute value)
  342. """
  343. if n_trials is not None:
  344. self.n_trials = n_trials
  345. # generate horizon as a list inclusive of horizon_max
  346. sign_ = np.sign(horizon_max)
  347. horizon = np.arange(
  348. sign_,
  349. sign_ + horizon_max,
  350. sign_,
  351. )
  352. # calculate absolute maximum horizon
  353. abs_horizon_max = np.abs(horizon_max)
  354. if win < abs_horizon_max:
  355. raise ValueError("Absolute maximum horizon should be within window")
  356. # use random number generator for reproducibility
  357. rng = np.random.default_rng(seed=seed)
  358. # generate input data
  359. x = rng.uniform(low=low, high=high, size=(self.n_trials + win + abs_horizon_max + 1))[
  360. :, np.newaxis
  361. ]
  362. # output data
  363. y = np.hstack([x[win + h : -abs_horizon_max + h - 1] for h in horizon])
  364. # update input data
  365. x = x[win : -abs_horizon_max - 1]
  366. # reshape data if needed
  367. if x.ndim == 1:
  368. x = x[:, np.newaxis]
  369. if y.ndim == 1:
  370. y = y[:, np.newaxis]
  371. # scale input data
  372. if input_gain is not None:
  373. x *= input_gain
  374. # add bias to input data if needed
  375. if add_bias:
  376. x = np.hstack((np.ones((n_trials, 1)), x))
  377. # set attributes
  378. if x.squeeze().ndim == 1:
  379. self.n_features = 1
  380. elif x.squeeze().ndim == 2:
  381. self.n_features = x.shape[1]
  382. if y.squeeze().ndim == 1:
  383. self.n_targets = 1
  384. elif y.squeeze().ndim == 2:
  385. self.n_targets = y.shape[1]
  386. self.horizon_max = horizon_max
  387. # self._data = {'x': x, 'y': y}
  388. return x, y
  389. def get_task_list(repository):
  390. """
  391. Returns list of tasks in repository
  392. Parameters
  393. ----------
  394. repository : str
  395. _description_
  396. Returns
  397. -------
  398. _type_
  399. _description_
  400. """
  401. repository = repository.lower()
  402. if repository == 'neurogym':
  403. return NEUROGYM_TASKS
  404. elif repository == 'reservoirpy':
  405. return RESERVOIRPY_TASKS
  406. elif repository == 'conn2res':
  407. return CONN2RES_TASKS

tasks.py at commit 3ccb707, under BSD-3-Clause · at the source

Overview

Authors: Andrea I. Luppi1,2,3,4,5,6,7, Yonatan Sanz Perl2,6,7,8, Jakub Vohryzek2,6,7,8, Hana Ali1,2,6,7, Pedro A. M. Mediano2,6,7,9, Fernando E. Rosas2,6,7,10,11, Filip Milisav5, Laura E. Suárez5, Silvia Gini12,13, Daniel Gutierrez-Barragan12, Yohan Yee14, Seán Froudist-Walsh15, Alessandro Gozzi12, Bratislav Misic5, Gustavo Deco2,6,7,8,16, Morten L. Kringelbach1,2,6,7,17
17 affiliations
  1. Department of Psychiatry and Centre for Eudaimonia and Human Flourishing, Linacre College, University of Oxford,Oxford, UK
  2. International Centre for Flourishing, Universities of Oxford,Oxford, UK
  3. St. John’s College, University of Cambridge,Cambridge, UK
  4. Division of Information Engineering, University of Cambridge,Cambridge, UK
  5. Montreal Neurological Institute, McGill University,Montreal, Quebec Canada
  6. International Centre for Flourishing, Universities of Aarhus,Aarhus, Denmark
  7. International Centre for Flourishing, Universities Pompeu Fabra,Barcelona, Spain
  8. Centre for Brain and Cognition, Pompeu Fabra University,Barcelona, Spain
  9. Department of Computing, Imperial College London,London, UK
  10. Department of Informatics, Sussex AI, and Sussex Centre for Consciousness Science, University of Sussex,Brighton, UK
  11. Principles of Intelligent Behavior in Biological and Social Systems, Prague, Czech Republic
  12. Centre for Neuroscience and Cognitive Systems, Italian Institute of Technology,Rovereto, Italy
  13. Centre for Mind/Brain Sciences, University of Trento,Trento, Italy
  14. Department of Radiology, University of Calgary,Calgary, Alberta Canada
  15. Bristol Computational Neuroscience Unit, Bristol University,Bristol, UK
  16. Catalan Institution for Research and Advanced Studies (ICREA),Barcelona, Spain
  17. Centre for Music in the Brain, Aarhus University,Aarhus, Denmark
Journal: Nature neuroscience, volume 29, issue 4, pages 915-933
Dates: received 1 November 2024; accepted 6 January 2026; published online 11 March 2026; in print 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1038/s41593-026-02205-3 · PMID 41814091 · PMCID PMC13061630 · OpenAlex W7134889684
Open access: hybrid, a free copy (OpenAlex)
Status: code verified
Categories: computational modeling (no new data) (modality), human (organism), mouse (organism), non-human primate (organism)
Methods: Spectral & time-frequency, Connectivity, Statistics, Preprocessing, Graphs, Machine learning
Keywords: Biophysical models, Dynamical systems, Network models
MeSH: Brain*, Models, Neurological*, Nerve Net*, Animals, Computer Simulation, Connectome, Humans, Macaca, Mice, Neural Pathways (* major topic)
Topic: Functional Brain Connectivity Studies (Cognitive Neuroscience, Neuroscience), according to OpenAlex
Citations: cited by 3 papers (Europe PMC); 155 references in the paper

Abstract

How does brain network architecture balance cooperation and competition between distributed circuits? Here we use computational whole-brain modeling to examine the dynamical and computational relevance of cooperative and competitive interactions in the mammalian connectome. Across human, macaque and mouse, we show that to faithfully reproduce brain activity, model architecture consistently combines modular cooperative interactions with diffuse, long-range competitive interactions. Across species, competitive interactions preferentially link regions characterized by opposite profiles of cytoarchitecture, gene expression and receptor expression. The model with competitive interactions provides superior subject specificity, consistently outperforming the cooperative-only model and exhibiting excellent fit to the spatiotemporal properties of the living brain. These properties were not explicitly optimized, instead emerging spontaneously. Competitive interactions in the generative connectivity produce more synergistic and hierarchical dynamics, leading to enhanced performance for neuromorphic computing. Altogether, this work provides a generative link among network architecture, dynamical properties and computational performance in the mammalian brain.

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

Imperial-MIND-lab/integrated-info-decomp

License: BSD-3-Clause
State: the link answers, verified on 30 September 2026
Evidence: files inventoried
Commit: 6c5f2e9d33c985efbdf875d45cb5a2a6a5cdbf44, 14 March 2026
Languages: Python (12)
Size: 28 files, 12 scripts
Software Heritage: not archived
Found in: “Code availability”
Holds: README, license file, environment (pyproject.toml, setup.py, docs/requirements.txt), tests, continuous integration, documentation
Not found: CITATION.cff
Tools: NumPy (5 files), SciPy (2 files)
Availability: 1 check, the latest on 30 September 2026: the link answers
  • 30 September 2026: the link answers
14 files

netneurolab/conn2res

License: BSD-3-Clause
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Commit: 3ccb7074261c910847dcd0164b00ff3b02bade90, 20 December 2024
Languages: Python (24), Jupyter (1)
Size: 56 files, 25 scripts
Software Heritage: not archived
Found in: “Code availability”
Holds: README, license file, environment (pyproject.toml, requirements.txt, setup.cfg, setup.py, docs/requirements.txt), tests, documentation, 1 notebook
Not found: CITATION.cff, continuous integration
Tools: NumPy (18 files), pandas (11 files), scikit-learn (6 files), SciPy (5 files), Matplotlib (4 files), seaborn (4 files), Brain Connectivity Toolbox (1 file), NetworkX (1 file)
Availability: 1 check, the latest on 27 September 2026: the link answers
  • 27 September 2026: the link answers
27 files

Hana-Ali/competitive-cooperative-hopf

License: none: the authors keep all their rights
State: the link answers, verified on 30 September 2026
Evidence: files inventoried
Commit: da592aab6784db5c6c59f29f6bcb2b3743f1afd7, 11 March 2026
Languages: MATLAB (13), Python (1), C++ (1)
Size: 30 files, 15 scripts
Software Heritage: not archived
Found in: “Code availability”
Holds: README, environment (requirements.txt)
Not found: license file, CITATION.cff, tests, continuous integration, documentation
Availability: 1 check, the latest on 30 September 2026: the link answers
  • 30 September 2026: the link answers
16 files

sites.google.com/site/bctnet

License: none: the authors keep all their rights
State: the link answers, verified on 27 September 2026
Evidence: the link answers
Software Heritage: not checked
Found in: “Code availability”
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Availability: 1 check, the latest on 27 September 2026: the link answers (HTTP 200)
  • 27 September 2026: the link answers (HTTP 200)

neurospin/pypreclin

License: CECILL-2.1
State: the link answers, verified on 30 September 2026
Evidence: files inventoried
Commit: b52019d766ee9eb651cc309e1c6e77cfe2ad8f01, 3 February 2020
Languages: MATLAB (109), Python (20), C++ (4)
Size: 158 files, 133 scripts
Software Heritage: archived
Found in: “Code availability”
Holds: README, license file, environment (setup.cfg, setup.py), documentation
Not found: CITATION.cff, tests, continuous integration
Tools: Image Processing Toolbox (22 files), SPM (15 files), NumPy (5 files), NiBabel (3 files), Nipype (3 files), ANTs (2 files), FSL (2 files), Matplotlib (2 files), SciPy (2 files)
Availability: 1 check, the latest on 30 September 2026: the link answers
  • 30 September 2026: the link answers
135 files

jlizier/jidt

License: gpl
State: the link answers, verified on 28 September 2026
Evidence: files inventoried
Commit: 1ca832235e64ae5b3a482dc0ead6f9b2ff2a0456, 3 August 2026
Languages: Java (318), MATLAB (147), Jupyter (41), Python (25), Shell (18), R (6), C/C++ (5), C (5), CUDA (4), Julia (4), C++ (2)
Size: 799 files, 575 scripts
Software Heritage: archived
Found in: “Code availability”
Holds: README, license file, tests, 60 notebooks
Not found: CITATION.cff, environment file, continuous integration, documentation
Tools: NumPy (48 files), Matplotlib (44 files), Statistics and Machine Learning Toolbox (5 files), SciPy (5 files), pandas (4 files), PyTorch (3 files)
Availability: 1 check, the latest on 28 September 2026: the link answers
  • 28 September 2026: the link answers
576 files

Code availability

MATLAB and C++ code for the Hopf model with cooperative and competitive interactions is provided at https://github.com/Hana-Ali/competitive-cooperative-hopf.git.

MATLAB/Octave and Python code (version 1.0) to compute measures of integrated information decomposition of time series with the Gaussian MMI solver is available at https://github.com/Imperial-MIND-lab/integrated-info-decomp. The conn2res Python toolbox for reservoir computing (version 1.0.0) is available at https://github.com/netneurolab/conn2res. The Brain Connectivity Toolbox code (version 2019-03-03) used for graph-theoretical analyses and network randomization is freely available online (https://sites.google.com/site/bctnet/). The Python processing for PreClinical data pipeline, Pypreclin version 1.0.1, is freely available at https://github.com/neurospin/pypreclin. The FMRIB Software Library (FSL) is freely available online (http://www.fmrib.ox.ac.uk/fsl/; version accessed on 4 February 2018). CONN toolbox version 17f is freely available at http://www.nitrc.org/projects/conn/. DSI Studio is freely available at https://dsi-studio.labsolver.org/. Java Information Dynamics Toolbox version 1.5 is freely available online (https://github.com/jlizier/jidt). The latest version of the BigBrainWarp toolbox is freely available online (https://bigbrainwarp.readthedocs.io). The abagen toolbox (version 0.1.4) for processing of the AHBA human transcriptomic dataset is available at https://abagen.readthedocs.io/. The neuromaps toolbox (version 0.0.5) is available at https://netneurolab.github.io/neuromaps/.

Reproduced under the paper's license (CC BY), from the paper cited above.

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:

  • 6 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
  • 760 scripts, each with its path and the digest of its content;
  • 2 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

Datasets cited

Data availability

The Human Connectome Project functional and structural datasets are freely available from http://www.humanconnectome.org/. Macaque fMRI data are available from the PRIMatE Data Exchange (PRIME-DE) through the Neuroimaging Informatics Tools and Resources Clearinghouse (NITRC; http://fcon_1000.projects.nitrc.org/indi/indiPRIME.html). The macaque connectome is available on Zenodo at 10.5281/zenodo.1471588. The CoCoMac database on which it is based is also available online at http://cocomac.g-node.org/main/index.php?. Mouse functional and structural connectome data are available from author A.G. NeuroSynth is available at https://neurosynth.org/. The original macaque cortical gene expression and cell type density data from ref. 151 are available at https://macaque.digital-brain.cn/spatial-omics. The dataset is provided by the Brain Science Data Center, Chinese Academy of Sciences (https://braindatacenter.cn/). The original macaque receptor density data from autoradiography are available from https://balsa.wustl.edu/study/P2Nql and https://search.kg.ebrains.eu/instances/de62abc1-7252-4774-9965-5040f5e8fb6b97. The original map of macaque intracortical myelination from T1w/T2w ratio from ref. 97 is available at https://balsa.wustl.edu/study/P2Nql. Mouse cell type data are available as described in ref. 152. Human gene expression data153 are available from the Allen Human Brain Atlas at http://human.brain-map.org/static/download. Mouse gene expression data154 are available at https://mouse.brain-map.org/. Human cell type data are available as described in ref. 155. Human receptor density data are available online from the neuromaps toolbox. Source data are provided with this paper.

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

Recorded: type, language, journal, volume, issue, pages, dates, 16 authors, 3 keywords, 10 MeSH terms, 10 funders, 150 references.

Cite

This paper

Luppi, A. I., Sanz Perl, Y., Vohryzek, J., Ali, H., Mediano, P. A. M., Rosas, F. E., Milisav, F., Suárez, L. E., Gini, S., Gutierrez-Barragan, D., Yee, Y., Froudist-Walsh, S., Gozzi, A., Misic, B., Deco, G., & Kringelbach, M. L. (2026). Competitive interactions shape mammalian brain network dynamics and computation. Nature neuroscience, 29(4), 915-933. https://doi.org/10.1038/s41593-026-02205-3

BibTeX

@article{luppi2026competitive,
author = {Luppi, Andrea I. and Sanz Perl, Yonatan and Vohryzek, Jakub and Ali, Hana and Mediano, Pedro A. M. and Rosas, Fernando E. and Milisav, Filip and Suárez, Laura E. and Gini, Silvia and Gutierrez-Barragan, Daniel and Yee, Yohan and Froudist-Walsh, Seán and Gozzi, Alessandro and Misic, Bratislav and Deco, Gustavo and Kringelbach, Morten L.},
title = {{Competitive interactions shape mammalian brain network dynamics and computation}},
journal = {Nature neuroscience},
year = {2026},
month = mar,
volume = {29},
number = {4},
pages = {915--933},
publisher = {Nature Portfolio},
issn = {1097-6256},
doi = {10.1038/s41593-026-02205-3},
url = {https://doi.org/10.1038/s41593-026-02205-3},
pmid = {41814091},
pmcid = {PMC13061630}
}

RIS

TY - JOUR
AU - Luppi, Andrea I.
AU - Sanz Perl, Yonatan
AU - Vohryzek, Jakub
AU - Ali, Hana
AU - Mediano, Pedro A. M.
AU - Rosas, Fernando E.
AU - Milisav, Filip
AU - Suárez, Laura E.
AU - Gini, Silvia
AU - Gutierrez-Barragan, Daniel
AU - Yee, Yohan
AU - Froudist-Walsh, Seán
AU - Gozzi, Alessandro
AU - Misic, Bratislav
AU - Deco, Gustavo
AU - Kringelbach, Morten L.
TI - Competitive interactions shape mammalian brain network dynamics and computation
T2 - Nature neuroscience
J2 - Nat Neurosci
PY - 2026
DA - 2026/03/11
VL - 29
IS - 4
SP - 915
EP - 933
SN - 1097-6256
PB - Nature Portfolio
DO - 10.1038/s41593-026-02205-3
UR - https://doi.org/10.1038/s41593-026-02205-3
LA - en
ER -

CSL-JSON

{
"id": "10.1038/s41593-026-02205-3",
"type": "article-journal",
"title": "Competitive interactions shape mammalian brain network dynamics and computation",
"container-title": "Nature neuroscience",
"author": [
{
"family": "Luppi",
"given": "Andrea I."
},
{
"family": "Sanz Perl",
"given": "Yonatan"
},
{
"family": "Vohryzek",
"given": "Jakub"
},
{
"family": "Ali",
"given": "Hana"
},
{
"family": "Mediano",
"given": "Pedro A. M."
},
{
"family": "Rosas",
"given": "Fernando E."
},
{
"family": "Milisav",
"given": "Filip"
},
{
"family": "Suárez",
"given": "Laura E."
},
{
"family": "Gini",
"given": "Silvia"
},
{
"family": "Gutierrez-Barragan",
"given": "Daniel"
},
{
"family": "Yee",
"given": "Yohan"
},
{
"family": "Froudist-Walsh",
"given": "Seán"
},
{
"family": "Gozzi",
"given": "Alessandro"
},
{
"family": "Misic",
"given": "Bratislav"
},
{
"family": "Deco",
"given": "Gustavo"
},
{
"family": "Kringelbach",
"given": "Morten L."
}
],
"container-title-short": "Nat Neurosci",
"volume": "29",
"issue": "4",
"page": "915-933",
"DOI": "10.1038/s41593-026-02205-3",
"PMID": "41814091",
"PMCID": "PMC13061630",
"ISSN": "1097-6256",
"publisher": "Nature Portfolio",
"URL": "https://doi.org/10.1038/s41593-026-02205-3",
"language": "en",
"issued": {
"date-parts": [
[
2026,
3,
11
]
]
}
}

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-026-74466-2 [code]
Neuromorphic hierarchical modular reservoirs.
Journal: Nature communications
In common: Brain Connectivity Toolbox, NetworkX, NiBabel, 6 other tools, 12 references, 3 authors
[2] doi:10.1038/s41467-026-76011-7 [code]
Human cortex organizes dynamic co-fluctuations along the sensorimotor-association axis.
Journal: Nature communications
In common: Brain Connectivity Toolbox, ANTs, FSL, 9 other tools, 12 references
[3] doi:10.1126/sciadv.aef2894 [code]
Human cortical networks trade communication efficiency for computational reliability.
Journal: Science advances
In common: seaborn, SciPy, Matplotlib, 1 other tool, computational modeling (no new data), 16 references, author Andrea I Luppi
[4] doi:10.1038/s41467-026-75959-w [code]
Charting higher-order models of brain function beyond pairwise interactions.
Journal: Nature communications
In common: NetworkX, NiBabel, Statistics and Machine Learning Toolbox, 6 other tools, 15 references
[5] doi:10.1038/s42003-026-10276-y [code]
The cellular correlates and adolescent reorganisation of cortical myelination networks in the common marmoset.
Journal: Communications biology
In common: Nipype, Brain Connectivity Toolbox, Parallel Computing Toolbox, 11 other tools, non-human primate, 6 references
[6] doi:10.64898/2026.06.08.26355206
A canary in the mind: A single baseline brain scan predicts adolescent depression and anxiety one year later
Journal: medRxiv (preprint)
In common: 5 references, 4 authors
[7] doi:10.1038/s41398-026-04025-2 [code]
Brain energetic landscapes shape state dysregulation in major depressive disorder: a morphological network controllability perspective.
Journal: Translational psychiatry
In common: Nipype, Brain Connectivity Toolbox, ANTs, 12 other tools, 3 references
[8] doi:10.64898/2026.03.12.710517 [code]
Cortical excitability inversely modulates fMRI connectivity via low-frequency neuronal coupling
Journal: bioRxiv (preprint)
In common: ANTs, FSL, Image Processing Toolbox, 7 other tools, 1 reference, 2 authors
[9] doi:10.1371/journal.pbio.3003856 [code]
Aging and metabolism contribute separately to brain-body health.
Journal: PLoS biology
In common: ANTs, FSL, SPM, 10 other tools, 3 references, author Bratislav Misic
[10] doi:10.1038/s41586-026-10631-3 [code]
A prognostic human brain network for diffuse midline glioma.
Journal: Nature
In common: ANTs, Parallel Computing Toolbox, FSL, 11 other tools, 5 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.