OSCR

THOI: An efficient and accessible library for computing higher-order interactions enhanced by batch-processing.

Code ↔ Paper

5 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 5 matches
  1. [1] § Results and discussion › Analysis of large database of synthetic and real-world systems ↔ notebooks/thoi_datasets_analysis.ipynb, lines 156–284 · score 0.69 · std MI, explained variance, syn plets, prop, PCA, components
  2. [2] § Results and discussion › Analysis of large database of synthetic and real-world systems ↔ notebooks/thoi_datasets_analysis.ipynb, lines 156–284 · score 0.62 · principal component, correlation matrix, PCA, variance, MI, Interdependence
  3. [3] § Materials and methods › Heuristics › Key characteristics. ↔ thoi/measures/gaussian_copula.py, lines 281–361 · score 0.58 · PyTorch, single batched, batch processing, sequence, efficiently, DTC
  4. [4] § Materials and methods › Scalable batch-based architecture for higher-order information computation › Parallel evaluation of higher-order information measures. ↔ thoi/measures/gaussian_copula.py, lines 489–574 · score 0.55 · Gaussian entropies, Gaussian copula, batch processing, covariance matrices, PyTorch, plet
  5. [5] § Materials and methods › Scalable batch-based architecture for higher-order information computation › Parallel evaluation of higher-order information measures. ↔ thoi/measures/gaussian_copula_hot_encoded.py, lines 80–139 · score 0.55 · sub covariance matrices, Gaussian entropies, Gaussian copula, PyTorch, batch

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 · 284 lines · 10 KB · CC0-1.0 · 2 matches

  1. # %% [markdown]
  2. # ### Workflow for analyzing a database with more than 1000 datasets https://zenodo.org/records/7118947
  3. #
  4. #
  5. # It took 1230 seconds to compute all orders (from pairs to N) for:
  6. # * batch_size = 100000. Used only datasets with 20 or less variables
  7. # * In a 12th Gen Intel© Core™ i9-12900H × 14
  8. # * Linux mint 20.3
  9. # * Using les than 8 GB of RAM
  10. # %%
  11. # Import necessary libraries
  12. import numpy as np
  13. import pandas as pd
  14. import matplotlib.pyplot as plt
  15. from matplotlib.gridspec import GridSpec
  16. import seaborn as sns
  17. import time
  18. from pathlib import Path
  19. # Import THOI library functions
  20. from thoi.measures.gaussian_copula import multi_order_measures
  21. # Import sklearn functions for PCA and data scaling
  22. from sklearn.decomposition import PCA
  23. from sklearn.preprocessing import StandardScaler
  24. # %%
  25. # Define the data folder and filename
  26. data_folder = Path('../data/')
  27. filename = 'database_zenodo.pkl'
  28. # Load the data from the pickle file
  29. data_path = data_folder / filename
  30. data_obj = pd.read_pickle(data_path)
  31. # Extract dataset names and data
  32. dataset_names = list(data_obj.keys()) # Names of each dataset
  33. dataset_data = [data_obj[name]['data'] for name in dataset_names] # Data of each dataset
  34. # Calculate system sizes
  35. system_sizes = np.array([data.shape[0] for data in dataset_data]) # System size
  36. # Filter datasets with 20 or fewer variables
  37. max_size = 20
  38. valid_indices = np.where(system_sizes <= max_size)[0]
  39. filtered_data = [dataset_data[idx] for idx in valid_indices]
  40. filtered_names = [dataset_names[idx] for idx in valid_indices]
  41. # Print the number of filtered datasets
  42. print(f'Number of datasets {len(filtered_data)}')
  43. print('Number of datasets per size')
  44. for size, count in zip(*np.unique([np.shape(x)[0] for x in filtered_data], return_counts=True)):
  45. print('\tsize:', size,'\tamount:', count)
  46. # %%
  47. # NOTE: comment this block to avoid reprocessing already processed data
  48. # Computing high order interactions exhaustively for all the system with maximum 20 variables
  49. ini_time = time.time()
  50. batch_size = 100000
  51. output = [multi_order_measures(x.T, min_order=2, batch_size=batch_size) for x in filtered_data]
  52. final_time = (time.time() - ini_time)
  53. print(f'Total processing time for {len(filtered_data)} == {final_time} seconds')
  54. data_to_save = {
  55. "hoi_output": output,
  56. "data_names": filtered_names
  57. }
  58. # NOTE: uncomment this block to persist results to disk for later use
  59. #Path("../results/920_datasets").mkdir(parents=True, exist_ok=True)
  60. #with open('../results/920_datasets/hoi_output_full.pkl', 'wb') as f:
  61. # pickle.dump(data_to_save, f)
  62. # %%
  63. # NOTE: uncomment this block to read already processed data
  64. # Loading data
  65. #output = pd.read_pickle('../results/920_datasets/hoi_output_full.pkl')
  66. # %%
  67. # Setting negative S, TC and DTC values, and -+inf to nan, and O-infor for order 2 to Nan
  68. output_not_nan = [
  69. df.assign(tc=df['tc'].where(df['tc'] >= 0, np.nan),
  70. dtc=df['dtc'].where(df['dtc'] >= 0, np.nan),
  71. s=df['s'].where(df['s'] >= 0, np.nan),
  72. o=df['o'].where(df['order'] >= 3, np.nan))
  73. for df in output
  74. ]
  75. # %%
  76. # Computing pairwise metrics
  77. mi_averages = pd.DataFrame([df['tc'][df['order']==2].mean(skipna=True) for df in output_not_nan], columns=['mean_mi'])
  78. mi_stds = pd.DataFrame([df['tc'][df['order']==2].std(skipna=True) for df in output_not_nan], columns=['std_mi'])
  79. # %%
  80. # Extracting summary statistics for each dataset
  81. # Extracting the Min, Max and Mean for each measure
  82. mean_mes = pd.DataFrame([{col: df[col][df['order']>2].mean(skipna=True) for col in ['tc', 'dtc', 'o', 's']} for df in output_not_nan]).add_prefix('mean_')
  83. max_mes = pd.DataFrame([{col: df[col][df['order']>2].max(skipna=True) for col in ['tc', 'dtc', 'o', 's']} for df in output_not_nan]).add_prefix('max_')
  84. min_mes = pd.DataFrame([{col: df[col][df['order']>2].min(skipna=True) for col in ['tc', 'dtc', 'o', 's']} for df in output_not_nan]).add_prefix('min_')
  85. min_o_index = pd.DataFrame([(df['order'].iloc[df['o'].idxmin(skipna=True)])/df['order'].iloc[-1] for df in output_not_nan], columns=['o_min_k/N'])
  86. max_o_index = pd.DataFrame([(df['order'].iloc[df['o'].idxmax(skipna=True)])/df['order'].iloc[-1] for df in output_not_nan], columns=['o_max_k/N'])
  87. o_below_zero = pd.DataFrame([(df['o'] < 0).sum() for df in output_not_nan], columns=['num syn-plets'])
  88. o_above_zero = pd.DataFrame([(df['o'] > 0).sum() for df in output_not_nan], columns=['num red-plets'])
  89. prop_syn_red = pd.DataFrame([((df['o'] < 0).sum())/((df['o'] > 0).sum() + (df['o'] < 0).sum()) for df in output_not_nan], columns=['prop. syn-plets'])
  90. prop_syn_red = prop_syn_red.replace([np.inf, -np.inf], np.nan)
  91. whole_meas = pd.DataFrame([{col: df[col].iloc[-1] for col in ['tc', 'dtc', 'o', 's']} for df in output_not_nan]).add_prefix('whole_')
  92. sys_size = pd.DataFrame(data=[np.shape(x)[0] for x in filtered_data], columns=['N'])
  93. combined_df = pd.concat([whole_meas, mean_mes, max_mes, min_mes, mi_averages,
  94. mi_stds, min_o_index, max_o_index, prop_syn_red, sys_size,
  95. pd.DataFrame(data=filtered_names, columns=['name'])], axis=1)
  96. # Replacing infs with nans and removing rows with nans
  97. combined_df = combined_df.replace([np.inf, -np.inf], np.nan)
  98. combined_df_not_nan = combined_df.dropna()
  99. # %% [markdown]
  100. # ### Plotting results
  101. # %%
  102. # Computing correlation between features
  103. data_cols = combined_df_not_nan.columns[:-2]
  104. correlation_matrix = combined_df_not_nan[data_cols].corr(method='spearman')
  105. plt.figure(figsize=(12,8))
  106. sns.heatmap(correlation_matrix,
  107. vmin=-1, vmax=1, cmap='coolwarm',
  108. annot=True, annot_kws={'fontsize': 8},
  109. cbar_kws={'label': 'Correlation'})
  110. plt.show()
  111. # %% [markdown]
  112. # ### Principal component analysis of features across datasets
  113. # %%
  114. # PCA on features
  115. # Standardize the data if needed
  116. scaler = StandardScaler()
  117. scaled_data = scaler.fit_transform(combined_df_not_nan[data_cols])
  118. # scaled_data = combined_df_not_nan[data_cols]
  119. # Perform PCA
  120. pca = PCA()
  121. pca_result = pca.fit_transform(scaled_data)
  122. # %%
  123. plt.rcParams['pdf.fonttype'] = 42
  124. plt.rcParams['ps.fonttype'] = 42
  125. # Define titles and parameters
  126. pc_titles = [
  127. 'Overall Interdependence',
  128. 'Overall Independence',
  129. 'Presence of R-S across orders',
  130. 'O-information'
  131. ]
  132. col_names = ['whole TC','whole DTC',
  133. 'whole $\\Omega$',
  134. 'whole S','mean TC','mean DTC','mean $\\Omega$','mean S','max TC',
  135. 'max DTC','max $\\Omega$','max S','min TC','min DTC','min $\\Omega$',
  136. 'min S','mean MI','std MI','order min $\\Omega$','order max $\\Omega$','prop. syn-plets'
  137. ]
  138. correlation_matrix.columns = col_names
  139. correlation_matrix.index = col_names
  140. ncols = len(col_names)
  141. npcs = 4
  142. explained_variance = pca.explained_variance_ratio_
  143. pc_basis = pca.components_[:npcs]
  144. cols_colors = plt.get_cmap('tab10')(np.linspace(0, 1, 7))
  145. bar_colors = []
  146. for name in col_names:
  147. if name.endswith('MI'):
  148. bar_colors.append(cols_colors[3])
  149. elif name.startswith('mean'):
  150. bar_colors.append(cols_colors[1])
  151. elif name.startswith('min'):
  152. bar_colors.append(cols_colors[0])
  153. elif name.startswith('max'):
  154. bar_colors.append(cols_colors[2])
  155. elif name.startswith('order'):
  156. bar_colors.append(cols_colors[4])
  157. elif name.startswith('prop.'):
  158. bar_colors.append(cols_colors[5])
  159. else:
  160. bar_colors.append('black') # default color
  161. fig = plt.figure(figsize=(16, 12))
  162. gs = GridSpec(2, 4, height_ratios=[1, 1], hspace=0.4, wspace=0.25)
  163. # First row: Correlation matrix
  164. ax_corr = fig.add_subplot(gs[0, 0:2])
  165. sns.heatmap(
  166. correlation_matrix, vmin=-1, vmax=1, cmap='BrBG',
  167. annot=False, cbar_kws={'label': 'Correlation'}, ax=ax_corr, xticklabels=col_names, yticklabels=col_names,
  168. )
  169. ax_corr.invert_yaxis()
  170. ax_corr.invert_xaxis()
  171. ax_corr.set_title('Correlation Matrix')
  172. for label in ax_corr.get_yticklabels():
  173. text = label.get_text()
  174. if text.endswith('MI'):
  175. label.set_color(cols_colors[3])
  176. elif text.startswith('mean'):
  177. label.set_color(cols_colors[1])
  178. elif text.startswith('min'):
  179. label.set_color(cols_colors[0])
  180. elif text.startswith('max'):
  181. label.set_color(cols_colors[2])
  182. elif text.startswith('order'):
  183. label.set_color(cols_colors[4])
  184. elif text.startswith('prop.'):
  185. label.set_color(cols_colors[5])
  186. for label in ax_corr.get_xticklabels():
  187. text = label.get_text()
  188. if text.endswith('MI'):
  189. label.set_color(cols_colors[3])
  190. elif text.startswith('mean'):
  191. label.set_color(cols_colors[1])
  192. elif text.startswith('min'):
  193. label.set_color(cols_colors[0])
  194. elif text.startswith('max'):
  195. label.set_color(cols_colors[2])
  196. elif text.startswith('order'):
  197. label.set_color(cols_colors[4])
  198. elif text.startswith('prop.'):
  199. label.set_color(cols_colors[5])
  200. # First row: Explained variance
  201. ax_var = fig.add_subplot(gs[0, 2:4])
  202. ax_var.plot(range(1, len(explained_variance) + 1), np.cumsum(explained_variance), marker='o', linestyle='-')
  203. ax_var.set_xlabel('Principal Component')
  204. ax_var.set_ylabel('Explained Variance')
  205. ax_var.set_xticks(np.arange(1, len(explained_variance) + 1, 1))
  206. ax_var.grid(axis='y')
  207. # Second row: Principal components loadings
  208. axes_pc = []
  209. for i in range(npcs):
  210. ax = fig.add_subplot(gs[1, i])
  211. ax.barh(np.arange(ncols), pc_basis[i], color=bar_colors)
  212. ax.axvline(0, color='k', linestyle='--')
  213. ax.set_xlabel(f'PC{i + 1}')
  214. ax.set_xlim([-0.6, 0.6])
  215. ax.grid(axis='x')
  216. ax.set_title(pc_titles[i])
  217. if i != 0:
  218. ax.set_yticks([])
  219. else:
  220. ax.set_yticks(np.arange(ncols))
  221. ax.set_yticklabels(col_names)
  222. for label in ax.get_yticklabels():
  223. text = label.get_text()
  224. if text.endswith('MI'):
  225. label.set_color(cols_colors[3])
  226. elif text.startswith('mean'):
  227. label.set_color(cols_colors[1])
  228. elif text.startswith('min'):
  229. label.set_color(cols_colors[0])
  230. elif text.startswith('max'):
  231. label.set_color(cols_colors[2])
  232. elif text.startswith('order'):
  233. label.set_color(cols_colors[4])
  234. elif text.startswith('prop.'):
  235. label.set_color(cols_colors[5])
  236. plt.show()

