OSCR

Brain structural and functional connectivity converge prenatally but diverge after birth.

Code ↔ Paper

4 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 4 matches
  1. [1] § Materials and methods › Non-negative matrix factorization ↔ run_opnmf_stability_analysis.m, lines 1–27 · score 0.85 · negative Matrix Factorization, row represented, Silhouette Coefficient, Adjusted Rand, quantifies, bootstrap
  2. [2] § Materials and methods › Association with cognitive outcomes at 18 months ↔ run_behavioral_association_analysis.m, lines 20–81 · score 0.81 · behavior associations, max statistic, scan age, cognition, language, motor
  3. [3] § Results › SF coupling at birth is associated with later developmental outcomes ↔ run_behavioral_association_analysis.m, lines 20–81 · score 0.79 · expressive language, assessment scores, maternal postnatal, max statistic, motor, cognitive
  4. [4] § Materials and methods › Non-negative matrix factorization ↔ run_opnmf_stability_analysis.m, lines 73–98 · score 0.50 · NMF components, Silhouette Coefficient

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

MATLAB · 250 lines · 8 KB · CC-BY-4.0 · 2 matches

  1. function results = run_opnmf_stability_analysis(cfg)
  2. % RUN_OPNMF_STABILITY_ANALYSIS
  3. % Evaluate model order and parcel-level clustering stability for orthogonal
  4. % projective non-negative matrix factorization (opNMF).
  5. %
  6. % This script was prepared for public code sharing. It uses generic input and
  7. % output paths and does not include private file paths or project-specific
  8. % identifiers.
  9. %
  10. % Expected input:
  11. % A numeric matrix with rows representing subjects/scans and columns
  12. % representing brain regions/parcels. Values should be parcel-wise
  13. % structure-function coupling (SFC) estimates or another non-negative
  14. % feature matrix after preprocessing.
  15. %
  16. % Main outputs:
  17. % 1. Mean silhouette coefficient for each candidate factor number k.
  18. % 2. Bootstrap stability quantified by the adjusted Rand index (ARI).
  19. % 3. Region-wise cluster assignments for each candidate k.
  20. %
  21. % Dependencies:
  22. % - MATLAB Statistics and Machine Learning Toolbox, for silhouette().
  23. % - opnmf_mem.m, for orthogonal projective NMF.
  24. %
  25. % Author: <replace with author name>
  26. % License: <replace with selected license, e.g., MIT>
  27. % Repository/DOI: <replace after Zenodo archiving>
  28. %% 1. Configure paths and analysis parameters
  29. if nargin < 1 || isempty(cfg)
  30. cfg = default_config();
  31. end
  32. rng(cfg.random_seed, 'twister');
  33. if ~exist(cfg.output_dir, 'dir')
  34. mkdir(cfg.output_dir);
  35. end
  36. input_file = fullfile(cfg.input_dir, cfg.input_filename);
  37. assert(exist(input_file, 'file') == 2, 'Input file not found: %s', input_file);
  38. %% 2. Load parcel-wise SFC matrix
  39. % The input matrix should have dimensions: subjects/scans x regions.
  40. sfc_matrix = readmatrix(input_file, 'TreatAsMissing', cfg.missing_values);
  41. [n_subjects, n_regions] = size(sfc_matrix);
  42. assert(n_subjects > 1 && n_regions > 1, ...
  43. 'Input matrix must contain more than one subject/scan and more than one region.');
  44. if any(~isfinite(sfc_matrix(:)))
  45. error(['The input matrix contains NaN or Inf values. ', ...
  46. 'Please remove or impute missing values before running opNMF.']);
  47. end
  48. %% 3. Shift values to satisfy the non-negativity requirement of NMF
  49. % NMF requires non-negative input. For correlation-like SFC values, adding a
  50. % constant shift can be used when values are bounded within a known range.
  51. % Set cfg.nonnegative_shift = 0 if the input matrix is already non-negative.
  52. analysis_matrix = sfc_matrix + cfg.nonnegative_shift;
  53. if any(analysis_matrix(:) < 0)
  54. error(['The analysis matrix still contains negative values after applying ', ...
  55. 'cfg.nonnegative_shift. Increase the shift or use another ', ...
  56. 'non-negative transformation before NMF.']);
  57. end
  58. %% 4. Transpose matrix for region-wise opNMF clustering
  59. % opNMF is applied to a regions x subjects/scans matrix so that each row is a
  60. % brain region and each column is an observation.
  61. mat = analysis_matrix';
  62. %% 5. Run opNMF across candidate model orders
  63. k_values = cfg.k_range(:)';
  64. n_k = numel(k_values);
  65. classification = zeros(n_k, n_regions);
  66. silhouette_mean = zeros(n_k, 1);
  67. reconstruction_error = zeros(n_k, 1);
  68. for k_idx = 1:n_k
  69. k = k_values(k_idx);
  70. % W contains region x factor weights; H contains factor x observation
  71. % weights. The maximum loading of each row of W is used to assign each
  72. % region to one opNMF component.
  73. [W, H] = opnmf_mem(mat, k, [], cfg.n_opnmf_runs);
  74. [~, labels] = max(W, [], 2);
  75. classification(k_idx, :) = labels';
  76. % Calculate the mean silhouette coefficient across regions.
  77. s = silhouette(mat, labels);
  78. silhouette_mean(k_idx) = mean(s(~isnan(s)));
  79. % Optional diagnostic: relative Frobenius reconstruction error.
  80. reconstruction_error(k_idx) = norm(mat - W * H, 'fro') / norm(mat, 'fro');
  81. end
  82. %% 6. Assess bootstrap stability of region-wise classification
  83. n_bootstraps = cfg.n_bootstraps;
  84. bootstrap_sample_size = round(n_subjects * cfg.bootstrap_fraction);
  85. bootstrap_sample_size = max(2, min(bootstrap_sample_size, n_subjects));
  86. classification_bootstrap = zeros(n_regions, n_bootstraps, n_k);
  87. bootstrap_subject_indices = cell(n_bootstraps, n_k);
  88. for k_idx = 1:n_k
  89. k = k_values(k_idx);
  90. for b = 1:n_bootstraps
  91. subject_idx = randperm(n_subjects, bootstrap_sample_size);
  92. bootstrap_subject_indices{b, k_idx} = subject_idx;
  93. [W_boot, ~] = opnmf_mem(mat(:, subject_idx), k, [], cfg.n_opnmf_runs);
  94. [~, labels_boot] = max(W_boot, [], 2);
  95. classification_bootstrap(:, b, k_idx) = labels_boot;
  96. end
  97. end
  98. %% 7. Calculate adjusted Rand index between full-sample and bootstrap labels
  99. ari = zeros(n_bootstraps, n_k);
  100. for k_idx = 1:n_k
  101. labels_full = classification(k_idx, :)';
  102. for b = 1:n_bootstraps
  103. labels_boot = classification_bootstrap(:, b, k_idx);
  104. ari(b, k_idx) = adjusted_rand_index(labels_boot, labels_full);
  105. end
  106. end
  107. mean_ari = mean(ari, 1);
  108. std_ari = std(ari, 0, 1);
  109. %% 8. Save results
  110. summary_table = table(k_values', silhouette_mean, reconstruction_error, ...
  111. mean_ari', std_ari', ...
  112. 'VariableNames', {'k', 'mean_silhouette', 'relative_reconstruction_error', ...
  113. 'mean_adjusted_rand_index', 'std_adjusted_rand_index'});
  114. writetable(summary_table, fullfile(cfg.output_dir, 'opnmf_model_order_summary.csv'));
  115. results = struct();
  116. results.config = cfg;
  117. results.n_subjects = n_subjects;
  118. results.n_regions = n_regions;
  119. results.k_values = k_values;
  120. results.classification = classification;
  121. results.classification_bootstrap = classification_bootstrap;
  122. results.bootstrap_subject_indices = bootstrap_subject_indices;
  123. results.silhouette_mean = silhouette_mean;
  124. results.reconstruction_error = reconstruction_error;
  125. results.ari = ari;
  126. results.mean_ari = mean_ari;
  127. results.std_ari = std_ari;
  128. results.summary_table = summary_table;
  129. save(fullfile(cfg.output_dir, 'opnmf_stability_results.mat'), 'results');
  130. end
  131. function cfg = default_config()
  132. % DEFAULT_CONFIG
  133. % Default settings for the opNMF model-order and stability analysis.
  134. project_dir = pwd;
  135. cfg = struct();
  136. cfg.input_dir = fullfile(project_dir, 'data');
  137. cfg.output_dir = fullfile(project_dir, 'results', 'opnmf_stability');
  138. % Use a generic file name for public release. Replace this with the actual
  139. % input file name locally, but avoid exposing private project paths or
  140. % sensitive dataset identifiers in public code if not necessary.
  141. cfg.input_filename = 'sfc_matrix_subjects_by_regions.txt';
  142. % Candidate numbers of opNMF components.
  143. cfg.k_range = 2:10;
  144. % Number of repeated initializations or internal opNMF runs, depending on the
  145. % implementation of opnmf_mem.m.
  146. cfg.n_opnmf_runs = 4;
  147. % Bootstrap settings.
  148. cfg.n_bootstraps = 100;
  149. cfg.bootstrap_fraction = 0.50;
  150. % Additive shift to ensure non-negative input. For SFC values bounded between
  151. % -1 and 1, a shift of 1 maps them to [0, 2].
  152. cfg.nonnegative_shift = 1;
  153. % Reproducibility.
  154. cfg.random_seed = 1;
  155. % Missing value strings recognized by readmatrix(). Numeric NaNs are checked
  156. % after loading and should be handled before NMF.
  157. cfg.missing_values = {'NaN', 'NA'};
  158. end
  159. function ari = adjusted_rand_index(labels_a, labels_b)
  160. % ADJUSTED_RAND_INDEX
  161. % Compute the adjusted Rand index between two partitions.
  162. %
  163. % This local implementation avoids requiring an external rand_index()
  164. % function and makes the script easier to reuse.
  165. labels_a = labels_a(:);
  166. labels_b = labels_b(:);
  167. valid_idx = isfinite(labels_a) & isfinite(labels_b);
  168. labels_a = labels_a(valid_idx);
  169. labels_b = labels_b(valid_idx);
  170. n = numel(labels_a);
  171. if n < 2
  172. ari = NaN;
  173. return;
  174. end
  175. [~, ~, labels_a] = unique(labels_a);
  176. [~, ~, labels_b] = unique(labels_b);
  177. contingency = accumarray([labels_a, labels_b], 1);
  178. row_sums = sum(contingency, 2);
  179. col_sums = sum(contingency, 1);
  180. sum_comb_cells = sum(comb2(contingency(:)));
  181. sum_comb_rows = sum(comb2(row_sums));
  182. sum_comb_cols = sum(comb2(col_sums));
  183. total_comb = comb2(n);
  184. expected_index = (sum_comb_rows * sum_comb_cols) / total_comb;
  185. max_index = 0.5 * (sum_comb_rows + sum_comb_cols);
  186. denominator = max_index - expected_index;
  187. if abs(denominator) < eps
  188. ari = 1;
  189. else
  190. ari = (sum_comb_cells - expected_index) / denominator;
  191. end
  192. end
  193. function y = comb2(x)
  194. % Number of unordered pairs that can be selected from x elements.
  195. y = x .* (x - 1) ./ 2;
  196. end

