OSCR

Protocol for identifying and comparing neuronal ensembles using different algorithms within a graphical user interface.

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] § Step-by-step method details › Programmatic access and batch analysis ↔ src/encore/parallel_runners/sessions.py, lines 129 to 245 · score 0.58 · batch processing, ensemble identification algorithms, API, ENCORE · Report a mismatch
  2. [2] § Before you begin › Software preparation ↔ src/encore/runners/encore.py, lines 612 to 648 · score 0.55 · Xsembles2P algorithms, neuronal activity, Binary, variable, cell, matrix · Report a mismatch

Paper

Loaded from Europe PMC by your browser; OSCR does not store it: doi.org · Europe PMC

The paper is loaded when this pane is shown.

The authors' code

Python · 245 lines · 10 KB · GPL-3.0 · 1 match

  1. import numpy as np
  2. import importlib.metadata
  3. from datetime import datetime
  4. from concurrent.futures import ProcessPoolExecutor, as_completed
  5. from encore.utils.metrics import compute_similarity_matrix
  6. def run_single_session(
  7. args: tuple[str, str, dict[str, np.ndarray], dict[str, str], dict, bool, list[str]],
  8. ) -> tuple[str, dict, dict]:
  9. """
  10. Auxiliary function to identify the algorithm to run, organize the user's data and
  11. organize the result for this run.
  12. This is an internal function expected to be used only by
  13. :meth:`encore.parallel_runners.sessions.run_parallel_sessions`
  14. Every worker uses this function.
  15. :param args: Tuple with the arguments for the runner. This is:
  16. **algorithm**: str, The 3-chars name of the algorithm, e.g. 'ica', 'svd', 'pca', 'sgc', 'x2p'
  17. **database_name**: str, The name of the database used. This is to reference asynchronously the results
  18. with the correct database.
  19. **database_data**: dict[str, np.ndarray], The data for the analysis.
  20. **data_names**: dict[str, str], The names of the API variables.
  21. **parameters**: dict, The dictionary with the parameters for the algorithm.
  22. **eval_similarity**: bool, whether or not to perform the evaluation of similarities.
  23. **similarity_elements**: list[str], List with the names of the variables to compute similarities with.
  24. :type args: tuple[str, str, dict[str, np.ndarray], dict[str, str], dict, bool, list[str]]
  25. :raises RuntimeError: If the selected algorithm is not known.
  26. :return: Tuple with the results of the run. This is:
  27. **database_name**: str, the name of the database as it was received
  28. **parameters**: dict, the parameters for the algorithm
  29. **result**: dict, contains the fields
  30. "success": bool, "results": dict, "similarity": dict, "similarity_labels": list[str],
  31. :rtype: tuple[str, dict, dict]
  32. """
  33. algorithm = args[0]
  34. database_name = args[1]
  35. database_data = args[2]
  36. data_names = args[3]
  37. parameters = args[4]
  38. eval_similarity = args[5]
  39. similarity_elements = args[6]
  40. print(f"Running [{database_name}]")
  41. data = {
  42. input_key: database_data[db_key] for input_key, db_key in data_names.items()
  43. }
  44. # Run algorithm
  45. output = {"success": False}
  46. try:
  47. # Dynamic load of the module and function
  48. module_path = "encore.runners.encore"
  49. module = importlib.import_module(module_path)
  50. function_name = f"run_{algorithm}"
  51. func = getattr(module, function_name, None)
  52. if func is None or not callable(func):
  53. raise RuntimeError(f"The specified algorithm {algorithm} is not defined.")
  54. output = func(
  55. data,
  56. parameters,
  57. include_answer=False,
  58. )
  59. except Exception as exc:
  60. print(f"Error for db {database_name}: ", exc)
  61. # Failed run
  62. if not output["success"]:
  63. return (
  64. database_name,
  65. parameters,
  66. {
  67. "success": False,
  68. "results": None,
  69. "similarity": None,
  70. "similarity_labels": None,
  71. },
  72. )
  73. # Compute similarity
  74. similarities = {}
  75. compare_labels = []
  76. if eval_similarity:
  77. sim_elements = [
  78. database_data[elem] for elem in similarity_elements if elem in database_data
  79. ]
  80. if len(sim_elements) == len(similarity_elements):
  81. sim_elements_mat = np.vstack(sim_elements)
  82. compare_mat = np.vstack([output["results"]["timecourse"], sim_elements_mat])
  83. ensembles_cant = output["results"]["timecourse"].shape[0]
  84. compare_labels = [f"ens {i}" for i in range(ensembles_cant)]
  85. for element in similarity_elements:
  86. # Look for the labels, like "orientation_labels"
  87. label_name = f"{element}_labels"
  88. element_labels = database_data.get(
  89. label_name, list(range(database_data[element].shape[0]))
  90. )
  91. # Append each new label for each element like "ori 90"
  92. compare_labels.extend(f"{label_name[0:3]} {i}" for i in element_labels)
  93. sim_methods = ["Cosine", "Euclidean", "Correlation", "Jaccard"]
  94. for method in sim_methods:
  95. similarities[method] = compute_similarity_matrix(
  96. method,
  97. compare_mat,
  98. )
  99. else:
  100. if len(sim_elements) == 0:
  101. print(f" $$ WARN: No elements for similarity found for {database_name}")
  102. else:
  103. print(
  104. f" $$ WARN: Some elements missing for similarity for {database_name}"
  105. )
  106. result = {
  107. "success": True,
  108. "results": output["results"],
  109. "similarity": similarities,
  110. "similarity_labels": compare_labels,
  111. }
  112. return database_name, parameters, result
  113. def run_parallel_sessions(
  114. data: dict[str, dict[str, np.ndarray]],
  115. parameters: dict[str, dict],
  116. max_workers_cant: int,
  117. default_key="default",
  118. ):
  119. """
  120. Run ensembles identification algorithms in parallel for different databases.
  121. The parameters for the analysis can be defined for each database or use a default one
  122. as a fallback.
  123. :param data: Dictionary containing the data for each database.
  124. The keys for the first dictionary is a string with the name or ID or the database.
  125. Each value at this level contains a dictionary with the data of that database.
  126. In this dictionary each key is a specific identifier for a numpy array containing experimental data,
  127. e.g. matrix of spikes, fluorescence traces, stimulation, behavior.
  128. You can use any name for these variables.
  129. :type data: dict[str, dict[str, np.ndarray]]
  130. :param parameters: Dictionary where each key is the ID of a database or a fallback name.
  131. The dictionary inside should contain the keys:
  132. - "analysis", with the 3-letter name of the algorithm to use.
  133. - "data_names", This is a dict[str, str] The keys should be one the name of the variables used by the algorithm,
  134. e.g "data_neuronal_activity", "data_dFFo" and the value is the name of that variable in the `data` parameter.
  135. - "parameters" with another dictionary with the parameters for that specific algorithm, as used by the API.
  136. - "evaluate_similarity", a bool variable to evaluate similarity metrics between results/data
  137. - "similarity_elements", a list of strings, each string is the key of variables in `data`. When `evaluate_similarity`
  138. is True, the batch processing will also calculate the similarity between the ensembles timecourse and this other variables, so
  139. these variables should be of the same length as the recording. This is useful to evaluate the performance of each
  140. algorithm in every database.
  141. :type parameters: dict[str, dict]
  142. :param max_workers_cant: Number of workers to use for parallel processing.
  143. :type max_workers_cant: int
  144. :param default_key: Specific key of the fallback parameter key. These set of parameters
  145. will be used for any database that is not explicitly in the keys of the `parameters` argument. Defaults to "default".
  146. :type default_key: str, optional
  147. :return: Dictionary with the results of the batch analyses. Contains the following keys.
  148. **info**: dict[str, str], the date and version information of the analyzer
  149. **parameters**: dict, The parameters used for the entire batch analysis.
  150. This is a copy of the parameters passed by the user to the function.
  151. **parameters_used**: dict, each key is the name of each database, contains the batch parameters used
  152. by this database. If it used the default parameters then it's a copy of its contents.
  153. **results**: dict, each key is the name of each database. Contains the minimal results of the ensembles algorithm
  154. The matrix of similarity and the labels of each similarity matrix and a flag of success for the algorithm.
  155. :rtype: dict[str, dict]
  156. :raises RuntimeError: If no fallback parameter is assigned and a database was not in the `parameters` keys.
  157. """
  158. print(
  159. f"\n{'=' * 70}\n" f" ENCORE: Running parallel session analysis\n" f"{'=' * 70}"
  160. )
  161. # Define the results info
  162. now = datetime.now()
  163. formatted_time = now.strftime("%d%m%y_%H%M%S")
  164. encore_version = str(importlib.metadata.version("encore-toolkit"))
  165. run_information = {
  166. "analyzer": "ENCORE Parallel Sessions API",
  167. "date": formatted_time,
  168. "ENCORE_version": encore_version,
  169. }
  170. # Define results
  171. results = {
  172. "info": run_information,
  173. "parameters": parameters,
  174. "parameters_used": {},
  175. "results": {},
  176. }
  177. # Process each database as a separate job
  178. jobs = []
  179. for database_name, database_data in data.items():
  180. parameters_set = {}
  181. if database_name in parameters:
  182. parameters_set = parameters[database_name]
  183. elif default_key in parameters:
  184. parameters_set = parameters[default_key]
  185. else:
  186. raise RuntimeError(
  187. f"No default parameters under key '{default_key}' set and it was needed."
  188. )
  189. results["parameters_used"][database_name] = parameters_set
  190. jobs.append(
  191. (
  192. parameters_set.get("analysis"),
  193. database_name,
  194. database_data,
  195. parameters_set.get("data_names"),
  196. parameters_set.get("parameters"),
  197. parameters_set.get("evaluate_similarity"),
  198. parameters_set.get("similarity_elements"),
  199. )
  200. )
  201. print(
  202. f"\n -> After matching dbs and params {len(jobs)} databases will be added.\n"
  203. )
  204. # Parallel execution
  205. with ProcessPoolExecutor(max_workers=max_workers_cant) as executor:
  206. futures = [executor.submit(run_single_session, job) for job in jobs]
  207. for completed, future in enumerate(as_completed(futures), start=1):
  208. try:
  209. database_name, parameters_used, result = future.result()
  210. results["results"][database_name] = result
  211. print(f"[{completed}/{len(futures)}] " f"Finished {database_name}.")
  212. except Exception as exc:
  213. print(f"[{completed}/{len(futures)}] " f"ERROR: {exc}")
  214. print(" - Done with databases.")
  215. return results