thoi_datasets_analysis.ipynb at commit 426b675, under CC0-1.0 · at the source

Overview

Authors: Laouen Belloli1,2,3, Pedro A M Mediano4,5, Rodrigo Cofré6, Diego Fernandez Slezak1,2, Rubén Herzog7,8
  1. Laboratorio de Inteligencia Artificial Aplicada, Instituto de Ciencias de la Computación, Universidad de Buenos Aires, Buenos Aires, Argentina
  2. Instituto de Investigación en Ciencias de la Computación (ICC), CONICET-Universidad de Buenos Aires, Buenos Aires, Argentina
  3. Institut du Cerveau, Paris Brain Institute, ICM, Inserm, CNRS, Sorbonne Université, Paris, France
  4. Department of Computing, Imperial College London, London, United Kingdom
  5. Division of Psychology and Language Sciences, University College London, London, United Kingdom
  6. Universite Côte d’Azur, INRIA CRONOS Team, Sophia Antipolis, France
  7. Instituto de Física Interdisciplinar y Sistemas Complejos (IFISC, UIB-CSIC), Palma de Mallorca, Spain
  8. Department of Psychology, University of the Balearic Islands, Palma de Mallorca, Spain
Journal: PloS one, volume 21, issue 5, article e0348005
Dates: received 30 July 2025; accepted 9 April 2026; published online 11 May 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1371/journal.pone.0348005 · PMID 42113765 · PMCID PMC13160338 · OpenAlex W4406186649
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: human (organism), methods / tools (subfield)
Methods: Statistics, Connectivity
MeSH: Software*, Algorithms, Entropy (* major topic)
Topic: Scientific Computing and Data Management (Information Systems and Management, Decision Sciences), according to OpenAlex
Citations: cited by 1 paper (Europe PMC); 62 references in the paper