run_opnmf_stability_analysis.m, under CC-BY-4.0 · at the source

Overview

Authors: Ruoke Zhao1, Mingyang Li1, Yuqi Zhang1, Ruike Chen1, Chenglin Ning1, Zhiyong Zhao2, Zhihan Yan3, Meihao Wang3,4, Dan Wu1,2,3
ORCID iDs: Ruoke Zhao, Dan Wu
  1. College of Biomedical Engineering & Instrument Science, Zhejiang University, Hangzhou, China
  2. Children’s Hospital, Zhejiang University School of Medicine, National Clinical Research Center for Children and Adolescents’ Health and Diseases, Hangzhou, China
  3. Department of Radiology, The Second Affiliated Hospital and Yuying Children’s Hospital of Wenzhou Medical University, Wenzhou, China
  4. Key Laboratory of Intelligent Medical Imaging of Wenzhou, The First Affiliated Hospital of Wenzhou Medical University, Wenzhou, China
Journal: PLoS biology, volume 24, issue 9, article e3003927
Dates: received 30 October 2025; accepted 15 July 2026; published online 9 September 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1371/journal.pbio.3003927 · PMID 42715242 · PMCID PMC13557396 · OpenAlex W7168019031
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: structural MRI / diffusion (modality), fMRI (modality), human (organism), developmental (subfield)
Methods: Statistics, Smoothing, state filtering, decompositions, Preprocessing, Connectivity, Graphs, Machine learning, fMRI & imaging
MeSH: Brain*, Child, Preschool, Connectome, Female, Humans, Infant, Infant, Newborn, Magnetic Resonance Imaging, Male, Nerve Net, Neurodevelopment (* major topic)
Journal subjects: Biology and Life Sciences, Developmental Biology, Neonates, Neuroscience, Cognitive Science, Cognitive Psychology, Language, Psychology, Social Sciences, Brain Mapping, Brain Morphometry, Diffusion Magnetic Resonance Imaging, Medicine and Health Sciences, Diagnostic Medicine, Diagnostic Radiology, Magnetic Resonance Imaging, Research and Analysis Methods, Imaging Techniques, Radiology and Imaging, Neuroimaging, Computer and Information Sciences, Software Engineering, Preprocessing, Engineering and Technology, Connectomics, Anatomy, Nervous System, Neuroanatomy, Neural Networks, Functional Magnetic Resonance Imaging, Physical Sciences, Mathematics, Discrete Mathematics, Combinatorics, Permutation
Topic: Functional Brain Connectivity Studies (Cognitive Neuroscience, Neuroscience), according to OpenAlex
Citations: not cited yet (Europe PMC); 105 references in the paper

