OSCR

Glucose metabolism echoes long-range temporal correlations in the human brain.

Code ↔ Paper

6 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 6 matches
  1. [1] § Methods › Hurst exponent mapping ↔ m/bfn_mfin_ml.m, lines 1–84 · score 0.93 · univariate maximum likelihood, discrete wavelet transform, wavelet filter, fractionally integrated, bounds, lb
  2. [2] § Methods › Hurst exponent mapping ↔ m/bfn_mfin_lms.m, lines 1–68 · score 0.82 · discrete wavelet transform, wavelet filter, fractionally integrated, univariate, Haar, noise
  3. [3] § Methods › Anatomical, rs-fMRI and PET processing › rs-fMRI ↔ brainsmash/utils/dataio.py, lines 87–146 · score 0.64 · Subcortical volumes, surface vertices, CIFTI, MNI, voxels
  4. [4] § Methods › Anatomical, rs-fMRI and PET processing › rs-fMRI ↔ brainsmash/workbench/geo.py, lines 180–290 · score 0.57 · subcortical voxels, atlas, resolution, CIFTI, MNI, volumes
  5. [5] § Methods › Statistical analyses › Across-subject regression ↔ brainsmash/mapgen/sampled.py, lines 311–337 · score 0.54 · independent variable, linear, fitted, regression
  6. [6] § Methods › Statistical analyses › Spatial analyses ↔ brainsmash/mapgen/sampled.py, lines 16–71 · score 0.52 · empirical map, BrainSMASH, permuting, surrogate, variogram, exponent

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 · 502 lines · 15 KB · GPL-3.0 · 2 matches

  1. """
  2. Generate spatial autocorrelation-preserving surrogate maps from memory-mapped
  3. arrays with random subsampling.
  4. """
  5. from ..utils.dataio import dataio
  6. from ..utils.checks import check_map, check_pv, check_deltas
  7. from .kernels import check_kernel
  8. from sklearn.linear_model import LinearRegression
  9. from sklearn.utils.validation import check_random_state
  10. import numpy as np
  11. from joblib import Parallel, delayed
  12. __all__ = ['Sampled']
  13. class Sampled:
  14. """
  15. Sampling implementation of map generator.
  16. Parameters
  17. ----------
  18. x : filename or 1D np.ndarray
  19. Target brain map
  20. D : filename or (N,N) np.ndarray or np.memmap
  21. Pairwise distance matrix between elements of `x`. Each row of `D` should
  22. be sorted. Indices used to sort each row are passed to the `index`
  23. argument. See :func:`brainsmash.mapgen.memmap.txt2memmap` or the online
  24. documentation for more details (brainsmash.readthedocs.io)
  25. index : filename or (N,N) np.ndarray or np.memmap
  26. See above
  27. ns : int, default 500
  28. Take a subsample of `ns` rows from `D` when fitting variograms
  29. deltas : np.ndarray or List[float], default [0.3, 0.5, 0.7, 0.9]
  30. Proportions of neighbors to include for smoothing, in (0, 1]
  31. kernel : str, default 'exp'
  32. Kernel with which to smooth permuted maps
  33. - 'gaussian' : gaussian function
  34. - 'exp' : exponential decay function
  35. - 'invdist' : inverse distance
  36. - 'uniform' : uniform weights (distance independent)
  37. pv : int, default 70
  38. Percentile of the pairwise distance distribution (in `D`) at
  39. which to truncate during variogram fitting
  40. nh : int, default 25
  41. Number of uniformly spaced distances at which to compute variogram
  42. knn : int, default 1000
  43. Number of nearest regions to keep in the neighborhood of each region
  44. b : float or None, default None
  45. Gaussian kernel bandwidth for variogram smoothing. if None,
  46. three times the distance interval spacing is used.
  47. resample : bool, default False
  48. Resample surrogate map values from the target brain map
  49. verbose : bool, default False
  50. Print surrogate count each time new surrogate map created
  51. seed : None or int or np.random.RandomState instance (default None)
  52. Specify the seed for random number generation (or random state instance)
  53. n_jobs : int (default 1)
  54. Number of jobs to use for parallelizing creation of surrogate maps
  55. Notes
  56. -----
  57. Passing resample=True will preserve the distribution of values in the
  58. target map, at the expense of worsening simulated surrogate maps'
  59. variograms fits. This worsening will increase as the empirical map
  60. more strongly deviates from normality.
  61. Raises
  62. ------
  63. ValueError : `x` and `D` have inconsistent sizes
  64. """
  65. def __init__(self, x, D, index, ns=500, pv=70, nh=25, knn=1000, b=None,
  66. deltas=np.arange(0.3, 1., 0.2), kernel='exp', resample=False,
  67. verbose=False, seed=None, n_jobs=1):
  68. self._rs = check_random_state(seed)
  69. self._n_jobs = n_jobs
  70. self._verbose = verbose
  71. self.x = x
  72. n = self._x.size
  73. self.nmap = int(n)
  74. self.knn = knn
  75. self.D = D
  76. self.index = index
  77. self.resample = resample
  78. self.nh = int(nh)
  79. self.deltas = deltas
  80. self.ns = int(ns)
  81. self.b = b
  82. self.pv = pv
  83. self._ikn = np.arange(self._nmap)[:, None]
  84. # Store k nearest neighbors from distance and index matrices
  85. self.kernel = kernel # Smoothing kernel selection
  86. self._dmax = np.percentile(self._D, self._pv)
  87. self.h = np.linspace(self._D.min(), self._dmax, self._nh)
  88. if not self._b:
  89. self.b = 3 * (self.h[1] - self.h[0])
  90. # Linear regression model
  91. self._lm = LinearRegression(fit_intercept=True)
  92. def __call__(self, n=1):
  93. """
  94. Randomly generate new surrogate map(s).
  95. Parameters
  96. ----------
  97. n : int, default 1
  98. Number of surrogate maps to randomly generate
  99. Returns
  100. -------
  101. (n,N) np.ndarray
  102. Randomly generated map(s) with matched spatial autocorrelation
  103. Notes
  104. -----
  105. Chooses a level of smoothing that produces a smoothed variogram which
  106. best approximates the true smoothed variogram. Selecting resample='True'
  107. preserves the map value distribution at the expense of worsening the
  108. surrogate maps' variogram fits.
  109. """
  110. rs = self._rs.randint(np.iinfo(np.int32).max, size=n)
  111. surrs = np.row_stack(
  112. Parallel(self._n_jobs)(
  113. delayed(self._call_method)(rs=i) for i in rs
  114. )
  115. )
  116. return np.asarray(surrs.squeeze())
  117. def _call_method(self, rs=None):
  118. """ Subfunction used by .__call__() for parallelization purposes """
  119. # Reset RandomState so parallel jobs yield different results
  120. self._rs = check_random_state(rs)
  121. # Randomly permute map
  122. x_perm = self.permute_map()
  123. # Randomly select subset of regions to use for variograms
  124. idx = self.sample()
  125. # Compute empirical variogram
  126. v = self.compute_variogram(self._x, idx)
  127. # Variogram ordinates; use nearest neighbors because local effect
  128. u = self._D[idx, :]
  129. uidx = np.where(u < self._dmax)
  130. # Smooth empirical variogram
  131. smvar, u0 = self.smooth_variogram(u[uidx], v[uidx], return_h=True)
  132. res = dict.fromkeys(self._deltas)
  133. for d in self._deltas: # foreach neighborhood size
  134. k = int(d * self._knn)
  135. # Smooth the permuted map using k nearest neighbors to
  136. # reintroduce spatial autocorrelation
  137. sm_xperm = self.smooth_map(x=x_perm, k=k)
  138. # Calculate variogram values for the smoothed permuted map
  139. vperm = self.compute_variogram(sm_xperm, idx)
  140. # Calculate smoothed variogram of the smoothed permuted map
  141. smvar_perm = self.smooth_variogram(u[uidx], vperm[uidx])
  142. # Fit linear regression btwn smoothed variograms
  143. res[d] = self.regress(smvar_perm, smvar)
  144. alphas, betas, residuals = np.array(
  145. [res[d] for d in self._deltas], dtype=float).T
  146. # Select best-fit model and regression parameters
  147. iopt = np.argmin(residuals)
  148. dopt = self._deltas[iopt]
  149. self._dopt = dopt
  150. kopt = int(dopt * self._knn)
  151. aopt = alphas[iopt]
  152. bopt = betas[iopt]
  153. # Transform and smooth permuted map using best-fit parameters
  154. sm_xperm_best = self.smooth_map(x=x_perm, k=kopt)
  155. surr = (np.sqrt(np.abs(bopt)) * sm_xperm_best +
  156. np.sqrt(np.abs(aopt)) * self._rs.randn(self._nmap))
  157. if self._resample: # resample values from empirical map
  158. sorted_map = np.sort(self._x)
  159. ii = np.argsort(surr)
  160. np.put(surr, ii, sorted_map)
  161. else:
  162. surr = surr - np.nanmean(surr) # De-mean
  163. if self._ismasked:
  164. return np.ma.masked_array(
  165. data=surr, mask=np.isnan(surr)).squeeze()
  166. return surr.squeeze()
  167. def compute_variogram(self, x, idx):
  168. """
  169. Compute variogram of `x` using pairs of regions indexed by `idx`.
  170. Parameters
  171. ----------
  172. x : (N,) np.ndarray
  173. Brain map
  174. idx : (ns,) np.ndarray[int]
  175. Indices of randomly sampled brain regions
  176. Returns
  177. -------
  178. v : (ns,ns) np.ndarray
  179. Variogram y-coordinates, i.e. 0.5 * (x_i - x_j) ^ 2, for i,j in idx
  180. """
  181. diff_ij = x[idx][:, None] - x[self._index[idx, :]]
  182. return 0.5 * np.square(diff_ij)
  183. def permute_map(self):
  184. """
  185. Return a random permutation of the target brain map.
  186. Returns
  187. -------
  188. (N,) np.ndarray
  189. Random permutation of target brain map
  190. """
  191. perm_idx = self._rs.permutation(self._nmap)
  192. if self._ismasked:
  193. mask_perm = self._x.mask[perm_idx]
  194. x_perm = self._x.data[perm_idx]
  195. return np.ma.masked_array(data=x_perm, mask=mask_perm)
  196. return self._x[perm_idx]
  197. def smooth_map(self, x, k):
  198. """
  199. Smooth `x` using `k` nearest neighboring regions.
  200. Parameters
  201. ----------
  202. x : (N,) np.ndarray
  203. Brain map
  204. k : float
  205. Number of nearest neighbors to include for smoothing
  206. Returns
  207. -------
  208. x_smooth : (N,) np.ndarray
  209. Smoothed brain map
  210. Notes
  211. -----
  212. Assumes `D` provided at runtime has been sorted.
  213. """
  214. jkn = self._index[:, :k] # indices of k nearest neighbors
  215. xkn = x[jkn] # values of k nearest neighbors
  216. dkn = self._D[:, :k] # distances to k nearest neighbors
  217. weights = self._kernel(dkn) # distance-weighted kernel
  218. # Kernel-weighted sum
  219. return (weights * xkn).sum(axis=1) / weights.sum(axis=1)
  220. def smooth_variogram(self, u, v, return_h=False):
  221. """
  222. Smooth a variogram.
  223. Parameters
  224. ----------
  225. u : (N,) np.ndarray
  226. Pairwise distances, ie variogram x-coordinates
  227. v : (N,) np.ndarray
  228. Squared differences, ie ariogram y-coordinates
  229. return_h : bool, default False
  230. Return distances at which smoothed variogram is computed
  231. Returns
  232. -------
  233. (nh,) np.ndarray
  234. Smoothed variogram samples
  235. (nh,) np.ndarray
  236. Distances at which smoothed variogram was computed (returned if
  237. `return_h` is True)
  238. Raises
  239. ------
  240. ValueError : `u` and `v` are not identically sized
  241. """
  242. if len(u) != len(v):
  243. raise ValueError("u and v must have same number of elements")
  244. # Subtract each element of h from each pairwise distance `u`.
  245. # Each row corresponds to a unique h.
  246. du = np.abs(u - self._h[:, None])
  247. w = np.exp(-np.square(2.68 * du / self._b) / 2)
  248. denom = np.nansum(w, axis=1)
  249. wv = w * v[None, :]
  250. num = np.nansum(wv, axis=1)
  251. output = num / denom
  252. if not return_h:
  253. return output
  254. return output, self._h
  255. def regress(self, x, y):
  256. """
  257. Linearly regress `x` onto `y`.
  258. Parameters
  259. ----------
  260. x : (N,) np.ndarray
  261. Independent variable
  262. y : (N,) np.ndarray
  263. Dependent variable
  264. Returns
  265. -------
  266. alpha : float
  267. Intercept term (offset parameter)
  268. beta : float
  269. Regression coefficient (scale parameter)
  270. res : float
  271. Sum of squared residuals
  272. """
  273. self._lm.fit(X=np.expand_dims(x, -1), y=y)
  274. beta = self._lm.coef_.item()
  275. alpha = self._lm.intercept_
  276. ypred = self._lm.predict(np.expand_dims(x, -1))
  277. res = np.sum(np.square(y-ypred))
  278. return alpha, beta, res
  279. def sample(self):
  280. """
  281. Randomly sample (without replacement) brain areas for variogram
  282. computation.
  283. Returns
  284. -------
  285. (self.ns,) np.ndarray
  286. Indices of randomly sampled areas
  287. """
  288. return self._rs.choice(
  289. a=self._nmap, size=self._ns, replace=False).astype(np.int32)
  290. @property
  291. def x(self):
  292. """ (N,) np.ndarray : brain map scalars """
  293. if self._ismasked:
  294. return np.ma.copy(self._x)
  295. return np.copy(self._x)
  296. @x.setter
  297. def x(self, x):
  298. self._ismasked = False
  299. x_ = dataio(x)
  300. check_map(x=x_)
  301. mask = np.isnan(x_)
  302. if mask.any():
  303. self._ismasked = True
  304. brain_map = np.ma.masked_array(data=x_, mask=mask)
  305. else:
  306. brain_map = x_
  307. self._x = brain_map
  308. @property
  309. def D(self):
  310. """ (N,N) np.memmap : Pairwise distance matrix """
  311. return np.copy(self._D)
  312. @D.setter
  313. def D(self, x):
  314. x_ = dataio(x)
  315. n = self._x.size
  316. if x_.shape[0] != n:
  317. raise ValueError(
  318. "D size along axis=0 must equal brain map size")
  319. self._D = x_[:, 1:self._knn + 1] # prevent self-coupling
  320. @property
  321. def index(self):
  322. """ (N,N) np.memmap : indexes used to sort each row of dist. matrix """
  323. return np.copy(self._index)
  324. @index.setter
  325. def index(self, x):
  326. x_ = dataio(x)
  327. n = self._x.size
  328. if x_.shape[0] != n:
  329. raise ValueError(
  330. "index size along axis=0 must equal brain map size")
  331. self._index = x_[:, 1:self._knn+1].astype(np.int32)
  332. @property
  333. def nmap(self):
  334. """ int : length of brain map """
  335. return self._nmap
  336. @nmap.setter
  337. def nmap(self, x):
  338. self._nmap = int(x)
  339. @property
  340. def pv(self):
  341. """ int : percentile of pairwise distances at which to truncate """
  342. return self._pv
  343. @pv.setter
  344. def pv(self, x):
  345. pv = check_pv(x)
  346. self._pv = pv
  347. @property
  348. def deltas(self):
  349. """ np.ndarray or List[float] : proportions of nearest neighbors """
  350. return self._deltas
  351. @deltas.setter
  352. def deltas(self, x):
  353. check_deltas(deltas=x)
  354. self._deltas = x
  355. @property
  356. def nh(self):
  357. """ int : number of variogram distance intervals """
  358. return self._nh
  359. @nh.setter
  360. def nh(self, x):
  361. self._nh = x
  362. @property
  363. def kernel(self):
  364. """ Callable : smoothing kernel function
  365. Notes
  366. -----
  367. When setting kernel, use name of kernel as defined in ``config.py``.
  368. """
  369. return self._kernel
  370. @kernel.setter
  371. def kernel(self, x):
  372. kernel_callable = check_kernel(x)
  373. self._kernel = kernel_callable
  374. @property
  375. def resample(self):
  376. """ bool : whether to resample surrogate map values from target maps """
  377. return self._resample
  378. @resample.setter
  379. def resample(self, x):
  380. if not isinstance(x, bool):
  381. raise TypeError("expected bool, got {}".format(type(x)))
  382. self._resample = x
  383. @property
  384. def knn(self):
  385. """ int : number of nearest neighbors included in distance matrix """
  386. return self._knn
  387. @knn.setter
  388. def knn(self, x):
  389. if x > self._nmap:
  390. raise ValueError('knn must be less than len(X)')
  391. self._knn = int(x)
  392. @property
  393. def ns(self):
  394. """ int : number of randomly sampled regions used to construct map """
  395. return self._ns
  396. @ns.setter
  397. def ns(self, x):
  398. self._ns = int(x)
  399. @property
  400. def b(self):
  401. """ numeric : Gaussian kernel bandwidth """
  402. return self._b
  403. @b.setter
  404. def b(self, x):
  405. self._b = x
  406. @property
  407. def h(self):
  408. """ np.ndarray : distances at which variogram is evaluated """
  409. return self._h
  410. @h.setter
  411. def h(self, x):
  412. self._h = x