Abstract

Complex systems are characterized by nonlinear dynamics, multi-level interactions, and emergent collective behaviors. Traditional analyses that focus solely on pairwise interactions often oversimplify these systems, neglecting the higher-order interactions critical for understanding their full collective dynamics. Recent advances in multivariate information theory provide a principled framework for quantifying these higher-order interactions, capturing key properties such as redundancy, synergy, shared randomness, and collective constraints. However, two major challenges persist: accurately estimating joint entropies and addressing the combinatorial explosion of interacting terms. To overcome these challenges, we introduce THOI (Torch-based High-Order Interactions), a novel, accessible, and efficient Python library for computing high-order interactions in continuous-valued systems. THOI leverages the well-established Gaussian copula method for joint entropy estimation, combined with state-of-the-art batch and parallel processing techniques to optimize performance across CPU, GPU, and TPU environments. Our results demonstrate that THOI significantly outperforms existing tools in terms of speed and scalability. Specifically, THOI reduces the time required to exhaustively analyze all interactions in small systems (≤ 30 variables). For larger systems, where exhaustive analysis is computationally impractical, THOI integrates optimization strategies that make higher-order interaction analysis feasible. We validate THOI’s accuracy using synthetic datasets with parametrically controlled interactions and further illustrate its utility by analyzing fMRI data from human subjects in wakeful resting states and under deep anesthesia. Finally, we analyzed over 900 real-world and synthetic datasets, establishing a comprehensive framework for applying higher-order interaction (HOI) analysis in complex systems. THOI opens new perspectives for testing both established and novel hypotheses about the multi-level, nonlinear, and multidimensional nature of complex systems.

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