Abstract

Brain anatomical architecture supports its functional activity and complex cognitive processes. However, how the structure–function (SF) relationship establishes and develops during early life, as well as its underlying mechanisms, remain largely unclear. To address these questions, we leveraged multimodal MRI data from two large-scale public databases, the developing Human Connectome Project (dHCP) and the Baby Connectome Project (BCP), to characterize the spatiotemporal dynamics of SF coupling from the perinatal period to toddlerhood. Our results revealed that SF coupling at birth exhibited a spatial variation along the sensorimotor-association cortical axis. During the perinatal period (26–44 postmenstrual weeks), SF coupling strengthened drastically and followed three distinct developmental trajectories across the cortex, with sensorimotor and visual areas showing the fastest growth and the earliest plateau. After birth, SF coupling shifted toward a weakening pattern across the cortex during infancy and toddlerhood (1–28 months). These developmental changes of SF coupling were more strongly associated with the maturation of functional connectivity, which first converged toward the local structural architecture prenatally and then diverged postnatally through the expansion of global inter-modular pathways. Furthermore, SF coupling at birth, the developmental transition point, exhibited a significant association with individual differences in cognition and language outcomes at 18 months of age. Collectively, these findings offer valuable insights into the organizational principles underlying structural and functional network development during early life as well as the complex evolving relationship between them.

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