sampled.py at commit f6a9c37, under GPL-3.0 · at the source

Overview

Authors: Massimiliano Facca1,2, Anna Ridolfo1,2, Miriam Celli3, Claudia Tarricone1,2, Ilaria Mazzonetto4, Tommaso Volpi5, Andrei G. Vlassenko6, Manu S. Goyal6, Maurizio Corbetta1,3,4, Alessandra Bertoldo1,2
  1. Padova Neuroscience Center (PNC), University of Padova (Unipd), Padova, Italy
  2. Department of Information Engineering, University of Padova (Unipd), Padova, Italy
  3. Department of Neuroscience, University of Padova (Unipd), Padova, Italy
  4. Venetian Institute of Molecular Medicine (VIMM), Padova, Italy
  5. Department of Radiology and Biomedical Imaging, Yale University, New Haven, CT, United States
  6. Neuroimaging Laboratories Research Center at the Mallinckrodt Institute of Radiology, Washington University School of Medicine, St Louis, MO, United States
Journal: Imaging neuroscience (Cambridge, Mass.), volume 4, article IMAG.a.1275
Dates: received 1 December 2025; accepted 20 May 2026; published online 16 June 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1162/imag.a.1275 · PMID 42318034 · PMCID PMC13274566 · OpenAlex W4412759797
Open access: diamond, a free copy (OpenAlex)
Status: code verified
Categories: fMRI (modality), PET / SPECT (modality), human (organism)
Methods: Connectivity, Statistics, Smoothing, state filtering, decompositions, Machine learning, Preprocessing, Complexity, fMRI & imaging
Keywords: glucose metabolism, fMRI, PET, criticality, long-range temporal correlations, hurst exponent
Topic: Functional Brain Connectivity Studies (Cognitive Neuroscience, Neuroscience), according to OpenAlex
Funding: NIH (R01AG053503, R01AG057536, RF1AG073210, RF1AG074992); Ministry of University and Research (MUR), National Recovery and Resilience Plan (NRRP) (Project MNESYS (PE0000006)); EU (EBRAINS 2.0: A Research Infrastructure to Advance Neuroscience and Brain Health (HORIZON-INFRA-2022-SERV-B-01, grant n.101147319))
Citations: not cited yet (Europe PMC); 85 references in the paper