laouen/thoi

License: MIT
State: the link answers, verified on 28 September 2026
Evidence: files inventoried
Commit: 8a35577268195017e28167f5818b4f8cddbd013f, 9 June 2026
Languages: Python (26), JavaScript (11), Shell (1)
Size: 111 files, 38 scripts
Software Heritage: not archived
Found in: “Code availability”
Holds: README, license file, environment (requirements-docs.txt, requirements.txt, setup.py), tests, continuous integration, documentation
Not found: CITATION.cff
Tools: PyTorch (21 files), NumPy (15 files), pandas (6 files), SciPy (2 files), NetworkX (1 file)
Availability: 1 check, the latest on 28 September 2026: the link answers
  • 28 September 2026: the link answers
40 files

Zenodo 15020522

License: MIT
State: the link answers, verified on 28 September 2026
Evidence: files inventoried
Size: 1 file
Software Heritage: not checked
Found in: “Code availability”
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: PyTorch (14 files), NumPy (12 files), pandas (4 files), SciPy (3 files), NetworkX (1 file)
Availability: 1 check, the latest on 28 September 2026: the link answers (HTTP 200)
  • 28 September 2026: the link answers (HTTP 200)
21 files

Laouen/thoi_tutorials

License: CC0-1.0
State: the link answers, verified on 28 September 2026
Evidence: files inventoried
Commit: 426b67580bad25efdef77ab6a0badb2e6123149a, 22 January 2026
Languages: Python (21), Jupyter (5), Java (5), Shell (1)
Size: 927 files, 32 scripts
Software Heritage: not archived
Found in: “Code availability”
Holds: README, license file, environment (requirements.txt, scripts/HOI_toolbox/Dockerfile, scripts/HOI_toolbox/requirements.txt), 5 notebooks
Not found: CITATION.cff, tests, continuous integration, documentation
Tools: NumPy (25 files), pandas (12 files), SciPy (9 files), Matplotlib (5 files), seaborn (5 files), PyTorch (3 files), scikit-learn (3 files), Pingouin (2 files)
Availability: 1 check, the latest on 28 September 2026: the link answers
  • 28 September 2026: the link answers