sessions.py at commit 627947f, under GPL-3.0 · at the source

Overview

  1. Neurobiology Institute, UNAM, Juriquilla, Querétaro 76230, México
Journal: STAR protocols, volume 7, issue 2, article 104443
Dates: published online 23 March 2026; in print June 2026
Type: Research article · Language: English
License: CC BY-NC-ND
Identifiers: DOI 10.1016/j.xpro.2026.104443 · PMID 41880329 · PMCID PMC13045672 · OpenAlex W7140137935
Open access: gold, a free copy (OpenAlex)
Status: code verified (how the code is found and verified)
Methods: Smoothing, state filtering, decompositions, Machine learning, Connectivity
Keywords: Behavior, Computer sciences, Neuroscience
MeSH: Algorithms*, Neurons*, User-Computer Interface*, Animals, Microscopy, Fluorescence, Multiphoton, Software (* major topic)
Topic: Cell Image Analysis Techniques (Biophysics, Biochemistry, Genetics and Molecular Biology), according to OpenAlex
Funding: The Kavli Foundation; National Autonomous University of Mexico Directorate General of Academic Staff Affairs
Citations: not cited yet (Europe PMC); 7 references in the paper

Abstract

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

Repositories

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

rivelco/ENCORE

License: GPL-3.0
State: the link answers, verified on 30 September 2026
Evidence: files inventoried
Commit: 627947f87797d78946f43655fa54e16cf51d5e06, 26 August 2026
Languages: MATLAB (303), Python (27)
Size: 430 files, 330 scripts
Software Heritage: not archived
Found in: “Data and code availability”
Holds: README, license file, environment (pyproject.toml, docs/requirements.txt), tests, continuous integration, documentation
Not found: CITATION.cff
Tools: Statistics and Machine Learning Toolbox (46 files), NumPy (14 files), Image Processing Toolbox (9 files), Signal Processing Toolbox (5 files), SciPy (5 files), h5py (4 files), Matplotlib (4 files), Parallel Computing Toolbox (3 files), Curve Fitting Toolbox (2 files), scikit-learn (2 files), shadedErrorBar (2 files), export_fig (1 file), Optimization Toolbox (1 file)
Availability: 1 check, the latest on 30 September 2026: the link answers
  • 30 September 2026: the link answers