Zenodo 21316924

License: CC-BY-4.0
State: the link answers, verified on 26 September 2026
Evidence: files inventoried
Languages: MATLAB (3), R (1)
Size: 4 files, 4 scripts
Software Heritage: not checked
Found in: “Data Availability”
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Availability: 1 check, the latest on 26 September 2026: the link answers (HTTP 200)
  • 26 September 2026: the link answers (HTTP 200)
4 files

brainlife/BCT

License: MIT
State: the link answers, verified on 26 September 2026
Evidence: files inventoried
Commit: b7f59ebcf0b4f4979ab3914e30c61eaf345b11d5, 16 December 2020
Languages: MATLAB (134)
Size: 148 files, 134 scripts
Software Heritage: not archived
Found in: the text, “Network metrics”
Holds: README, license file
Not found: CITATION.cff, environment file, tests, continuous integration, documentation
Availability: 1 check, the latest on 26 September 2026: the link answers
  • 26 September 2026: the link answers
136 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;
  • 138 scripts, each with its path and the digest of its content;
  • 4 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 raw data used in this study were obtained from publicly available databases. The dHCP dataset can be accessed at https://biomedia.github.io/dHCP-release-notes/, and the HCP dataset at https://db.humanconnectome.org/. The BCP dataset is available via the NIH Data Archive (NDA, Study ID: 2848). The numerical data underlying the figure panels are provided in S1 Data. Custom code used for data analysis is available on Zenodo at: https://doi.org/10.5281/zenodo.21316924.

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, issue, pages, dates, 9 authors, 11 MeSH terms, 2 funders, 103 references.

Cite

This paper

Zhao, R., Li, M., Zhang, Y., Chen, R., Ning, C., Zhao, Z., Yan, Z., Wang, M., & Wu, D. (2026). Brain structural and functional connectivity converge prenatally but diverge after birth. PLoS biology, 24(9), e3003927. https://doi.org/10.1371/journal.pbio.3003927

BibTeX