34 files

Zenodo 15020335

License: CC0-1.0
State: the link answers, verified on 28 September 2026
Evidence: files inventoried
Size: 1 file
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 28 September 2026: the link answers (HTTP 200)
  • 28 September 2026: the link answers (HTTP 200)

Code availability

The Python library presented in this study, THOI, is open-source and publicly accessible under the MIT license. It can be found at:

GitHub repository: https://github.com/Laouen/THOI/releases/tag/v0.2.33

Python Package Index (PyPI): https://pypi.org/project/thoi/0.2.33/

Archived release on Zenodo: https://zenodo.org/records/15020522

All code necessary to reproduce the analyses demonstrated in this paper is available in the accompanying GitHub repository at https://github.com/Laouen/thoi_tutorials. Additionally, a stable version of the code has been archived on Zenodo for reproducibility (https://zenodo.org/records/15020335). The provided code consists primarily of Python scripts, with some supplementary Java scripts to get JIDT times and Jupyter Notebooks for the figures. Detailed README files and a requirements.txt file are included to facilitate straightforward environment setup and step-by-step reproduction of all analyses.

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:

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

All data underlying the results presented in this study are publicly available from external repositories. The anesthesia analysis dataset is available from the OpenNeuro repository at https://openneuro.org/datasets/ds003171/versions/2.0.1. The dataset comprising synthetic and real-world systems analyses is available from the Zenodo repository at https://zenodo.org/records/7118947. No new data were generated for this study.

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

Recorded: type, language, journal, volume, issue, pages, dates, 5 authors, 3 MeSH terms, 50 references.

Cite

This paper

Belloli, L., Mediano, P. A. M., Cofré, R., Slezak, D. F., & Herzog, R. (2026). THOI: An efficient and accessible library for computing higher-order interactions enhanced by batch-processing. PloS one, 21(5), e0348005. https://doi.org/10.1371/journal.pone.0348005

BibTeX