332 files

hanshuting/SVDEnsemble

License: MIT
State: the link answers, verified on 30 September 2026
Evidence: files inventoried
Commit: a0f979463daf77b05fc4927f08bbe8ad5113839f, 11 October 2018
Languages: MATLAB (7)
Size: 10 files, 7 scripts
Software Heritage: not archived
Found in: the resources table
Holds: README, license file
Not found: CITATION.cff, environment file, tests, continuous integration, documentation
Availability: 1 check, the latest on 30 September 2026: the link answers
  • 30 September 2026: the link answers
9 files

tortlab/Cell-Assembly-Detection

License: none: the authors keep all their rights
State: the link answers, verified on 4 November 2026
Evidence: files inventoried
Commit: 1cfd65412d6ba96ef4973fa575209ae35e2c0ef9, 26 March 2020
Languages: MATLAB (8)
Size: 10 files, 8 scripts
Software Heritage: not archived
Found in: the resources table
Holds: README
Not found: license file, CITATION.cff, environment file, tests, continuous integration, documentation
Availability: 2 checks, the latest on 4 November 2026: the link answers
  • 4 November 2026: the link answers
  • 30 September 2026: the link answers
9 files

brincolab/NeuralEnsembles

License: none: the authors keep all their rights
State: the link answers, verified on 30 September 2026
Evidence: files inventoried
Commit: bea032fd5c61eb54ff7479c11ffbdf09348f126f, 20 June 2024
Languages: MATLAB (61), Python (1)
Size: 65 files, 62 scripts
Software Heritage: not archived
Found in: the resources table
Holds: README
Not found: license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: Statistics and Machine Learning Toolbox (22 files), Curve Fitting Toolbox (2 files), Parallel Computing Toolbox (2 files), shadedErrorBar (2 files), h5py (1 file), Matplotlib (1 file), NumPy (1 file), pandas (1 file), Plotly (1 file), scikit-learn (1 file), SciPy (1 file)
Availability: 1 check, the latest on 30 September 2026: the link answers
  • 30 September 2026: the link answers