Abstract

Intrinsic brain activity is characterized by pervasive long-range temporal correlations. While these scale-invariant dynamics are a fundamental hallmark of brain function, their implications for individual-level metabolic regulation remain poorly understood. Here, we address this gap by integrating resting-state functional Magnetic Resonance Imaging (fMRI) and dynamic [18F]FDG Positron Emission Tomography (PET) data acquired from the same cohort of participants. We uncover a systematic relationship between long-range temporal correlations, quantified via the Hurst exponent, and glucose metabolism. Our findings reveal that persistent temporal dependencies are associated with a measurable metabolic cost, with brains exhibiting higher long-range temporal correlations incurring greater energetic demands. Full kinetic modeling of the [18F]FDG PET data traces this association specifically to intracellular glucose phosphorylation, pointing to a direct link with neuronal energy metabolism. Beyond glucose metabolism, we also show that these dynamics are likely supported by continuous biosynthetic processes, such as protein synthesis, which are critical for neural circuit maintenance and remodeling. Overall, our results suggest that a significant fraction of the brain’s so-called “Dark Energy” may be linked to spontaneous long-range temporal correlations.

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

wonsang/nonfractal

License: BSD-2-Clause
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Commit: 38accd45956af6c8a65a0d0b4005d04261e73b76, 2 November 2018
Languages: MATLAB (18)
Size: 24 files, 18 scripts
Software Heritage: archived
Found in: “Data and Code Availability”
Holds: README, license file
Not found: CITATION.cff, environment file, tests, continuous integration, documentation
Availability: 1 check, the latest on 27 September 2026: the link answers
  • 27 September 2026: the link answers