@article{belloli2026thoi,
author = {Belloli, Laouen and Mediano, Pedro A M and Cofré, Rodrigo and Slezak, Diego Fernandez and Herzog, Rubén},
title = {{THOI: An efficient and accessible library for computing higher-order interactions enhanced by batch-processing}},
journal = {PloS one},
year = {2026},
month = may,
volume = {21},
number = {5},
pages = {e0348005},
publisher = {PLOS},
issn = {1932-6203},
doi = {10.1371/journal.pone.0348005},
url = {https://doi.org/10.1371/journal.pone.0348005},
pmid = {42113765},
pmcid = {PMC13160338}
}

RIS

TY - JOUR
AU - Belloli, Laouen
AU - Mediano, Pedro A M
AU - Cofré, Rodrigo
AU - Slezak, Diego Fernandez
AU - Herzog, Rubén
TI - THOI: An efficient and accessible library for computing higher-order interactions enhanced by batch-processing
T2 - PloS one
J2 - PLoS One
PY - 2026
DA - 2026/05/11
VL - 21
IS - 5
SP - e0348005
SN - 1932-6203
PB - PLOS
DO - 10.1371/journal.pone.0348005
UR - https://doi.org/10.1371/journal.pone.0348005
LA - en
ER -

CSL-JSON

{
"id": "10.1371/journal.pone.0348005",
"type": "article-journal",
"title": "THOI: An efficient and accessible library for computing higher-order interactions enhanced by batch-processing",
"container-title": "PloS one",
"author": [
{
"family": "Belloli",
"given": "Laouen"
},
{
"family": "Mediano",
"given": "Pedro A M"
},
{
"family": "Cofré",
"given": "Rodrigo"
},
{
"family": "Slezak",
"given": "Diego Fernandez"
},
{
"family": "Herzog",
"given": "Rubén"
}
],
"container-title-short": "PLoS One",
"volume": "21",
"issue": "5",
"page": "e0348005",
"DOI": "10.1371/journal.pone.0348005",
"PMID": "42113765",
"PMCID": "PMC13160338",
"ISSN": "1932-6203",
"publisher": "PLOS",
"URL": "https://doi.org/10.1371/journal.pone.0348005",
"language": "en",
"issued": {
"date-parts": [
[
2026,
5,
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-75959-w [code]
Charting higher-order models of brain function beyond pairwise interactions.
Journal: Nature communications
In common: NetworkX, seaborn, scikit-learn, 4 other tools, 15 references
[2] doi:10.1016/j.patter.2026.101619 [code]
Sampling bias corrections for discrete and Gaussian partial information decompositions.
Journal: Patterns (New York, N.Y.)
In common: seaborn, scikit-learn, pandas, 3 other tools, 6 references
[3] doi:10.1093/nc/niag029 [code]
A data-driven approach to identifying and evaluating connectivity-based neural correlates of conscious visual perception.
Journal: Neuroscience of consciousness
In common: Pingouin, NetworkX, seaborn, 5 other tools, 2 references
[4] doi:10.1038/s41398-026-04212-1
High-order brain interactions during ketamine-induced state changes: A functional marker of response in late-life treatment-resistant depression?
Journal: Translational psychiatry
In common: 3 references, author Rubén Herzog
[5] doi:10.1038/s41467-026-74466-2 [code]
Neuromorphic hierarchical modular reservoirs.
Journal: Nature communications
In common: Pingouin, NetworkX, seaborn, 5 other tools, 1 reference
[6] doi:10.1007/s00422-026-01049-1 [code]
A three-component dynamical index of consciousness-related neural organisation.
Journal: Biological cybernetics
In common: NetworkX, scikit-learn, pandas, 3 other tools, 3 references
[7] doi:10.1371/journal.pcbi.1014571 [code]
SynAPSeg: A novel dataset and image analysis framework for deep learning-based synapse detection and quantification.
Journal: PLoS computational biology
In common: Pingouin, NetworkX, PyTorch, 6 other tools
[8] doi:10.1002/ana.78203 [code]
AI-Driven Mapping of Seizure Spread Patterns.
Journal: Annals of neurology
In common: Pingouin, NetworkX, PyTorch, 6 other tools
[9] doi:10.1162/netn.a.570 [code]
Higher-order statistics for constructing centered edge functional connectivity.
Journal: Network neuroscience (Cambridge, Mass.)
In common: seaborn, scikit-learn, pandas, 3 other tools, 3 references
[10] doi:10.1016/j.isci.2026.117375 [code]
Motor priming is associated with widespread recruitment into neural ensembles and more rapid ensemble transitions.
Journal: iScience
In common: Pingouin, NetworkX, PyTorch, 6 other tools

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.