Code and Toy Data for "Ageing conserves and redistributes local geometry in the human structural connectome: an Ollivier-Ricci curvature analysis across the adult lifespan"
收藏资源简介:
Zenodo record description Analysis code and synthetic test data Ageing conserves and redistributes local geometry in the human structural connectome: an Ollivier-Ricci curvature analysis across the adult lifespan This record accompanies the paper above. It contains the complete analysis code together with a cohort of 400 synthetic structural connectomes, so that the pipeline can be run end to end by anyone who is curious, without waiting on a data access request. Thank you for looking. If you are here to check a method, reuse a piece of the code, or simply see whether the thing runs, everything you need is in the archive and the entry point is a single script. What the study does The analysis treats each structural connectome as a discrete metric space and measures Ollivier-Ricci curvature on its edges, asking how the local geometry of the connectome is organised across the adult lifespan. Connectomes are SIFT2-weighted streamline counts in the Schaefer-200 parcellation; edges are given the length convention d = 1/w, curvature is computed at the standard idleness parameter, and matrices are harmonised to a common density inside a group consistency mask before any comparison. The full specification, including every parameter and each control analysis, is in the Methods section of the paper and in the code deposited here. The source cohort is Cam-CAN, a population-based sample spanning roughly eighteen to ninety years of age. What is in this record code/ analysis pipeline, staged and runnable in order sc_matrices/ 400 synthetic connectomes sub-SYNXXXXXXX/connectivity/schaefer200/connectivity_sift2.npy participants.csv synthetic identifiers, ages and sexes load_synthetic.py minimal reader provenance.json generation parameters and the verification record MANIFEST.sha256 checksums README.md full documentation, in English and Portuguese Each matrix is 200 x 200, float32, symmetric, with a zero diagonal, in the same layout the pipeline expects. Point the code at sc_matrices/ and it will run. import numpy as np, pandas as pd table = pd.read_csv("participants.csv") sub = table.loc[0, "sub_id"] W = np.load(f"sc_matrices/{sub}/connectivity/schaefer200/connectivity_sift2.npy") print(W.shape, W.dtype) # (200, 200) float32 ⚠️ Please read this before using the matrices The connectivity matrices and the ages that accompany them are entirely synthetic. The real matrices were used only to train a generative model, so that the synthetic ones would carry a loose topological and structural resemblance to human structural connectomes. The synthetic matrices do not reproduce the connectivity of any real human being, whether or not that person took part in Cam-CAN. They are provided for one purpose: to let you execute and inspect the methodology of this study. They are not a validation or a replication of it, and any number obtained from them is a property of the generative model rather than a finding about the human brain. THE REAL MATRICES CANNOT BE, AND WILL NOT BE, RELEASED WITHOUT THE EXPRESS AUTHORISATION OF THE CAM-CAN TEAM. Subject identifiers are random alphanumeric codes prefixed SYN, drawn from a namespace that cannot overlap with Cam-CAN identifiers. There is no correspondence of any kind between a synthetic identifier and a real participant. How the synthetic cohort was built, and how faithful it is Each edge was mapped to a normal score through an empirical quantile transform resampled onto a coarse grid of quantile knots, so that no individual observation from the real cohort survives as an emitted value. A conditional generative adversarial network was trained in that space, conditioned on age and sex, using per-node latent positions and a geometric prior derived from atlas centroid distances. Matrices are returned to the SIFT2 scale by the inverse transform, which preserves the edge-wise marginals and the sparsity pattern by construction. We would rather be plainly useful than quietly flattering, so the README publishes the fidelity measurements in full, including the unflattering ones. Edge marginals, the sparsity pattern, the distance decay of connection weight and the normalised Laplacian spectrum are all closely matched. The coupling between network summaries and age comes out weaker than in the real data, and a classifier separates synthetic from real connectomes without much difficulty. Both facts are stated with numbers in the README. The error runs in the safe direction: nothing computed on these matrices can be mistaken for a replication. Before release, every synthetic matrix was compared against every real subject. No synthetic matrix resembles a real person more closely than two real people resemble each other, and there are no exact copies. The check is executed in code and its output is recorded in provenance.json. Access to the real data The Cam-CAN dataset is available to researchers through the Cam-CAN team, whose access conditions govern the underlying data: https://cam-can.mrc-cbu.cam.ac.uk/ Investigators who obtain access can run the deposited pipeline on the real data without modification. Citation, licence and contact If this record is useful to you, please cite the paper and this deposit, and state clearly in any derived work that the connectivity data are synthetic. [full paper citation once available] [author list]. Analysis code and synthetic test data for "Ageing conserves and redistributes local geometry in the human structural connectome". Zenodo, [year]. DOI: [10.5281/zenodo.XXXXXXX] Licence: [CC BY 4.0 for the data; specify the code licence, e.g. MIT or BSD-3-Clause] Questions, corrections and bug reports are genuinely welcome, including the awkward ones: [contact e-mail]. If you run the pipeline and something breaks, we would like to know.