@article{zhao2026brain,
author = {Zhao, Ruoke and Li, Mingyang and Zhang, Yuqi and Chen, Ruike and Ning, Chenglin and Zhao, Zhiyong and Yan, Zhihan and Wang, Meihao and Wu, Dan},
title = {{Brain structural and functional connectivity converge prenatally but diverge after birth}},
journal = {PLoS biology},
year = {2026},
month = sep,
volume = {24},
number = {9},
pages = {e3003927},
publisher = {PLOS},
issn = {1544-9173},
doi = {10.1371/journal.pbio.3003927},
url = {https://doi.org/10.1371/journal.pbio.3003927},
pmid = {42715242},
pmcid = {PMC13557396}
}

RIS

TY - JOUR
AU - Zhao, Ruoke
AU - Li, Mingyang
AU - Zhang, Yuqi
AU - Chen, Ruike
AU - Ning, Chenglin
AU - Zhao, Zhiyong
AU - Yan, Zhihan
AU - Wang, Meihao
AU - Wu, Dan
TI - Brain structural and functional connectivity converge prenatally but diverge after birth
T2 - PLoS biology
J2 - PLoS Biol
PY - 2026
DA - 2026/09/09
VL - 24
IS - 9
SP - e3003927
SN - 1544-9173
PB - PLOS
DO - 10.1371/journal.pbio.3003927
UR - https://doi.org/10.1371/journal.pbio.3003927
LA - en
ER -

CSL-JSON

{
"id": "10.1371/journal.pbio.3003927",
"type": "article-journal",
"title": "Brain structural and functional connectivity converge prenatally but diverge after birth",
"container-title": "PLoS biology",
"author": [
{
"family": "Zhao",
"given": "Ruoke"
},
{
"family": "Li",
"given": "Mingyang"
},
{
"family": "Zhang",
"given": "Yuqi"
},
{
"family": "Chen",
"given": "Ruike"
},
{
"family": "Ning",
"given": "Chenglin"
},
{
"family": "Zhao",
"given": "Zhiyong"
},
{
"family": "Yan",
"given": "Zhihan"
},
{
"family": "Wang",
"given": "Meihao"
},
{
"family": "Wu",
"given": "Dan"
}
],
"container-title-short": "PLoS Biol",
"volume": "24",
"issue": "9",
"page": "e3003927",
"DOI": "10.1371/journal.pbio.3003927",
"PMID": "42715242",
"PMCID": "PMC13557396",
"ISSN": "1544-9173",
"publisher": "PLOS",
"URL": "https://doi.org/10.1371/journal.pbio.3003927",
"language": "en",
"issued": {
"date-parts": [
[
2026,
9,
9
]
]
}
}

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/s42003-025-09444-3 [code]
Decoupling of neurophysiological activity from structure mirrors global microarchitectural and neuromodulatory trends.
Journal: Communications biology
In common: Brain Connectivity Toolbox, Statistics and Machine Learning Toolbox, 15 references
[2] doi:10.7554/elife.103097 [code]
Canonical neurodevelopmental trajectories of structural and functional manifolds.
Journal: eLife
In common: mgcv, Brain Connectivity Toolbox, Statistics and Machine Learning Toolbox, developmental, structural MRI / diffusion, 12 references
[3] doi:10.1038/s43856-026-01707-2 [code]
Decreased amyloid-related structure-function coupling in preclinical Alzheimer's disease.
Journal: Communications medicine
In common: Statistics and Machine Learning Toolbox, 15 references
[4] doi:10.1038/s41467-026-71719-y [code]
Brain functional-structural gradient coupling reflects development, behavior and genetic influences.
Journal: Nature communications
In common: GIfTI library for MATLAB, Statistics and Machine Learning Toolbox, developmental, 13 references
[5] doi:10.1038/s41467-026-71270-w [code]
Spatiotemporal dynamics of the human cortical functional hierarchy across the lifespan.
Journal: Nature communications
In common: GIfTI library for MATLAB, Statistics and Machine Learning Toolbox, developmental, fMRI, 11 references
[6] doi:10.1038/s41467-026-76011-7 [code]
Human cortex organizes dynamic co-fluctuations along the sensorimotor-association axis.
Journal: Nature communications
In common: mgcv, Brain Connectivity Toolbox, GIfTI library for MATLAB, 1 other tool, 9 references
[7] doi:10.1038/s41398-026-04130-2 [code]
White matter structure-function coupling in neonatal brain and its association with Autism-related traits in early childhood.
Journal: Translational psychiatry
In common: developmental, structural MRI / diffusion, 10 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: mgcv, Brain Connectivity Toolbox, GIfTI library for MATLAB, 2 other tools, structural MRI / diffusion, 4 references
[9] doi:10.1002/hbm.70533 [code]
Trait-Relevant Tasks Improve Personality Prediction From Structural-Functional Brain Network Coupling.
Journal: Human brain mapping
In common: Brain Connectivity Toolbox, Statistics and Machine Learning Toolbox, structural MRI / diffusion, 9 references
[10] doi:10.1017/s0033291726104838 [code]
Variations of structural-functional coupling in post-traumatic stress disorder are associated with underlying molecular and transcriptional features.
Journal: Psychological medicine
In common: structural MRI / diffusion, 10 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.