20 files

murraylab/brainsmash

License: GPL-3.0
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Commit: f6a9c375ba2e591acbc2edc161fbcff12609749d, 18 February 2024
Languages: Python (18)
Size: 83 files, 18 scripts
Software Heritage: archived
Found in: “Data and Code Availability”
Holds: README, license file, environment (requirements.txt, setup.py), documentation
Not found: CITATION.cff, tests, continuous integration
Tools: NumPy (11 files), NiBabel (3 files), SciPy (3 files), BrainSMASH (2 files), scikit-learn (2 files), Matplotlib (1 file), pandas (1 file)
Availability: 1 check, the latest on 27 September 2026: the link answers
  • 27 September 2026: the link answers
20 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:

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

The data are available upon reasonable request. They are not publicly shared to protect the privacy of research participants. The code for estimating the Hurst exponent is publicly available in the MATLAB nonfractal toolbox (https://github.com/wonsang/nonfractal). Functions for ICC(1,1) and other versions are available in the Python package Pingouin (https://github.com/raphaelvallat/pingouin). The code for SA-preserving null models is available in the BrainSMASH package (https://github.com/murraylab/brainsmash). The function for dominance analysis is included in the Netneurotools toolbox (https://github.com/netneurolab/netneurotools).

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

Recorded: type, language, journal, volume, pages, dates, 10 authors, 6 keywords, 3 funders, 83 references.

Cite

This paper

Facca, M., Ridolfo, A., Celli, M., Tarricone, C., Mazzonetto, I., Volpi, T., Vlassenko, A. G., Goyal, M. S., Corbetta, M., & Bertoldo, A. (2026). Glucose metabolism echoes long-range temporal correlations in the human brain. Imaging neuroscience (Cambridge, Mass.), 4, IMAG.a.1275. https://doi.org/10.1162/imag.a.1275

BibTeX

@article{facca2026glucose,
author = {Facca, Massimiliano and Ridolfo, Anna and Celli, Miriam and Tarricone, Claudia and Mazzonetto, Ilaria and Volpi, Tommaso and Vlassenko, Andrei G. and Goyal, Manu S. and Corbetta, Maurizio and Bertoldo, Alessandra},
title = {{Glucose metabolism echoes long-range temporal correlations in the human brain}},
journal = {Imaging neuroscience (Cambridge, Mass.)},
year = {2026},
month = jun,
volume = {4},
pages = {IMAG.a.1275},
publisher = {MIT Press},
issn = {2837-6056},
doi = {10.1162/imag.a.1275},
url = {https://doi.org/10.1162/imag.a.1275},
pmid = {42318034},
pmcid = {PMC13274566}
}

RIS

TY - JOUR
AU - Facca, Massimiliano
AU - Ridolfo, Anna
AU - Celli, Miriam
AU - Tarricone, Claudia
AU - Mazzonetto, Ilaria
AU - Volpi, Tommaso
AU - Vlassenko, Andrei G.
AU - Goyal, Manu S.
AU - Corbetta, Maurizio
AU - Bertoldo, Alessandra
TI - Glucose metabolism echoes long-range temporal correlations in the human brain
T2 - Imaging neuroscience (Cambridge, Mass.)
J2 - Imaging Neurosci (Camb)
PY - 2026
DA - 2026/06/16
VL - 4
SP - IMAG.a.1275
SN - 2837-6056
PB - MIT Press
DO - 10.1162/imag.a.1275
UR - https://doi.org/10.1162/imag.a.1275
LA - en
ER -

CSL-JSON

{
"id": "10.1162/imag.a.1275",
"type": "article-journal",
"title": "Glucose metabolism echoes long-range temporal correlations in the human brain",
"container-title": "Imaging neuroscience (Cambridge, Mass.)",
"author": [
{
"family": "Facca",
"given": "Massimiliano"
},
{
"family": "Ridolfo",
"given": "Anna"
},
{
"family": "Celli",
"given": "Miriam"
},
{
"family": "Tarricone",
"given": "Claudia"
},
{
"family": "Mazzonetto",
"given": "Ilaria"
},
{
"family": "Volpi",
"given": "Tommaso"
},
{
"family": "Vlassenko",
"given": "Andrei G."
},
{
"family": "Goyal",
"given": "Manu S."
},
{
"family": "Corbetta",
"given": "Maurizio"
},
{
"family": "Bertoldo",
"given": "Alessandra"
}
],
"container-title-short": "Imaging Neurosci (Camb)",
"volume": "4",
"page": "IMAG.a.1275",
"DOI": "10.1162/imag.a.1275",
"PMID": "42318034",
"PMCID": "PMC13274566",
"ISSN": "2837-6056",
"publisher": "MIT Press",
"URL": "https://doi.org/10.1162/imag.a.1275",
"language": "en",
"issued": {
"date-parts": [
[
2026,
6,
16
]
]
}
}

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.1162/imag.a.1252 [code]
Does the brain's E:I balance really shape long-range temporal correlations? Lessons learned from 3T MRI.
Journal: Imaging neuroscience (Cambridge, Mass.)
In common: NiBabel, scikit-learn, pandas, 3 other tools, fMRI, 8 references
[2] doi:10.1162/imag.a.1248 [code]
Estimating fMRI timescale maps.
Journal: Imaging neuroscience (Cambridge, Mass.)
In common: NiBabel, scikit-learn, pandas, 3 other tools, fMRI, 9 references
[3] doi:10.1038/s41467-026-74466-2 [code]
Neuromorphic hierarchical modular reservoirs.
Journal: Nature communications
In common: NiBabel, scikit-learn, pandas, 3 other tools, 10 references
[4] doi:10.1073/pnas.2531706123 [code]
Metabolism-weighted brain connectome reveals synaptic integration and vulnerability to neurodegeneration.
Journal: Proceedings of the National Academy of Sciences of the United States of America
In common: BrainSMASH, NiBabel, scikit-learn, 4 other tools, PET / SPECT, 6 references
[5] doi:10.1038/s41467-026-75959-w [code]
Charting higher-order models of brain function beyond pairwise interactions.
Journal: Nature communications
In common: NiBabel, Statistics and Machine Learning Toolbox, scikit-learn, 4 other tools, 8 references
[6] doi:10.7554/elife.106081 [code]
Heritability of movie-evoked brain activity and connectivity.
Journal: eLife
In common: BrainSMASH, NiBabel, Statistics and Machine Learning Toolbox, 3 other tools, 6 references
[7] doi:10.1038/s42003-026-10011-7 [code]
Learning brain dynamics across distinct scaling regimes reveals psychiatric signatures.
Journal: Communications biology
In common: NiBabel, scikit-learn, pandas, 3 other tools, 7 references
[8] 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: BrainSMASH, NiBabel, Statistics and Machine Learning Toolbox, 5 other tools, 4 references
[9] doi:10.1038/s42003-025-09444-3 [code]
Decoupling of neurophysiological activity from structure mirrors global microarchitectural and neuromodulatory trends.
Journal: Communications biology
In common: NiBabel, Statistics and Machine Learning Toolbox, scikit-learn, 4 other tools, 5 references
[10] doi:10.1038/s41593-026-02359-0 [code]
The cross-site reproducibility of MRI morphometric phenotypes in psychiatric disorders.
Journal: Nature neuroscience
In common: BrainSMASH, NiBabel, Statistics and Machine Learning Toolbox, 5 other tools, 3 references

Contribute

The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.

Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.

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.