63 files

GoodhillLab/neural-assembly-detection

License: GPL-3.0
State: the link answers, verified on 30 September 2026
Evidence: files inventoried
Commit: f5415317aec2cf141e8f48ef816cddac0547cac3, 30 April 2019
Languages: MATLAB (109), Python (4), Shell (1)
Size: 142 files, 114 scripts
Software Heritage: not archived
Found in: the resources table
Holds: README, license file, 1 notebook
Not found: CITATION.cff, environment file, tests, continuous integration, documentation
Availability: 1 check, the latest on 30 September 2026: the link answers
  • 30 September 2026: the link answers
116 files

PerezOrtegaJ/Xsembles2P

License: GPL-3.0
State: the link answers, verified on 29 October 2026
Evidence: files inventoried
Commit: 274cdb9bce3c6eec0db909c9a40dd6a2f30cdc01, 24 April 2024
Languages: MATLAB (112)
Size: 122 files, 112 scripts
Software Heritage: not archived
Found in: the resources table
Holds: README, license file, CITATION.cff, tests
Not found: environment file, continuous integration, documentation
Availability: 2 checks, the latest on 29 October 2026: the link answers
  • 29 October 2026: the link answers
  • 27 September 2026: the link answers
114 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:

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

No dataset and no data link were found in the paper.

Code and data availability statement

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

Read it in the paper: doi.org/10.1016/j.xpro.2026.104443.

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, 2 authors, 3 keywords, 6 MeSH terms, 2 funders, 7 references.

Cite

This paper

Velazquez-Contreras, R., & Carrillo-Reid, L. (2026). Protocol for identifying and comparing neuronal ensembles using different algorithms within a graphical user interface. STAR protocols, 7(2), 104443. https://doi.org/10.1016/j.xpro.2026.104443

BibTeX

@article{velazquezcontreras2026protocol,
author = {Velazquez-Contreras, Ricardo and Carrillo-Reid, Luis},
title = {{Protocol for identifying and comparing neuronal ensembles using different algorithms within a graphical user interface}},
journal = {STAR protocols},
year = {2026},
month = mar,
volume = {7},
number = {2},
pages = {104443},
publisher = {Elsevier},
issn = {2666-1667},
doi = {10.1016/j.xpro.2026.104443},
url = {https://doi.org/10.1016/j.xpro.2026.104443},
pmid = {41880329},
pmcid = {PMC13045672}
}

RIS

TY - JOUR
AU - Velazquez-Contreras, Ricardo
AU - Carrillo-Reid, Luis
TI - Protocol for identifying and comparing neuronal ensembles using different algorithms within a graphical user interface
T2 - STAR protocols
J2 - STAR Protoc
PY - 2026
DA - 2026/03/23
VL - 7
IS - 2
SP - 104443
SN - 2666-1667
PB - Elsevier
DO - 10.1016/j.xpro.2026.104443
UR - https://doi.org/10.1016/j.xpro.2026.104443
LA - en
ER -

CSL-JSON

{
"id": "10.1016/j.xpro.2026.104443",
"type": "article-journal",
"title": "Protocol for identifying and comparing neuronal ensembles using different algorithms within a graphical user interface",
"container-title": "STAR protocols",
"author": [
{
"family": "Velazquez-Contreras",
"given": "Ricardo"
},
{
"family": "Carrillo-Reid",
"given": "Luis"
}
],
"container-title-short": "STAR Protoc",
"volume": "7",
"issue": "2",
"page": "104443",
"DOI": "10.1016/j.xpro.2026.104443",
"PMID": "41880329",
"PMCID": "PMC13045672",
"ISSN": "2666-1667",
"publisher": "Elsevier",
"URL": "https://doi.org/10.1016/j.xpro.2026.104443",
"language": "en",
"issued": {
"date-parts": [
[
2026,
3,
23
]
]
}
}

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-025-66562-6 [code]
Spatiotemporal patterns differentiate hippocampal sharp-wave ripples from interictal epileptiform discharges in mice and humans.
Journal: Nature communications
In common: export_fig, Curve Fitting Toolbox, Optimization Toolbox, 11 other tools
[2] doi:10.1016/j.celrep.2024.113807 [code]
Working memory features are embedded in hippocampal place fields.
Journal: Cell reports
In common: export_fig, shadedErrorBar, Curve Fitting Toolbox, 9 other tools, 1 reference
[3] doi:10.1038/s41593-026-02357-2 [code]
Experience reorganizes content-specific memory traces in macaques.
Journal: Nature neuroscience
In common: export_fig, Curve Fitting Toolbox, Optimization Toolbox, 9 other tools, 1 reference
[4] doi:10.1016/j.celrep.2024.114519 [code]
Circuit dynamics of superficial and deep CA1 pyramidal cells and inhibitory cells in freely moving macaques.
Journal: Cell reports
In common: export_fig, Curve Fitting Toolbox, Optimization Toolbox, 9 other tools, 1 reference
[5] doi:10.1038/s41467-024-49226-9 [code]
Months-long tracking of neuronal ensembles spanning multiple brain areas with Ultra-Flexible Tentacle Electrodes.
Journal: Nature communications
In common: export_fig, Curve Fitting Toolbox, Optimization Toolbox, 9 other tools, 1 reference
[6] doi:10.1038/s41586-026-10631-3 [code]
A prognostic human brain network for diffuse midline glioma.
Journal: Nature
In common: export_fig, Curve Fitting Toolbox, Optimization Toolbox, 10 other tools
[7] doi:10.1038/s41586-025-10059-1 [code]
Parkinson's disease as a somato-cognitive action network disorder.
Journal: Nature
In common: export_fig, Curve Fitting Toolbox, Optimization Toolbox, 10 other tools
[8] doi:10.7554/elife.97184 [code]
Cortical beta oscillations map to shared brain networks modulated by dopamine.
Journal: eLife
In common: export_fig, Curve Fitting Toolbox, Optimization Toolbox, 10 other tools
[9] doi:10.1002/hbm.70602 [code]
Neuroimaging Correlates of Post-Stroke Pain After Ischemic Stroke: Secondary Analysis of the INSPiRE-TMS Trial.
Journal: Human brain mapping
In common: export_fig, Curve Fitting Toolbox, Optimization Toolbox, 9 other tools
[10] doi:10.1111/ene.70678 [code]
Who Falls After a Stroke? Evidence From a Prospective Stroke Cohort.
Journal: European journal of neurology
In common: export_fig, Curve Fitting Toolbox, Optimization Toolbox, 9 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.

Add the badge to the code's README

OSCR: the badge of this paper

If you are an author or a maintainer of this paper's code, you can add this badge. It says what OSCR knows of the paper (its code, its validated tracing map) and links the code to this page. Paste one of these snippets under the README's title. Keep the two marks around it, so that the badge can be replaced in place and is never added twice. OSCR changes nothing in your repository.

Markdown
<!-- oscr-badge:start -->
[![OSCR](https://openscicode.org/badge/doi/10.1016/j.xpro.2026.104443.svg)](https://openscicode.org/badge/doi/10.1016/j.xpro.2026.104443)
<!-- oscr-badge:end -->
reStructuredText
.. oscr-badge:start

.. image:: https://openscicode.org/badge/doi/10.1016/j.xpro.2026.104443.svg
   :target: https://openscicode.org/badge/doi/10.1016/j.xpro.2026.104443
   :alt: OSCR

.. oscr-badge:end
HTML
<!-- oscr-badge:start -->
<a href="https://openscicode.org/badge/doi/10.1016/j.xpro.2026.104443"><img src="https://openscicode.org/badge/doi/10.1016/j.xpro.2026.104443.svg" alt="OSCR"></a>
<!-- oscr-badge:end -->

On GitHub, open the README, choose Edit (the pencil), paste the snippet under the title, then "Commit changes".

If you choose to, you can have the badge kept up to date for you, with oscr badge --write from the command line or with the GitHub Action in your repository's workflows. Every other form and option (a card, AsciiDoc, LaTeX, shields.io) is on the badge 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: code errors and mismatches between the code and the paper about this paper and its code, from readers and its authors, beside the paper and its tracing map.

Report a mismatch between the code and the paper · Report a code error (signed in)

Reproductions: reports from readers who ran the authors' code and did not get the paper's result, what they ran, with which environment, commit and data.

Report a reproduction failure (signed in)

Versions of its code: the releases of its code tied to a version of this paper (the preprint, the accepted manuscript, the version of record…), each with the tracing map versioned with it.

Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.