Decoupling of neurophysiological activity from structure mirrors global microarchitectural and neuromodulatory trends.
The 7 matches
- [1] § Methods › Allen Human Brain Atlas (AHBA) preprocessing ↔ abagen/reporting.py, lines 105–169 · score 0.99 · post mortem brains, valid Entrez ID, expression intensity relative, Regional microarray expression, background noise, Allen Human Brain
- [2] § Methods › Allen Human Brain Atlas (AHBA) preprocessing ↔ abagen/cli/run.py, lines 59–123 · score 0.95 · background noise, Allen Human Brain, Probe selection, Microarray probes, standard deviations, tissue samples
- [3] § Methods › Structure–function coupling ↔ decoupling.m, lines 5–18 · score 0.66 · connectivity profile, OLS, ordinary, functional connectivity, Laplacian, eigenmodes
- [4] § Methods › Partial Least Squares (PLS) - correlation analyses ↔ abagen/correct.py, lines 438–529 · score 0.56 · Euclidean distance, distance dependent, ROIs, zero, parcellated, correlation
- [5] § Methods › Tractography and connectome generation ↔ netneurotools/datasets/fetch_template.py, lines 1449–1558 · score 0.55 · high resolution, tractography, diffusion, geometric, Tree, anatomical
- [6] § Methods › Partial Least Squares (PLS) - correlation analyses ↔ netneurotools/networks/consensus.py, lines 9–98 · score 0.53 · confidence intervals, Reliability, CI, cross, zero, node
- [7] § Methods › Source localization of MEG data and functional connectivity analysis ↔ netneurotools/datasets/fetch_template.py, lines 543–681 · score 0.53 · fsLR, preprocessing, 59 Hz, pipeline, HCP, downloaded
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 · 1,581 lines · 67 KB · BSD-3-Clause · 2 matches
- """Functions for fetching template data."""
- import json
- from sklearn.utils import Bunch
- from .datasets_utils import (
- SURFACE,
- _get_reference_info,
- _check_freesurfer_subjid,
- fetch_file,
- )
- def fetch_fsaverage(
- version="fsaverage", use_local=False, force=False, data_dir=None, verbose=1
- ):
- """
- Download files for fsaverage FreeSurfer template.
- This dataset contains surface files for the fsaverage template including
- original, white matter, pial, inflated, and spherical surfaces for both
- left and right hemispheres.
- If you used this data, please cite 1_, 2_, 3_.
- Parameters
- ----------
- version : str, optional
- One of {'fsaverage', 'fsaverage3', 'fsaverage4', 'fsaverage5',
- 'fsaverage6'}. Default: 'fsaverage'
- use_local : bool, optional
- If True, will attempt to use local FreeSurfer data. Default: False
- Returns
- -------
- filenames : :class:`sklearn.utils.Bunch`
- Dictionary-like object with keys ['orig', 'white', 'smoothwm', 'pial',
- 'inflated', 'sphere'], where corresponding values are Surface
- namedtuples containing filepaths for the left (L) and right (R)
- hemisphere surface files.
- Other Parameters
- ----------------
- force : bool, optional
- If True, will overwrite existing dataset. Default: False
- data_dir : str, optional
- Path to use as data directory. If not specified, will check for
- environmental variable 'NNT_DATA'; if that is not set, will use
- `~/nnt-data` instead. Default: None
- verbose : int, optional
- Modifies verbosity of download, where higher numbers mean more updates.
- Default: 1
- Notes
- -----
- The returned surfaces represent different stages of cortical surface
- reconstruction and transformations:
- - **orig**: Original surface extracted from the brain volume, representing
- the initial estimate of the cortical boundary before topology correction.
- - **white**: White matter surface, representing the boundary between white
- matter and gray matter (inner cortical surface).
- - **smoothwm**: Smoothed white matter surface, created by applying
- smoothing to the white surface for improved visualization and analysis.
- - **pial**: Pial surface, representing the outer boundary of the cortex
- (gray matter/CSF interface). This is commonly used for cortical thickness
- calculations and surface-based registration.
- - **inflated**: Inflated surface, where sulci and gyri are smoothed to
- make visualization of the entire cortical surface easier while preserving
- topology. Useful for visualizing data across the cortex without occlusion
- by folding patterns.
- - **sphere**: Spherical surface, where the cortical surface is mapped to a
- sphere. This is essential for surface-based registration, inter-subject
- alignment, and applying parcellations.
- Each surface can be loaded with neuroimaging tools like nibabel and used
- for surface-based analyses, visualization, or spatial transformations.
- In a typical FreeSurfer installation, these template surfaces can be found
- in the subjects directory under ``$FREESURFER_HOME/subjects/`` (e.g.,
- ``$FREESURFER_HOME/subjects/fsaverage/surf/``). When ``use_local=True``,
- this function will attempt to locate and use these local files instead of
- downloading them.
- Example directory tree:
- ::
- ~/nnt-data/tpl-fsaverage
- ├── fsaverage
- │ ├── LICENSE
- │ └── surf
- │ ├── lh.curv
- │ ├── lh.inflated
- │ ├── lh.inflated_avg
- │ ├── lh.orig
- │ ├── lh.orig_avg
- │ ├── lh.pial
- │ ├── lh.pial_avg
- │ ├── lh.smoothwm
- │ ├── lh.sphere
- │ ├── lh.sphere.reg.avg
- │ ├── lh.white
- │ ├── lh.white_avg
- │ ├── rh.curv
- │ ├── rh.inflated
- │ ├── rh.inflated_avg
- │ ├── rh.orig
- │ ├── rh.orig_avg
- │ ├── rh.pial
- │ ├── rh.pial_avg
- │ ├── rh.smoothwm
- │ ├── rh.sphere
- │ ├── rh.sphere.reg.avg
- │ ├── rh.white
- │ └── rh.white_avg
- ├── fsaverage3
- │ ├── LICENSE
- │ └── surf
- │ ├── lh.curv
- │ ├── lh.inflated
- │ ├── lh.inflated_avg
- │ ├── lh.orig
- │ ├── lh.orig_avg
- │ ├── lh.pial
- │ ├── lh.pial_avg
- │ ├── lh.smoothwm
- │ ├── lh.sphere
- │ ├── lh.sphere.reg.avg
- │ ├── lh.white
- │ ├── lh.white_avg
- │ ├── rh.curv
- │ ├── rh.inflated
- │ ├── rh.inflated_avg
- │ ├── rh.orig
- │ ├── rh.orig_avg
- │ ├── rh.pial
- │ ├── rh.pial_avg
- │ ├── rh.smoothwm
- │ ├── rh.sphere
- │ ├── rh.sphere.reg.avg
- │ ├── rh.white
- │ └── rh.white_avg
- ├── fsaverage4
- │ ├── LICENSE
- │ └── surf
- │ ├── lh.curv
- │ ├── lh.inflated
- │ ├── lh.inflated_avg
- │ ├── lh.orig
- │ ├── lh.orig_avg
- │ ├── lh.pial
- │ ├── lh.pial_avg
- │ ├── lh.smoothwm
- │ ├── lh.sphere
- │ ├── lh.sphere.reg.avg
- │ ├── lh.white
- │ ├── lh.white_avg
- │ ├── rh.curv
- │ ├── rh.inflated
- │ ├── rh.inflated_avg
- │ ├── rh.orig
- │ ├── rh.orig_avg
- │ ├── rh.pial
- │ ├── rh.pial_avg
- │ ├── rh.smoothwm
- │ ├── rh.sphere
- │ ├── rh.sphere.reg.avg
- │ ├── rh.white
- │ └── rh.white_avg
- ├── fsaverage5
- │ ├── LICENSE
- │ └── surf
- │ ├── lh.curv
- │ ├── lh.inflated
- │ ├── lh.inflated_avg
- │ ├── lh.orig
- │ ├── lh.orig_avg
- │ ├── lh.pial
- │ ├── lh.pial_avg
- │ ├── lh.smoothwm
- │ ├── lh.sphere
- │ ├── lh.sphere.reg.avg
- │ ├── lh.white
- │ ├── lh.white_avg
- │ ├── rh.curv
- │ ├── rh.inflated
- │ ├── rh.inflated_avg
- │ ├── rh.orig
- │ ├── rh.orig_avg
- │ ├── rh.pial
- │ ├── rh.pial_avg
- │ ├── rh.smoothwm
- │ ├── rh.sphere
- │ ├── rh.sphere.reg.avg
- │ ├── rh.white
- │ └── rh.white_avg
- └── fsaverage6
- ├── LICENSE
- └── surf
- ├── lh.curv
- ├── lh.inflated
- ├── lh.inflated_avg
- ├── lh.orig
- ├── lh.orig_avg
- ├── lh.pial
- ├── lh.pial_avg
- ├── lh.smoothwm
- ├── lh.sphere
- ├── lh.sphere.reg.avg
- ├── lh.white
- ├── lh.white_avg
- ├── rh.curv
- ├── rh.inflated
- ├── rh.inflated_avg
- ├── rh.orig
- ├── rh.orig_avg
- ├── rh.pial
- ├── rh.pial_avg
- ├── rh.smoothwm
- ├── rh.sphere
- ├── rh.sphere.reg.avg
- ├── rh.white
- └── rh.white_avg
- 10 directories, 125 files
- References
- ----------
- .. [1] Anders M Dale, Bruce Fischl, and Martin I Sereno. Cortical
- surface-based analysis: i. segmentation and surface reconstruction.
- Neuroimage, 9(2):179\u2013194, 1999.
- .. [2] Bruce Fischl, Martin I Sereno, and Anders M Dale. Cortical
- surface-based analysis: ii: inflation, flattening, and a surface-based
- coordinate system. Neuroimage, 9(2):195\u2013207, 1999.
- .. [3] Bruce Fischl, Martin I Sereno, Roger BH Tootell, and Anders M Dale.
- High-resolution intersubject averaging and a coordinate system for the
- cortical surface. Human brain mapping, 8(4):272\u2013284, 1999.
- Examples
- --------
- Load the fsaverage template surfaces:
- >>> surfaces = fetch_fsaverage(version='fsaverage') # doctest: +SKIP
- >>> surfaces.keys() # doctest: +SKIP
- dict_keys(['orig', 'white', 'smoothwm', 'pial', 'inflated', 'sphere'])
- Access the pial surface paths for left and right hemispheres:
- >>> surfaces.pial # doctest: +SKIP
- Surface(L=PosixPath('~/nnt-data/tpl-fsaverage/fsaverage/surf/lh.pial'),
- R=PosixPath('~/nnt-data/tpl-fsaverage/fsaverage/surf/rh.pial'))
- Load the left pial surface with nibabel to examine its structure:
- >>> import nibabel as nib # doctest: +SKIP
- >>> pial_left = nib.freesurfer.read_geometry(surfaces.pial.L) # doctest: +SKIP
- >>> vertices, faces = pial_left # doctest: +SKIP
- >>> print(f"Vertices: {vertices.shape}, Faces: {faces.shape}") # doctest: +SKIP
- Vertices: (163842, 3), Faces: (327680, 3)
- """
- versions = ["fsaverage", "fsaverage3", "fsaverage4", "fsaverage5", "fsaverage6"]
- if version not in versions:
- raise ValueError(
- f"The version of fsaverage requested {version} does not "
- f"exist. Must be one of {versions}"
- )
- dataset_name = "tpl-fsaverage"
- _get_reference_info(dataset_name, verbose=verbose)
- keys = ["orig", "white", "smoothwm", "pial", "inflated", "sphere"]
- if use_local:
- try:
- data_dir = _check_freesurfer_subjid(version)[1]
- data = {
- k: SURFACE(
- data_dir / f"{version}/surf/lh.{k}",
- data_dir / f"{version}/surf/rh.{k}",
- )
- for k in keys
- }
- except FileNotFoundError:
- raise FileNotFoundError(
- f"Local FreeSurfer data for {version} not found. "
- "Please ensure FreeSurfer is installed and properly set up."
- ) from None
- else:
- fetched = fetch_file(
- dataset_name, keys=version, force=force, data_dir=data_dir, verbose=verbose
- )
- data = {
- k: SURFACE(
- fetched / f"surf/lh.{k}",
- fetched / f"surf/rh.{k}",
- )
- for k in keys
- }
- return Bunch(**data)
- def fetch_fsaverage_curated(version="fsaverage", force=False, data_dir=None, verbose=1):
- """
- Download files for fsaverage FreeSurfer template.
- This dataset contains surface geometry files (white, pial, inflated,
- sphere), medial wall labels, and surface shape files (sulcal depth and
- vertex area) in GIFTI format for the fsaverage template at various
- densities.
- If you used this data, please cite 1_, 2_, 3_, 4_.
- Parameters
- ----------
- version : str, optional
- One of {'fsaverage', 'fsaverage4', 'fsaverage5', 'fsaverage6'}.
- Default: 'fsaverage'
- Returns
- -------
- filenames : :class:`sklearn.utils.Bunch`
- Dictionary-like object with keys ['white', 'pial', 'inflated',
- 'sphere', 'medial', 'sulc', 'vaavg'], where corresponding values are
- Surface namedtuples containing filepaths for the left (L) and right
- (R) hemisphere files in GIFTI format.
- Other Parameters
- ----------------
- force : bool, optional
- If True, will overwrite existing dataset. Default: False
- data_dir : str, optional
- Path to use as data directory. If not specified, will check for
- environmental variable 'NNT_DATA'; if that is not set, will use
- `~/nnt-data` instead. Default: None
- verbose : int, optional
- Modifies verbosity of download, where higher numbers mean more updates.
- Default: 1
- Notes
- -----
- This function fetches curated fsaverage surfaces from the neuromaps
- package (see `neuromaps.datasets.fetch_fsaverage <https://netneurolab.github.io/neuromaps/generated/neuromaps.datasets.fetch_fsaverage.html>`_).
- All files are provided in GIFTI format (.gii) rather than FreeSurfer's
- native format.
- The returned files include:
- - **white**: White matter surface geometry (.surf.gii), representing the
- boundary between white matter and gray matter. Corresponds to FreeSurfer
- surfaces 'lh.white' and 'rh.white'.
- - **pial**: Pial surface geometry (.surf.gii), representing the outer
- cortical boundary. Corresponds to FreeSurfer surfaces 'lh.pial' and
- 'rh.pial'.
- - **inflated**: Inflated surface geometry (.surf.gii) for improved
- visualization of sulci and gyri. Corresponds to FreeSurfer surfaces
- 'lh.inflated' and 'rh.inflated'.
- - **sphere**: Spherical surface geometry (.surf.gii) used for surface-based
- registration and applying parcellations. Corresponds to FreeSurfer
- surfaces 'lh.sphere' and 'rh.sphere'.
- - **medial**: Medial wall mask (.label.gii) indicating vertices to exclude
- from analyses (vertices with no cortex). Not a standard FreeSurfer
- output; derived by neuromaps to mark the no-medial-wall vertices.
- - **sulc**: Sulcal depth map (.shape.gii) providing sulcal/gyral patterns
- on the midthickness surface. Corresponds to FreeSurfer 'lh.sulc' and
- 'rh.sulc' values resampled to the midthickness surface.
- - **vaavg**: Vertex area map (.shape.gii) representing the average vertex
- area on the midthickness surface. Not a standard FreeSurfer output;
- computed from mesh triangle areas and averaged per vertex.
- The vertex density varies by version: fsaverage (164k vertices),
- fsaverage6 (41k), fsaverage5 (10k), and fsaverage4 (3k).
- Example directory tree:
- ::
- ~/nnt-data/tpl-fsaverage_curated
- ├── fsaverage
- │ ├── tpl-fsaverage_den-164k_hemi-L_desc-nomedialwall_dparc.label.gii
- │ ├── tpl-fsaverage_den-164k_hemi-L_desc-sulc_midthickness.shape.gii
- │ ├── tpl-fsaverage_den-164k_hemi-L_desc-vaavg_midthickness.shape.gii
- │ ├── tpl-fsaverage_den-164k_hemi-L_inflated.surf.gii
- │ ├── tpl-fsaverage_den-164k_hemi-L_pial.surf.gii
- │ ├── tpl-fsaverage_den-164k_hemi-L_sphere.surf.gii
- │ ├── tpl-fsaverage_den-164k_hemi-L_white.surf.gii
- │ ├── tpl-fsaverage_den-164k_hemi-R_desc-nomedialwall_dparc.label.gii
- │ ├── tpl-fsaverage_den-164k_hemi-R_desc-sulc_midthickness.shape.gii
- │ ├── tpl-fsaverage_den-164k_hemi-R_desc-vaavg_midthickness.shape.gii
- │ ├── tpl-fsaverage_den-164k_hemi-R_inflated.surf.gii
- │ ├── tpl-fsaverage_den-164k_hemi-R_pial.surf.gii
- │ ├── tpl-fsaverage_den-164k_hemi-R_sphere.surf.gii
- │ └── tpl-fsaverage_den-164k_hemi-R_white.surf.gii
- ├── fsaverage4
- │ ├── tpl-fsaverage_den-3k_hemi-L_desc-nomedialwall_dparc.label.gii
- │ ├── tpl-fsaverage_den-3k_hemi-L_desc-sulc_midthickness.shape.gii
- │ ├── tpl-fsaverage_den-3k_hemi-L_desc-vaavg_midthickness.shape.gii
- │ ├── tpl-fsaverage_den-3k_hemi-L_inflated.surf.gii
- │ ├── tpl-fsaverage_den-3k_hemi-L_pial.surf.gii
- │ ├── tpl-fsaverage_den-3k_hemi-L_sphere.surf.gii
- │ ├── tpl-fsaverage_den-3k_hemi-L_white.surf.gii
- │ ├── tpl-fsaverage_den-3k_hemi-R_desc-nomedialwall_dparc.label.gii
- │ ├── tpl-fsaverage_den-3k_hemi-R_desc-sulc_midthickness.shape.gii
- │ ├── tpl-fsaverage_den-3k_hemi-R_desc-vaavg_midthickness.shape.gii
- │ ├── tpl-fsaverage_den-3k_hemi-R_inflated.surf.gii
- │ ├── tpl-fsaverage_den-3k_hemi-R_pial.surf.gii
- │ ├── tpl-fsaverage_den-3k_hemi-R_sphere.surf.gii
- │ └── tpl-fsaverage_den-3k_hemi-R_white.surf.gii
- ├── fsaverage5
- │ ├── tpl-fsaverage_den-10k_hemi-L_desc-nomedialwall_dparc.label.gii
- │ ├── tpl-fsaverage_den-10k_hemi-L_desc-sulc_midthickness.shape.gii
- │ ├── tpl-fsaverage_den-10k_hemi-L_desc-vaavg_midthickness.shape.gii
- │ ├── tpl-fsaverage_den-10k_hemi-L_inflated.surf.gii
- │ ├── tpl-fsaverage_den-10k_hemi-L_pial.surf.gii
- │ ├── tpl-fsaverage_den-10k_hemi-L_sphere.surf.gii
- │ ├── tpl-fsaverage_den-10k_hemi-L_white.surf.gii
- │ ├── tpl-fsaverage_den-10k_hemi-R_desc-nomedialwall_dparc.label.gii
- │ ├── tpl-fsaverage_den-10k_hemi-R_desc-sulc_midthickness.shape.gii
- │ ├── tpl-fsaverage_den-10k_hemi-R_desc-vaavg_midthickness.shape.gii
- │ ├── tpl-fsaverage_den-10k_hemi-R_inflated.surf.gii
- │ ├── tpl-fsaverage_den-10k_hemi-R_pial.surf.gii
- │ ├── tpl-fsaverage_den-10k_hemi-R_sphere.surf.gii
- │ └── tpl-fsaverage_den-10k_hemi-R_white.surf.gii
- └── fsaverage6
- ├── tpl-fsaverage_den-41k_hemi-L_desc-nomedialwall_dparc.label.gii
- ├── tpl-fsaverage_den-41k_hemi-L_desc-sulc_midthickness.shape.gii
- ├── tpl-fsaverage_den-41k_hemi-L_desc-vaavg_midthickness.shape.gii
- ├── tpl-fsaverage_den-41k_hemi-L_inflated.surf.gii
- ├── tpl-fsaverage_den-41k_hemi-L_pial.surf.gii
- ├── tpl-fsaverage_den-41k_hemi-L_sphere.surf.gii
- ├── tpl-fsaverage_den-41k_hemi-L_white.surf.gii
- ├── tpl-fsaverage_den-41k_hemi-R_desc-nomedialwall_dparc.label.gii
- ├── tpl-fsaverage_den-41k_hemi-R_desc-sulc_midthickness.shape.gii
- ├── tpl-fsaverage_den-41k_hemi-R_desc-vaavg_midthickness.shape.gii
- ├── tpl-fsaverage_den-41k_hemi-R_inflated.surf.gii
- ├── tpl-fsaverage_den-41k_hemi-R_pial.surf.gii
- ├── tpl-fsaverage_den-41k_hemi-R_sphere.surf.gii
- └── tpl-fsaverage_den-41k_hemi-R_white.surf.gii
- 4 directories, 56 files
- References
- ----------
- .. [1] Anders M Dale, Bruce Fischl, and Martin I Sereno. Cortical
- surface-based analysis: i. segmentation and surface reconstruction.
- Neuroimage, 9(2):179\u2013194, 1999.
- .. [2] Bruce Fischl, Martin I Sereno, and Anders M Dale. Cortical
- surface-based analysis: ii: inflation, flattening, and a surface-based
- coordinate system. Neuroimage, 9(2):195\u2013207, 1999.
- .. [3] Bruce Fischl, Martin I Sereno, Roger BH Tootell, and Anders M Dale.
- High-resolution intersubject averaging and a coordinate system for the
- cortical surface. Human brain mapping, 8(4):272\u2013284, 1999.
- .. [4] Ross D Markello, Justine Y Hansen, Zhen-Qi Liu, Vincent Bazinet,
- Golia Shafiei, Laura E Su\u00e1rez, Nadia Blostein, Jakob Seidlitz,
- Sylvain Baillet, Theodore D Satterthwaite, and others. Neuromaps:
- structural and functional interpretation of brain maps. Nature Methods,
- 19(11):1472\u20131479, 2022.
- Examples
- --------
- Load the fsaverage curated template surfaces:
- >>> surfaces = fetch_fsaverage_curated(version='fsaverage') # doctest: +SKIP
- >>> surfaces.keys() # doctest: +SKIP
- dict_keys(['white', 'pial', 'inflated', 'sphere', 'medial', 'sulc', 'vaavg'])
- Access the pial surface GIFTI files:
- >>> surfaces.pial # doctest: +SKIP
- Surface(L=PosixPath('~/nnt-data/tpl-fsaverage_curated/fsaverage/tpl-fsaverage_den-164k_hemi-L_pial.surf.gii'),
- R=PosixPath('~/nnt-data/tpl-fsaverage_curated/fsaverage/tpl-fsaverage_den-164k_hemi-R_pial.surf.gii'))
- Load the left pial surface with nibabel:
- >>> import nibabel as nib # doctest: +SKIP
- >>> pial_left = nib.load(surfaces.pial.L) # doctest: +SKIP
- >>> vertices = pial_left.agg_data('pointset') # doctest: +SKIP
- >>> faces = pial_left.agg_data('triangle') # doctest: +SKIP
- >>> print(f"Vertices: {vertices.shape}, Faces: {faces.shape}") # doctest: +SKIP
- Vertices: (163842, 3), Faces: (327680, 3)
- Load and examine the sulcal depth data:
- >>> sulc_left = nib.load(surfaces.sulc.L) # doctest: +SKIP
- >>> sulc_data = sulc_left.agg_data() # doctest: +SKIP
- >>> sulc_min, sulc_max = sulc_data.min(), sulc_data.max() # doctest: +SKIP
- >>> print(f"Sulcal depth range: {sulc_min:.2f} to {sulc_max:.2f}") # doctest: +SKIP
- Sulcal depth range: -1.78 to 1.88
- """
- versions = ["fsaverage", "fsaverage6", "fsaverage5", "fsaverage4"]
- if version not in versions:
- raise ValueError(
- f"The version of fsaverage requested {version} does not "
- f"exist. Must be one of {versions}"
- )
- dataset_name = "tpl-fsaverage_curated"
- _get_reference_info("tpl-fsaverage_curated", verbose=verbose)
- keys = ["white", "pial", "inflated", "sphere", "medial", "sulc", "vaavg"]
- keys_suffix = {
- "white": "white.surf",
- "pial": "pial.surf",
- "inflated": "inflated.surf",
- "sphere": "sphere.surf",
- "medial": "desc-nomedialwall_dparc.label",
- "sulc": "desc-sulc_midthickness.shape",
- "vaavg": "desc-vaavg_midthickness.shape",
- }
- version_density = {
- "fsaverage": "164k",
- "fsaverage6": "41k",
- "fsaverage5": "10k",
- "fsaverage4": "3k",
- }
- density = version_density[version]
- fetched = fetch_file(
- dataset_name, keys=version, force=force, data_dir=data_dir, verbose=verbose
- )
- # deal with default neuromaps directory structure in the archive
- if not fetched.exists():
- import shutil
- shutil.move(fetched.parent / "atlases/fsaverage", fetched)
- shutil.rmtree(fetched.parent / "atlases")
- data = {
- k: SURFACE(
- fetched / f"tpl-fsaverage_den-{density}_hemi-L_{keys_suffix[k]}.gii",
- fetched / f"tpl-fsaverage_den-{density}_hemi-R_{keys_suffix[k]}.gii",
- )
- for k in keys
- }
- return Bunch(**data)
- def fetch_hcp_standards(force=False, data_dir=None, verbose=1):
- """
- Fetch HCP standard mesh atlases for converting between FreeSurfer and HCP.
- This dataset contains standard mesh atlases used by Connectome Workbench
- to convert and register data between FreeSurfer fsaverage space and HCP
- fsLR space. It includes spherical templates for fsaverage and fsLR at
- multiple vertex densities (e.g., 164k, 59k, 32k), mapping spheres between
- fs (hemisphere-specific) and fsLR, and midthickness vertex area averages
- (``va_avg``) for resampling and area-preserving operations.
- The original file was from 3_, but is no longer available. The archived
- file is available from 4_.
- If you used this data, please cite 1_, 2_.
- Returns
- -------
- standards : str
- Filepath to standard_mesh_atlases directory
- Other Parameters
- ----------------
- force : bool, optional
- If True, will overwrite existing dataset. Default: False
- data_dir : str, optional
- Path to use as data directory. If not specified, will check for
- environmental variable 'NNT_DATA'; if that is not set, will use
- `~/nnt-data` instead. Default: None
- verbose : int, optional
- Modifies verbosity of download, where higher numbers mean more updates.
- Default: 1
- Notes
- -----
- Returns the path to the `standard_mesh_atlases` directory containing
- curated GIFTI files used for conversions between FreeSurfer fsaverage and
- HCP fsLR spaces, including spherical templates and midthickness vertex-area
- maps at multiple densities.
- Example directory tree:
- ::
- ~/nnt-data/tpl-hcp_standards/standard_mesh_atlases
- ├── fsaverage.L_LR.spherical_std.164k_fs_LR.surf.gii
- ├── fsaverage.R_LR.spherical_std.164k_fs_LR.surf.gii
- ├── fs_L
- │ ├── fsaverage.L.sphere.164k_fs_L.surf.gii
- │ └── fs_L-to-fs_LR_fsaverage.L_LR.spherical_std.164k_fs_L.surf.gii
- ├── fs_R
- │ ├── fsaverage.R.sphere.164k_fs_R.surf.gii
- │ └── fs_R-to-fs_LR_fsaverage.R_LR.spherical_std.164k_fs_R.surf.gii
- ├── L.sphere.32k_fs_LR.surf.gii
- ├── L.sphere.59k_fs_LR.surf.gii
- ├── resample_fsaverage
- │ ├── fsaverage4.L.midthickness_va_avg.3k_fsavg_L.shape.gii
- │ ├── fsaverage4.R.midthickness_va_avg.3k_fsavg_R.shape.gii
- │ ├── fsaverage4_std_sphere.L.3k_fsavg_L.surf.gii
- │ ├── fsaverage4_std_sphere.R.3k_fsavg_R.surf.gii
- │ ├── fsaverage5.L.midthickness_va_avg.10k_fsavg_L.shape.gii
- │ ├── fsaverage5.R.midthickness_va_avg.10k_fsavg_R.shape.gii
- │ ├── fsaverage5_std_sphere.L.10k_fsavg_L.surf.gii
- │ ├── fsaverage5_std_sphere.R.10k_fsavg_R.surf.gii
- │ ├── fsaverage6.L.midthickness_va_avg.41k_fsavg_L.shape.gii
- │ ├── fsaverage6.R.midthickness_va_avg.41k_fsavg_R.shape.gii
- │ ├── fsaverage6_std_sphere.L.41k_fsavg_L.surf.gii
- │ ├── fsaverage6_std_sphere.R.41k_fsavg_R.surf.gii
- │ ├── fsaverage.L.midthickness_va_avg.164k_fsavg_L.shape.gii
- │ ├── fsaverage.R.midthickness_va_avg.164k_fsavg_R.shape.gii
- │ ├── fsaverage_std_sphere.L.164k_fsavg_L.surf.gii
- │ ├── fsaverage_std_sphere.R.164k_fsavg_R.surf.gii
- │ ├── fs_LR-deformed_to-fsaverage.L.sphere.164k_fs_LR.surf.gii
- │ ├── fs_LR-deformed_to-fsaverage.L.sphere.32k_fs_LR.surf.gii
- │ ├── fs_LR-deformed_to-fsaverage.L.sphere.59k_fs_LR.surf.gii
- │ ├── fs_LR-deformed_to-fsaverage.R.sphere.164k_fs_LR.surf.gii
- │ ├── fs_LR-deformed_to-fsaverage.R.sphere.32k_fs_LR.surf.gii
- │ ├── fs_LR-deformed_to-fsaverage.R.sphere.59k_fs_LR.surf.gii
- │ ├── fs_LR.L.midthickness_va_avg.164k_fs_LR.shape.gii
- │ ├── fs_LR.L.midthickness_va_avg.32k_fs_LR.shape.gii
- │ ├── fs_LR.L.midthickness_va_avg.59k_fs_LR.shape.gii
- │ ├── fs_LR.R.midthickness_va_avg.164k_fs_LR.shape.gii
- │ ├── fs_LR.R.midthickness_va_avg.32k_fs_LR.shape.gii
- │ └── fs_LR.R.midthickness_va_avg.59k_fs_LR.shape.gii
- ├── R.sphere.32k_fs_LR.surf.gii
- └── R.sphere.59k_fs_LR.surf.gii
- 3 directories, 38 files
- References
- ----------
- .. [1] David C Van Essen, Kamil Ugurbil, Edward Auerbach, Deanna
- Barch,Timothy EJ Behrens, Richard Bucholz, Acer Chang, Liyong Chen,
- Maurizio Corbetta, Sandra W Curtiss, and others. The human connectome
- project: a data acquisition perspective. Neuroimage,
- 62(4):2222\u20132231, 2012.
- .. [2] Matthew F Glasser, Stamatios N Sotiropoulos, J Anthony Wilson,
- Timothy S Coalson, Bruce Fischl, Jesper L Andersson, Junqian Xu, Saad
- Jbabdi, Matthew Webster, Jonathan R Polimeni, and others. The minimal
- preprocessing pipelines for the human connectome project. Neuroimage,
- 80:105\u2013124, 2013.
- .. [3] http://brainvis.wustl.edu/workbench/standard_mesh_atlases.zip
- .. [4] https://web.archive.org/web/20220121035833/http://brainvis.wustl.edu/workbench/standard_mesh_atlases.zip
- Examples
- --------
- Load the standards directory and inspect contents:
- >>> standards = fetch_hcp_standards() # doctest: +SKIP
- >>> print(standards) # doctest: +SKIP
- PosixPath('~/nnt-data/tpl-hcp_standards/standard_mesh_atlases')
- List the fsLR 32k spherical templates:
- >>> import pathlib # doctest: +SKIP
- >>> list((standards).glob('L.sphere.32k_fs_LR.surf.gii')) # doctest: +SKIP
- [PosixPath('~/nnt-data/tpl-hcp_standards/standard_mesh_atlases/L.sphere.32k_fs_LR.surf.gii')]
- Load a sphere surface with nibabel and examine geometry:
- >>> import nibabel as nib # doctest: +SKIP
- >>> gii = nib.load(standards / 'L.sphere.32k_fs_LR.surf.gii') # doctest: +SKIP
- >>> vertices = gii.agg_data('pointset') # doctest: +SKIP
- >>> faces = gii.agg_data('triangle') # doctest: +SKIP
- >>> vertices.shape, faces.shape # doctest: +SKIP
- ((32492, 3), (64980, 3))
- """
- dataset_name = "tpl-hcp_standards"
- _get_reference_info(dataset_name, verbose=verbose)
- fetched = fetch_file(
- dataset_name,
- keys="standard_mesh_atlases",
- force=force,
- data_dir=data_dir,
- verbose=verbose,
- )
- return fetched
- def fetch_fslr_curated(version="fslr32k", force=False, data_dir=None, verbose=1):
- """
- Download files for HCP fsLR template.
- This dataset contains surface geometry files (midthickness, inflated,
- veryinflated [where available], sphere), medial wall labels, and surface
- shape files (sulcal depth and vertex area) in GIFTI format for the HCP fsLR
- template at various densities.
- If you used this data, please cite 1_, 2_, 3_.
- Parameters
- ----------
- version : str, optional
- One of {"fslr4k", "fslr8k", "fslr32k", "fslr164k"}. Default: 'fslr32k'
- Returns
- -------
- filenames : :class:`sklearn.utils.Bunch`
- Dictionary-like object with keys ['midthickness', 'inflated',
- 'veryinflated' (except for 'fslr4k'/'fslr8k'), 'sphere', 'medial',
- 'sulc', 'vaavg'], where corresponding values are Surface namedtuples
- containing filepaths for the left (L) and right (R) hemisphere files
- in GIFTI format.
- Other Parameters
- ----------------
- force : bool, optional
- If True, will overwrite existing dataset. Default: False
- data_dir : str, optional
- Path to use as data directory. If not specified, will check for
- environmental variable 'NNT_DATA'; if that is not set, will use
- `~/nnt-data` instead. Default: None
- verbose : int, optional
- Modifies verbosity of download, where higher numbers mean more updates.
- Default: 1
- Notes
- -----
- This function fetches curated fsLR surfaces from the neuromaps
- package (see `neuromaps.datasets.fetch_fslr <https://netneurolab.github.io/neuromaps/generated/neuromaps.datasets.fetch_fslr.html>`_).
- All files are provided in GIFTI format (.gii). The fsLR template is the
- HCP standard mesh used for group analyses and cross-subject alignment.
- The returned files include:
- - **midthickness**: Midthickness surface geometry (.surf.gii), halfway
- between white and pial surfaces; often preferred for data mapping.
- - **inflated**: Inflated surface geometry (.surf.gii) for improved
- visualization of sulci and gyri.
- - **veryinflated**: Very inflated surface geometry (.surf.gii) providing
- additional smoothing; not available for 'fslr4k'/'fslr8k'.
- - **sphere**: Spherical surface geometry (.surf.gii) used for surface-based
- registration and applying parcellations.
- - **medial**: Medial wall mask (.label.gii) indicating vertices to exclude
- from analyses (vertices with no cortex).
- - **sulc**: Sulcal depth map (.shape.gii) providing sulcal/gyral patterns
- on the midthickness surface.
- - **vaavg**: Vertex area map (.shape.gii) representing the average vertex
- area on the midthickness surface.
- The vertex density varies by version: fslr4k (≈4k vertices), fslr8k (≈8k),
- fslr32k (≈32k), and fslr164k (≈164k) per hemisphere.
- Example directory tree:
- ::
- ~/nnt-data/tpl-fslr_curated
- ├── fslr164k
- │ ├── README.md
- │ ├── tpl-fsLR_den-164k_hemi-L_desc-nomedialwall_dparc.label.gii
- │ ├── tpl-fsLR_den-164k_hemi-L_desc-sulc_midthickness.shape.gii
- │ ├── tpl-fsLR_den-164k_hemi-L_desc-vaavg_midthickness.shape.gii
- │ ├── tpl-fsLR_den-164k_hemi-L_inflated.surf.gii
- │ ├── tpl-fsLR_den-164k_hemi-L_midthickness.surf.gii
- │ ├── tpl-fsLR_den-164k_hemi-L_sphere.surf.gii
- │ ├── tpl-fsLR_den-164k_hemi-L_veryinflated.surf.gii
- │ ├── tpl-fsLR_den-164k_hemi-R_desc-nomedialwall_dparc.label.gii
- │ ├── tpl-fsLR_den-164k_hemi-R_desc-sulc_midthickness.shape.gii
- │ ├── tpl-fsLR_den-164k_hemi-R_desc-vaavg_midthickness.shape.gii
- │ ├── tpl-fsLR_den-164k_hemi-R_inflated.surf.gii
- │ ├── tpl-fsLR_den-164k_hemi-R_midthickness.surf.gii
- │ ├── tpl-fsLR_den-164k_hemi-R_sphere.surf.gii
- │ ├── tpl-fsLR_den-164k_hemi-R_veryinflated.surf.gii
- │ ├── tpl-fsLR_space-fsaverage_den-164k_hemi-L_sphere.surf.gii
- │ └── tpl-fsLR_space-fsaverage_den-164k_hemi-R_sphere.surf.gii
- ├── fslr32k
- │ ├── README.md
- │ ├── tpl-fsLR_den-32k_hemi-L_desc-nomedialwall_dparc.label.gii
- │ ├── tpl-fsLR_den-32k_hemi-L_desc-sulc_midthickness.shape.gii
- │ ├── tpl-fsLR_den-32k_hemi-L_desc-vaavg_midthickness.shape.gii
- │ ├── tpl-fsLR_den-32k_hemi-L_inflated.surf.gii
- │ ├── tpl-fsLR_den-32k_hemi-L_midthickness.surf.gii
- │ ├── tpl-fsLR_den-32k_hemi-L_sphere.surf.gii
- │ ├── tpl-fsLR_den-32k_hemi-L_veryinflated.surf.gii
- │ ├── tpl-fsLR_den-32k_hemi-R_desc-nomedialwall_dparc.label.gii
- │ ├── tpl-fsLR_den-32k_hemi-R_desc-sulc_midthickness.shape.gii
- │ ├── tpl-fsLR_den-32k_hemi-R_desc-vaavg_midthickness.shape.gii
- │ ├── tpl-fsLR_den-32k_hemi-R_inflated.surf.gii
- │ ├── tpl-fsLR_den-32k_hemi-R_midthickness.surf.gii
- │ ├── tpl-fsLR_den-32k_hemi-R_sphere.surf.gii
- │ ├── tpl-fsLR_den-32k_hemi-R_veryinflated.surf.gii
- │ ├── tpl-fsLR_space-fsaverage_den-32k_hemi-L_sphere.surf.gii
- │ └── tpl-fsLR_space-fsaverage_den-32k_hemi-R_sphere.surf.gii
- ├── fslr4k
- │ ├── tpl-fsLR_den-4k_hemi-L_desc-nomedialwall_dparc.label.gii
- │ ├── tpl-fsLR_den-4k_hemi-L_desc-sulc_midthickness.shape.gii
- │ ├── tpl-fsLR_den-4k_hemi-L_desc-vaavg_midthickness.shape.gii
- │ ├── tpl-fsLR_den-4k_hemi-L_inflated.surf.gii
- │ ├── tpl-fsLR_den-4k_hemi-L_midthickness.surf.gii
- │ ├── tpl-fsLR_den-4k_hemi-L_sphere.surf.gii
- │ ├── tpl-fsLR_den-4k_hemi-R_desc-nomedialwall_dparc.label.gii
- │ ├── tpl-fsLR_den-4k_hemi-R_desc-sulc_midthickness.shape.gii
- │ ├── tpl-fsLR_den-4k_hemi-R_desc-vaavg_midthickness.shape.gii
- │ ├── tpl-fsLR_den-4k_hemi-R_inflated.surf.gii
- │ ├── tpl-fsLR_den-4k_hemi-R_midthickness.surf.gii
- │ ├── tpl-fsLR_den-4k_hemi-R_sphere.surf.gii
- │ ├── tpl-fsLR_space-fsaverage_den-4k_hemi-L_sphere.surf.gii
- │ └── tpl-fsLR_space-fsaverage_den-4k_hemi-R_sphere.surf.gii
- └── fslr8k
- ├── tpl-fsLR_den-8k_hemi-L_desc-nomedialwall_dparc.label.gii
- ├── tpl-fsLR_den-8k_hemi-L_desc-sulc_midthickness.shape.gii
- ├── tpl-fsLR_den-8k_hemi-L_desc-vaavg_midthickness.shape.gii
- ├── tpl-fsLR_den-8k_hemi-L_inflated.surf.gii
- ├── tpl-fsLR_den-8k_hemi-L_midthickness.surf.gii
- ├── tpl-fsLR_den-8k_hemi-L_sphere.surf.gii
- ├── tpl-fsLR_den-8k_hemi-R_desc-nomedialwall_dparc.label.gii
- ├── tpl-fsLR_den-8k_hemi-R_desc-sulc_midthickness.shape.gii
- ├── tpl-fsLR_den-8k_hemi-R_desc-vaavg_midthickness.shape.gii
- ├── tpl-fsLR_den-8k_hemi-R_inflated.surf.gii
- ├── tpl-fsLR_den-8k_hemi-R_midthickness.surf.gii
- ├── tpl-fsLR_den-8k_hemi-R_sphere.surf.gii
- ├── tpl-fsLR_space-fsaverage_den-8k_hemi-L_sphere.surf.gii
- └── tpl-fsLR_space-fsaverage_den-8k_hemi-R_sphere.surf.gii
- 4 directories, 62 files
- References
- ----------
- .. [1] David C Van Essen, Kamil Ugurbil, Edward Auerbach, Deanna
- Barch,Timothy EJ Behrens, Richard Bucholz, Acer Chang, Liyong Chen,
- Maurizio Corbetta, Sandra W Curtiss, and others. The human connectome
- project: a data acquisition perspective. Neuroimage,
- 62(4):2222\u20132231, 2012.
- .. [2] Matthew F Glasser, Stamatios N Sotiropoulos, J Anthony Wilson,
- Timothy S Coalson, Bruce Fischl, Jesper L Andersson, Junqian Xu, Saad
- Jbabdi, Matthew Webster, Jonathan R Polimeni, and others. The minimal
- preprocessing pipelines for the human connectome project. Neuroimage,
- 80:105\u2013124, 2013.
- .. [3] Ross D Markello, Justine Y Hansen, Zhen-Qi Liu, Vincent Bazinet,
- Golia Shafiei, Laura E Su\u00e1rez, Nadia Blostein, Jakob Seidlitz,
- Sylvain Baillet, Theodore D Satterthwaite, and others. Neuromaps:
- structural and functional interpretation of brain maps. Nature Methods,
- 19(11):1472\u20131479, 2022.
- Examples
- --------
- Load the fsLR curated template surfaces:
- >>> surfaces = fetch_fslr_curated(version='fslr32k') # doctest: +SKIP
- >>> surfaces.keys() # doctest: +SKIP
- dict_keys(['midthickness', 'inflated', 'veryinflated', 'sphere', 'medial',
- 'sulc', 'vaavg'])
- Access the midthickness surface GIFTI files:
- >>> surfaces.midthickness # doctest: +SKIP
- Surface(L=PosixPath('~/nnt-data/tpl-fslr_curated/fslr32k/tpl-fsLR_den-32k_hemi-L_midthickness.surf.gii'),
- R=PosixPath('~/nnt-data/tpl-fslr_curated/fslr32k/tpl-fsLR_den-32k_hemi-R_midthickness.surf.gii'))
- Load the left midthickness surface with nibabel:
- >>> import nibabel as nib # doctest: +SKIP
- >>> gii = nib.load(surfaces.midthickness.L) # doctest: +SKIP
- >>> vertices = gii.agg_data('pointset') # doctest: +SKIP
- >>> faces = gii.agg_data('triangle') # doctest: +SKIP
- >>> print(vertices.shape, faces.shape) # doctest: +SKIP
- (32492, 3) (64980, 3)
- Load and examine the sulcal depth data:
- >>> sulc_left = nib.load(surfaces.sulc.L) # doctest: +SKIP
- >>> sulc_data = sulc_left.agg_data() # doctest: +SKIP
- >>> float(sulc_data.min()), float(sulc_data.max()) # doctest: +SKIP
- (-1.6234848499298096, 1.1611071825027466)
- """
- versions = ["fslr4k", "fslr8k", "fslr32k", "fslr164k"]
- if version not in versions:
- raise ValueError(
- f"The version of fsaverage requested {version} does not "
- f"exist. Must be one of {versions}"
- )
- dataset_name = "tpl-fslr_curated"
- _get_reference_info("tpl-fslr_curated", verbose=verbose)
- keys = [
- "midthickness",
- "inflated",
- "veryinflated",
- "sphere",
- "medial",
- "sulc",
- "vaavg",
- ]
- if version in ["fslr4k", "fslr8k"]:
- keys.remove("veryinflated")
- keys_suffix = {
- "midthickness": "midthickness.surf",
- "inflated": "inflated.surf",
- "veryinflated": "veryinflated.surf",
- "sphere": "sphere.surf",
- "medial": "desc-nomedialwall_dparc.label",
- "sulc": "desc-sulc_midthickness.shape",
- "vaavg": "desc-vaavg_midthickness.shape",
- }
- version_density = {
- "fslr4k": "4k",
- "fslr8k": "8k",
- "fslr32k": "32k",
- "fslr164k": "164k",
- }
- density = version_density[version]
- fetched = fetch_file(
- dataset_name, keys=version, force=force, data_dir=data_dir, verbose=verbose
- )
- # deal with default neuromaps directory structure in the archive
- if not fetched.exists():
- import shutil
- shutil.move(fetched.parent / "atlases/fsLR", fetched)
- shutil.rmtree(fetched.parent / "atlases")
- data = {
- k: SURFACE(
- fetched / f"tpl-fsLR_den-{density}_hemi-L_{keys_suffix[k]}.gii",
- fetched / f"tpl-fsLR_den-{density}_hemi-R_{keys_suffix[k]}.gii",
- )
- for k in keys
- }
- return Bunch(**data)
- def fetch_civet(density="41k", version="v1", force=False, data_dir=None, verbose=1):
- """
- Fetch CIVET surface files.
- This dataset contains midthickness and white matter surface files for the
- CIVET template in OBJ format, registered to ICBM152 space. CIVET is a
- fully automated structural image processing pipeline developed at the
- Montreal Neurological Institute.
- If you used this data, please cite 1_, 2_, 3_.
- Parameters
- ----------
- density : {'41k', '164k'}, optional
- Which density of the CIVET-space geometry files to fetch. The
- high-resolution '164k' surface only exists for version 'v2'
- version : {'v1, 'v2'}, optional
- Which version of the CIVET surfaces to use. Default: 'v2'
- Returns
- -------
- filenames : :class:`sklearn.utils.Bunch`
- Dictionary-like object with keys ['mid', 'white'], where corresponding
- values are Surface namedtuples containing filepaths for the left (L)
- and right (R) hemisphere surface files in OBJ format. Note: for version
- 'v1', the 'mid' and 'white' files are identical.
- Other Parameters
- ----------------
- force : bool, optional
- If True, will overwrite existing dataset. Default: False
- data_dir : str, optional
- Path to use as data directory. If not specified, will check for
- environmental variable 'NNT_DATA'; if that is not set, will use
- `~/nnt-data` instead. Default: None
- verbose : int, optional
- Modifies verbosity of download, where higher numbers mean more updates.
- Default: 1
- Notes
- -----
- The CIVET template surfaces are provided in OBJ format and registered to
- ICBM152 stereotaxic space.
- The returned files include:
- - **mid**: Midthickness surface (.obj), representing the surface halfway
- between white and gray matter boundaries. For version 'v1', this is
- identical to the white surface.
- - **white**: White matter surface (.obj), representing the boundary between
- white matter and gray matter.
- The vertex density varies by option: 41k (≈41k vertices) or 164k (≈164k)
- per hemisphere. The high-resolution 164k surface is only available for
- version 'v2'.
- Example directory tree:
- ::
- ~/nnt-data/tpl-civet
- ├── v1
- │ └── civet41k
- │ ├── tpl-civet_space-ICBM152_hemi-L_den-41k_mid.obj
- │ ├── tpl-civet_space-ICBM152_hemi-L_den-41k_white.obj
- │ ├── tpl-civet_space-ICBM152_hemi-R_den-41k_mid.obj
- │ └── tpl-civet_space-ICBM152_hemi-R_den-41k_white.obj
- └── v2
- ├── civet164k
- │ ├── tpl-civet_space-ICBM152_hemi-L_den-164k_mid.obj
- │ ├── tpl-civet_space-ICBM152_hemi-L_den-164k_white.obj
- │ ├── tpl-civet_space-ICBM152_hemi-R_den-164k_mid.obj
- │ └── tpl-civet_space-ICBM152_hemi-R_den-164k_white.obj
- └── civet41k
- ├── tpl-civet_space-ICBM152_hemi-L_den-41k_mid.obj
- ├── tpl-civet_space-ICBM152_hemi-L_den-41k_white.obj
- ├── tpl-civet_space-ICBM152_hemi-R_den-41k_mid.obj
- └── tpl-civet_space-ICBM152_hemi-R_den-41k_white.obj
- 5 directories, 12 files
- License: https://github.com/aces/CIVET_Full_Project/blob/master/LICENSE
- References
- ----------
- .. [1] Oliver Lyttelton, Maxime Boucher, Steven Robbins, and Alan Evans. An
- unbiased iterative group registration template for cortical surface
- analysis. Neuroimage, 34(4):1535\u20131544, 2007.
- .. [2] Vladimir S Fonov, Alan C Evans, Robert C McKinstry, C Robert Almli,
- and DL Collins. Unbiased nonlinear average age-appropriate brain
- templates from birth to adulthood. NeuroImage, 47:S102, 2009.
- .. [3] Y Ad-Dab'bagh, O Lyttelton, J Muehlboeck, C Lepage, D Einarson, K
- Mok, O Ivanov, R Vincent, J Lerch, and E Fombonne. The civet
- image-processing environment: a fully automated comprehensive pipeline
- for anatomical neuroimaging research. proceedings of the 12th annual
- meeting of the organization for human brain mapping. Florence, Italy,
- pages 2266, 2006.
- Examples
- --------
- Load the CIVET template surfaces:
- >>> surfaces = fetch_civet(density='41k', version='v2') # doctest: +SKIP
- >>> surfaces.keys() # doctest: +SKIP
- dict_keys(['mid', 'white'])
- Access the midthickness surface paths:
- >>> surfaces.mid # doctest: +SKIP
- Surface(L=PosixPath('~/nnt-data/tpl-civet/v2/civet41k/tpl-civet_space-ICBM152_hemi-L_den-41k_mid.obj'),
- R=PosixPath('~/nnt-data/tpl-civet/v2/civet41k/tpl-civet_space-ICBM152_hemi-R_den-41k_mid.obj'))
- Load the left midthickness surface with nibabel:
- >>> import nibabel as nib # doctest: +SKIP
- >>> vertices, faces = nib.freesurfer.read_geometry(surfaces.mid.L) # doctest: +SKIP
- >>> print(f"Vertices: {vertices.shape}, Faces: {faces.shape}") # doctest: +SKIP
- Vertices: (40962, 3), Faces: (81920, 3)
- """
- densities = ["41k", "164k"]
- if density not in densities:
- raise ValueError(
- f'The density of CIVET requested "{density}" does not exist. '
- f"Must be one of {densities}"
- )
- versions = ["v1", "v2"]
- if version not in versions:
- raise ValueError(
- f'The version of CIVET requested "{version}" does not exist. '
- f"Must be one of {versions}"
- )
- if version == "v1" and density == "164k":
- raise ValueError(
- 'The "164k" density CIVET surface only exists for ' 'version "v2"'
- )
- dataset_name = "tpl-civet"
- _get_reference_info(dataset_name, verbose=verbose)
- keys = ["mid", "white"]
- fetched = fetch_file(
- dataset_name,
- keys=[version, "civet" + density],
- force=force,
- data_dir=data_dir,
- verbose=verbose,
- )
- data = {
- k: SURFACE(
- fetched / f"tpl-civet_space-ICBM152_hemi-L_den-{density}_{k}.obj",
- fetched / f"tpl-civet_space-ICBM152_hemi-R_den-{density}_{k}.obj",
- )
- for k in keys
- }
- return Bunch(**data)
- def fetch_civet_curated(version="civet41k", force=False, data_dir=None, verbose=1):
- """
- Download files for CIVET template.
- This dataset contains surface geometry files (white, midthickness, inflated,
- veryinflated, sphere), medial wall labels, and surface shape files (sulcal
- depth and vertex area) in GIFTI format for the CIVET template at multiple
- densities.
- If you used this data, please cite 1_, 2_, 3_, 4_.
- Parameters
- ----------
- version : {'civet41k', 'civet164k'}, optional
- Which density of the CIVET-space geometry files to fetch.
- Returns
- -------
- filenames : :class:`sklearn.utils.Bunch`
- Dictionary-like object with keys ['white', 'midthickness', 'inflated',
- 'veryinflated', 'sphere', 'medial', 'sulc', 'vaavg'], where
- corresponding values are Surface namedtuples containing filepaths for
- the left (L) and right (R) hemisphere files in GIFTI format.
- Other Parameters
- ----------------
- force : bool, optional
- If True, will overwrite existing dataset. Default: False
- data_dir : str, optional
- Path to use as data directory. If not specified, will check for
- environmental variable 'NNT_DATA'; if that is not set, will use
- `~/nnt-data` instead. Default: None
- verbose : int, optional
- Modifies verbosity of download, where higher numbers mean more updates.
- Default: 1
- Notes
- -----
- This function fetches curated CIVET surfaces from the neuromaps
- package (see `neuromaps.datasets.fetch_civet <https://netneurolab.github.io/neuromaps/generated/neuromaps.datasets.fetch_civet.html>`_).
- All files are provided in GIFTI format (.gii). The CIVET template is
- registered to ICBM152 stereotaxic space.
- The returned files include:
- - **white**: White matter surface geometry (.surf.gii), representing the
- boundary between white matter and gray matter.
- - **midthickness**: Midthickness surface geometry (.surf.gii), halfway
- between white and pial surfaces.
- - **inflated**: Inflated surface geometry (.surf.gii) for improved
- visualization of sulci and gyri.
- - **veryinflated**: Very inflated surface geometry (.surf.gii) providing
- additional smoothing for visualization.
- - **sphere**: Spherical surface geometry (.surf.gii) used for surface-based
- registration and applying parcellations.
- - **medial**: Medial wall mask (.label.gii) indicating vertices to exclude
- from analyses (vertices with no cortex).
- - **sulc**: Sulcal depth map (.shape.gii) providing sulcal/gyral patterns
- on the midthickness surface.
- - **vaavg**: Vertex area map (.shape.gii) representing the average vertex
- area on the midthickness surface.
- The vertex density varies by version: civet41k (≈41k vertices) and
- civet164k (≈164k) per hemisphere.
- Example directory tree:
- ::
- ~/nnt-data/tpl-civet_curated
- └── v2
- ├── civet164k
- │ ├── tpl-civet_den-164k_hemi-L_desc-nomedialwall_dparc.label.gii
- │ ├── tpl-civet_den-164k_hemi-L_desc-sulc_midthickness.shape.gii
- │ ├── tpl-civet_den-164k_hemi-L_desc-vaavg_midthickness.shape.gii
- │ ├── tpl-civet_den-164k_hemi-L_inflated.surf.gii
- │ ├── tpl-civet_den-164k_hemi-L_midthickness.surf.gii
- │ ├── tpl-civet_den-164k_hemi-L_sphere.surf.gii
- │ ├── tpl-civet_den-164k_hemi-L_veryinflated.surf.gii
- │ ├── tpl-civet_den-164k_hemi-L_white.surf.gii
- │ ├── tpl-civet_den-164k_hemi-R_desc-nomedialwall_dparc.label.gii
- │ ├── tpl-civet_den-164k_hemi-R_desc-sulc_midthickness.shape.gii
- │ ├── tpl-civet_den-164k_hemi-R_desc-vaavg_midthickness.shape.gii
- │ ├── tpl-civet_den-164k_hemi-R_inflated.surf.gii
- │ ├── tpl-civet_den-164k_hemi-R_midthickness.surf.gii
- │ ├── tpl-civet_den-164k_hemi-R_sphere.surf.gii
- │ ├── tpl-civet_den-164k_hemi-R_veryinflated.surf.gii
- │ ├── tpl-civet_den-164k_hemi-R_white.surf.gii
- │ ├── tpl-civet_space-fsaverage_den-164k_hemi-L_sphere.surf.gii
- │ ├── tpl-civet_space-fsaverage_den-164k_hemi-R_sphere.surf.gii
- │ ├── tpl-civet_space-fsLR_den-164k_hemi-L_sphere.surf.gii
- │ └── tpl-civet_space-fsLR_den-164k_hemi-R_sphere.surf.gii
- └── civet41k
- ├── README.md
- ├── tpl-civet_den-41k_hemi-L_desc-nomedialwall_dparc.label.gii
- ├── tpl-civet_den-41k_hemi-L_desc-sulc_midthickness.shape.gii
- ├── tpl-civet_den-41k_hemi-L_desc-vaavg_midthickness.shape.gii
- ├── tpl-civet_den-41k_hemi-L_inflated.surf.gii
- ├── tpl-civet_den-41k_hemi-L_midthickness.surf.gii
- ├── tpl-civet_den-41k_hemi-L_sphere.surf.gii
- ├── tpl-civet_den-41k_hemi-L_veryinflated.surf.gii
- ├── tpl-civet_den-41k_hemi-L_white.surf.gii
- ├── tpl-civet_den-41k_hemi-R_desc-nomedialwall_dparc.label.gii
- ├── tpl-civet_den-41k_hemi-R_desc-sulc_midthickness.shape.gii
- ├── tpl-civet_den-41k_hemi-R_desc-vaavg_midthickness.shape.gii
- ├── tpl-civet_den-41k_hemi-R_inflated.surf.gii
- ├── tpl-civet_den-41k_hemi-R_midthickness.surf.gii
- ├── tpl-civet_den-41k_hemi-R_sphere.surf.gii
- ├── tpl-civet_den-41k_hemi-R_veryinflated.surf.gii
- ├── tpl-civet_den-41k_hemi-R_white.surf.gii
- ├── tpl-civet_space-fsaverage_den-41k_hemi-L_sphere.surf.gii
- ├── tpl-civet_space-fsaverage_den-41k_hemi-R_sphere.surf.gii
- ├── tpl-civet_space-fsLR_den-41k_hemi-L_sphere.surf.gii
- └── tpl-civet_space-fsLR_den-41k_hemi-R_sphere.surf.gii
- 3 directories, 41 files
- License: https://github.com/aces/CIVET_Full_Project/blob/master/LICENSE
- References
- ----------
- .. [1] Oliver Lyttelton, Maxime Boucher, Steven Robbins, and Alan Evans. An
- unbiased iterative group registration template for cortical surface
- analysis. Neuroimage, 34(4):1535\u20131544, 2007.
- .. [2] Vladimir S Fonov, Alan C Evans, Robert C McKinstry, C Robert Almli,
- and DL Collins. Unbiased nonlinear average age-appropriate brain
- templates from birth to adulthood. NeuroImage, 47:S102, 2009.
- .. [3] Y Ad-Dab'bagh, O Lyttelton, J Muehlboeck, C Lepage, D Einarson, K
- Mok, O Ivanov, R Vincent, J Lerch, and E Fombonne. The civet
- image-processing environment: a fully automated comprehensive pipeline
- for anatomical neuroimaging research. proceedings of the 12th annual
- meeting of the organization for human brain mapping. Florence, Italy,
- pages 2266, 2006.
- .. [4] Ross D Markello, Justine Y Hansen, Zhen-Qi Liu, Vincent Bazinet,
- Golia Shafiei, Laura E Su\u00e1rez, Nadia Blostein, Jakob Seidlitz,
- Sylvain Baillet, Theodore D Satterthwaite, and others. Neuromaps:
- structural and functional interpretation of brain maps. Nature Methods,
- 19(11):1472\u20131479, 2022.
- Examples
- --------
- Load the CIVET curated template surfaces:
- >>> surfaces = fetch_civet_curated(version='civet41k') # doctest: +SKIP
- >>> surfaces.keys() # doctest: +SKIP
- dict_keys([
- 'white', 'midthickness', 'inflated', 'veryinflated',
- 'sphere', 'medial', 'sulc', 'vaavg'
- ])
- Access the midthickness surface GIFTI files:
- >>> surfaces.midthickness # doctest: +SKIP
- Surface(L=PosixPath('~/nnt-data/tpl-civet_curated/v2/civet41k/tpl-civet_den-41k_hemi-L_midthickness.surf.gii'),
- R=PosixPath('~/nnt-data/tpl-civet_curated/v2/civet41k/tpl-civet_den-41k_hemi-R_midthickness.surf.gii'))
- Load the left midthickness surface with nibabel:
- >>> import nibabel as nib # doctest: +SKIP
- >>> gii = nib.load(surfaces.midthickness.L) # doctest: +SKIP
- >>> vertices = gii.agg_data('pointset') # doctest: +SKIP
- >>> faces = gii.agg_data('triangle') # doctest: +SKIP
- >>> print(f"Vertices: {vertices.shape}, Faces: {faces.shape}") # doctest: +SKIP
- Vertices: (40962, 3), Faces: (81920, 3)
- Load and examine the sulcal depth data:
- >>> sulc_left = nib.load(surfaces.sulc.L) # doctest: +SKIP
- >>> sulc_data = sulc_left.agg_data() # doctest: +SKIP
- >>> float(sulc_data.min()), float(sulc_data.max()) # doctest: +SKIP
- (-27.601072311401367, 20.54990005493164)
- """
- versions = ["civet41k", "civet164k"]
- if version not in versions:
- raise ValueError(
- f"The version of fsaverage requested {version} does not "
- f"exist. Must be one of {versions}"
- )
- dataset_name = "tpl-civet_curated"
- _get_reference_info("tpl-civet_curated", verbose=verbose)
- keys = [
- "white",
- "midthickness",
- "inflated",
- "veryinflated",
- "sphere",
- "medial",
- "sulc",
- "vaavg",
- ]
- keys_suffix = {
- "white": "white.surf",
- "midthickness": "midthickness.surf",
- "inflated": "inflated.surf",
- "veryinflated": "veryinflated.surf",
- "sphere": "sphere.surf",
- "medial": "desc-nomedialwall_dparc.label",
- "sulc": "desc-sulc_midthickness.shape",
- "vaavg": "desc-vaavg_midthickness.shape",
- }
- version_density = {
- "civet41k": "41k",
- "civet164k": "164k",
- }
- density = version_density[version]
- fetched = fetch_file(
- dataset_name,
- keys=["v2", version],
- force=force,
- data_dir=data_dir,
- verbose=verbose,
- )
- # deal with default neuromaps directory structure in the archive
- if not fetched.exists():
- import shutil
- shutil.move(fetched.parent / "atlases/civet", fetched)
- shutil.rmtree(fetched.parent / "atlases")
- data = {
- k: SURFACE(
- fetched / f"tpl-civet_den-{density}_hemi-L_{keys_suffix[k]}.gii",
- fetched / f"tpl-civet_den-{density}_hemi-R_{keys_suffix[k]}.gii",
- )
- for k in keys
- }
- return Bunch(**data)
- def fetch_conte69(force=False, data_dir=None, verbose=1):
- """
- Download files for Van Essen et al., 2012 Conte69 template.
- This dataset contains midthickness, inflated, and very inflated surface
- files in GIFTI format for the Conte69 atlas, a population-average surface
- template in fsLR32k space registered to MNI305 volumetric space.
- If you used this data, please cite 1_, 2_.
- Returns
- -------
- filenames : :class:`sklearn.utils.Bunch`
- Dictionary-like object with keys ['midthickness', 'inflated',
- 'vinflated', 'info'], where 'midthickness', 'inflated', and
- 'vinflated' are Surface namedtuples containing filepaths for the left
- (L) and right (R) hemisphere GIFTI files, and 'info' is a dictionary
- containing template metadata from template_description.json.
- Other Parameters
- ----------------
- force : bool, optional
- If True, will overwrite existing dataset. Default: False
- data_dir : str, optional
- Path to use as data directory. If not specified, will check for
- environmental variable 'NNT_DATA'; if that is not set, will use
- `~/nnt-data` instead. Default: None
- verbose : int, optional
- Modifies verbosity of download, where higher numbers mean more updates.
- Default: 1
- Notes
- -----
- The Conte69 template is a population-average surface atlas registered to
- MNI305 volumetric space using the fsLR32k mesh (approximately 32k vertices
- per hemisphere).
- The returned files include:
- - **midthickness**: Midthickness surface geometry (.surf.gii), halfway
- between white and pial surfaces.
- - **inflated**: Inflated surface geometry (.surf.gii) for improved
- visualization of sulci and gyri.
- - **vinflated**: Very inflated surface geometry (.surf.gii) providing
- additional smoothing for visualization.
- - **info**: Metadata dictionary containing template name, BIDS version,
- and references.
- Example directory tree:
- ::
- ~/nnt-data/tpl-conte69
- ├── CHANGES
- ├── template_description.json
- ├── tpl-conte69_space-MNI305_variant-fsLR32k_inflated.L.surf.gii
- ├── tpl-conte69_space-MNI305_variant-fsLR32k_inflated.R.surf.gii
- ├── tpl-conte69_space-MNI305_variant-fsLR32k_midthickness.L.surf.gii
- ├── tpl-conte69_space-MNI305_variant-fsLR32k_midthickness.R.surf.gii
- ├── tpl-conte69_space-MNI305_variant-fsLR32k_vinflated.L.surf.gii
- └── tpl-conte69_space-MNI305_variant-fsLR32k_vinflated.R.surf.gii
- 0 directories, 8 files
- References
- ----------
- .. [1] David C Van Essen, Kamil Ugurbil, Edward Auerbach, Deanna Barch,
- Timothy EJ Behrens, Richard Bucholz, Acer Chang, Liyong Chen, Maurizio
- Corbetta, Sandra W Curtiss, and others. The human connectome project: a
- data acquisition perspective. Neuroimage, 62(4):2222\u20132231, 2012.
- .. [2] David C Van Essen, Matthew F Glasser, Donna L Dierker, John Harwell,
- and Timothy Coalson. Parcellations and hemispheric asymmetries of human
- cerebral cortex analyzed on surface-based atlases. Cerebral cortex,
- 22(10):2241\u20132262, 2012.
- .. [3] http://brainvis.wustl.edu/wiki/index.php//Caret:Atlases/Conte69_Atlas
- Examples
- --------
- Load the Conte69 template surfaces:
- >>> surfaces = fetch_conte69() # doctest: +SKIP
- >>> surfaces.keys() # doctest: +SKIP
- dict_keys(['midthickness', 'inflated', 'vinflated', 'info'])
- Access the midthickness surface GIFTI files:
- >>> surfaces.midthickness # doctest: +SKIP
- Surface(L=PosixPath('~/nnt-data/tpl-conte69/tpl-conte69_space-MNI305_variant-fsLR32k_midthickness.L.surf.gii'),
- R=PosixPath('~/nnt-data/tpl-conte69/tpl-conte69_space-MNI305_variant-fsLR32k_midthickness.R.surf.gii'))
- Load the left midthickness surface with nibabel:
- >>> import nibabel as nib # doctest: +SKIP
- >>> gii = nib.load(surfaces.midthickness.L) # doctest: +SKIP
- >>> vertices = gii.agg_data('pointset') # doctest: +SKIP
- >>> faces = gii.agg_data('triangle') # doctest: +SKIP
- >>> print(f"Vertices: {vertices.shape}, Faces: {faces.shape}") # doctest: +SKIP
- Vertices: (32492, 3), Faces: (64980, 3)
- Examine template metadata:
- >>> surfaces.info['Name'] # doctest: +SKIP
- "The 'Conte-69' template"
- """
- dataset_name = "tpl-conte69"
- _get_reference_info(dataset_name, verbose=verbose)
- keys = ["midthickness", "inflated", "vinflated"]
- fetched = fetch_file(dataset_name, force=force, data_dir=data_dir, verbose=verbose)
- data = {
- k: SURFACE(
- fetched / f"tpl-conte69_space-MNI305_variant-fsLR32k_{k}.L.surf.gii",
- fetched / f"tpl-conte69_space-MNI305_variant-fsLR32k_{k}.R.surf.gii",
- )
- for k in keys
- }
- data["info"] = json.load(open(fetched / "template_description.json", "r"))
- return Bunch(**data)
- def fetch_yerkes19(force=False, data_dir=None, verbose=1):
- """
- Download files for Donahue et al., 2016 Yerkes19 template.
- This dataset contains midthickness, inflated, and very inflated surface
- files in GIFTI format for the Yerkes19 macaque template in fsLR32k space.
- The Yerkes19 atlas is a population-average surface template for macaque
- monkeys derived from high-resolution anatomical scans.
- If you used this data, please cite 1_.
- Returns
- -------
- filenames : :class:`sklearn.utils.Bunch`
- Dictionary-like object with keys ['midthickness', 'inflated',
- 'vinflated'], where corresponding values are Surface namedtuples
- containing filepaths for the left (L) and right (R) hemisphere GIFTI
- surface files.
- Other Parameters
- ----------------
- force : bool, optional
- If True, will overwrite existing dataset. Default: False
- data_dir : str, optional
- Path to use as data directory. If not specified, will check for
- environmental variable 'NNT_DATA'; if that is not set, will use
- `~/nnt-data` instead. Default: None
- verbose : int, optional
- Modifies verbosity of download, where higher numbers mean more updates.
- Default: 1
- Notes
- -----
- The Yerkes19 template is a macaque cortical surface atlas using the fsLR32k
- mesh (approximately 32k vertices per hemisphere). It was developed to
- facilitate comparative neuroanatomy studies between human and non-human
- primates.
- The returned files include:
- - **midthickness**: Midthickness surface geometry (.surf.gii), halfway
- between white and pial surfaces.
- - **inflated**: Inflated surface geometry (.surf.gii) for improved
- visualization of sulci and gyri.
- - **vinflated**: Very inflated surface geometry (.surf.gii) providing
- additional smoothing for visualization.
- Example directory tree:
- ::
- ~/nnt-data/tpl-yerkes19
- ├── tpl-yerkes19_space-fsLR32k_inflated.L.surf.gii
- ├── tpl-yerkes19_space-fsLR32k_inflated.R.surf.gii
- ├── tpl-yerkes19_space-fsLR32k_midthickness.L.surf.gii
- ├── tpl-yerkes19_space-fsLR32k_midthickness.R.surf.gii
- ├── tpl-yerkes19_space-fsLR32k_vinflated.L.surf.gii
- └── tpl-yerkes19_space-fsLR32k_vinflated.R.surf.gii
- 0 directories, 6 files
- References
- ----------
- .. [1] Chad J Donahue, Stamatios N Sotiropoulos, Saad Jbabdi, Moises
- Hernandez-Fernandez, Timothy E Behrens, Tim B Dyrby, Timothy Coalson,
- Henry Kennedy, Kenneth Knoblauch, David C Van Essen, and others. Using
- diffusion tractography to predict cortical connection strength and
- distance: a quantitative comparison with tracers in the monkey. Journal
- of Neuroscience, 36(25):6758\u20136770, 2016.
- .. [2] https://balsa.wustl.edu/reference/show/976nz
- Examples
- --------
- Load the Yerkes19 template surfaces:
- >>> surfaces = fetch_yerkes19() # doctest: +SKIP
- >>> surfaces.keys() # doctest: +SKIP
- dict_keys(['midthickness', 'inflated', 'vinflated'])
- Access the midthickness surface GIFTI files:
- >>> surfaces.midthickness # doctest: +SKIP
- Surface(L=PosixPath('~/nnt-data/tpl-yerkes19/tpl-yerkes19_space-fsLR32k_midthickness.L.surf.gii'),
- R=PosixPath('~/nnt-data/tpl-yerkes19/tpl-yerkes19_space-fsLR32k_midthickness.R.surf.gii'))
- Load the left midthickness surface with nibabel:
- >>> import nibabel as nib # doctest: +SKIP
- >>> gii = nib.load(surfaces.midthickness.L) # doctest: +SKIP
- >>> vertices = gii.agg_data('pointset') # doctest: +SKIP
- >>> faces = gii.agg_data('triangle') # doctest: +SKIP
- >>> print(f"Vertices: {vertices.shape}, Faces: {faces.shape}") # doctest: +SKIP
- Vertices: (32492, 3), Faces: (64980, 3)
- """
- dataset_name = "tpl-yerkes19"
- _get_reference_info(dataset_name, verbose=verbose)
- keys = ["midthickness", "inflated", "vinflated"]
- fetched = fetch_file(dataset_name, force=force, data_dir=data_dir, verbose=verbose)
- data = {
- k: SURFACE(
- fetched / f"tpl-yerkes19_space-fsLR32k_{k}.L.surf.gii",
- fetched / f"tpl-yerkes19_space-fsLR32k_{k}.R.surf.gii",
- )
- for k in keys
- }
- return Bunch(**data)
- def _fetch_subcortex_surface(
- force=False, data_dir=None, verbose=1
- ):
- dataset_name = "tpl-subcortex_surface"
- _get_reference_info(dataset_name, verbose=verbose)
- fetched = fetch_file(
- dataset_name,
- force=force,
- data_dir=data_dir,
- verbose=verbose,
- )
- data = {
- k: fetched / f"{k}_surfaces.vtm"
- for k in [
- "aseg", "tianS1", "tianS2", "tianS3", "tianS4"
- ]
- }
- return data
fetch_template.py at commit 49f83c0, under BSD-3-Clause · at the source
Overview
- Padova Neuroscience Center (PNC), University of Padova, Padova, Italy
- Department of Information Engineering, University of Padova, Padova, Italy
- Department of Neuroscience, University of Padova, Padova, Italy
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 7 matches between paragraphs and lines of code.
netneurolab/netneurotools
49f83c023022ab606581cb10aec6a6282a306c48, 31 July 2026Availability: 1 check, the latest on 27 September 2026: the link answers
- 27 September 2026: the link answers
88 files
- docs/
conf.py , Python, 142 lines - examples/
plot_assortativity.py , Python, 200 lines - examples/
plot_connectivity_modes. , Python, 306 linespy - examples/
plot_consensus_clusterin , Python, 118 linesg.py - examples/
plot_coupling.py , Python, 279 lines - examples/
plot_perm_pvals.py , Python, 179 lines - netneurotools/
__init__.py , Python, 14 lines - netneurotools/
_version.py , Python, 683 lines - netneurotools/
datasets/ , Python, 61 lines__init__.py - netneurotools/
datasets/ , Python, 130 lines_mirchi2018.py - netneurotools/
datasets/ , Python, 403 linesdatasets_utils.py - netneurotools/
datasets/ , Python, 515 linesfetch_atlas.py - netneurotools/
datasets/ , Python, 584 linesfetch_project.py - netneurotools/
datasets/ , Python, 1,581 lines, 2 matchesfetch_template.py - netneurotools/
datasets/ , Python, 1 linetests/ __init__.py - netneurotools/
datasets/ , Python, 34 linestests/ test_datasets_utils.py - netneurotools/
datasets/ , Python, 287 linestests/ test_fetch.py - netneurotools/
experimental/ , Python, 4 lines__init__.py - netneurotools/
interface/ , Python, 36 lines__init__.py - netneurotools/
interface/ , Python, 255 linescifti.py - netneurotools/
interface/ , Python, 39 linesfreesurfer.py - netneurotools/
interface/ , Python, 50 linesgifti.py - netneurotools/
interface/ , Python, 12 linesinterface_utils.py - netneurotools/
interface/ , Python, 371 linessurf_parc.py - netneurotools/
interface/ , Python, 1 linetests/ __init__.py - netneurotools/
interface/ , Python, 65 linestests/ test_freesurfer.py - netneurotools/
interface/ , Python, 301 linestests/ test_transforms.py - netneurotools/
metrics/ , Python, 62 lines__init__.py - netneurotools/
metrics/ , Python, 1,130 linesbct.py - netneurotools/
metrics/ , Python, 1 linecommunication.py - netneurotools/
metrics/ , Python, 1 linecontrol.py - netneurotools/
metrics/ , Python, 63 linesmetrics_utils.py - netneurotools/
metrics/ , Python, 519 linesspreading.py - netneurotools/
metrics/ , Python, 625 linesstatistical.py - netneurotools/
metrics/ , Python, 1 linetests/ __init__.py - netneurotools/
metrics/ , Python, 24 linestests/ test_bct.py - netneurotools/
metrics/ , Python, 1 linetests/ test_communication.py - netneurotools/
metrics/ , Python, 1 linetests/ test_control.py - netneurotools/
metrics/ , Python, 1 linetests/ test_spreading.py - netneurotools/
metrics/ , Python, 1 linetests/ test_statistical.py - netneurotools/
modularity/ , Python, 26 lines__init__.py - netneurotools/
modularity/ , Python, 780 linesmodules.py - netneurotools/
modularity/ , Python, 1 linetests/ __init__.py - netneurotools/
modularity/ , Python, 139 linestests/ test_modules.py - netneurotools/
networks/ , Python, 33 lines__init__.py - netneurotools/
networks/ , Python, 294 lines, 1 matchconsensus.py - netneurotools/
networks/ , Python, 1 linegenerative.py - netneurotools/
networks/ , Python, 132 linesnetworks_utils.py - netneurotools/
networks/ , Python, 873 linesrandomize.py - netneurotools/
networks/ , Python, 1 linetests/ __init__.py - netneurotools/
networks/ , Python, 1 linetests/ test_consensus.py - netneurotools/
networks/ , Python, 1 linetests/ test_generative.py - netneurotools/
networks/ , Python, 12 linestests/ test_networks_utils.py - netneurotools/
networks/ , Python, 1 linetests/ test_randomize.py - netneurotools/
plotting/ , Python, 36 lines__init__.py - netneurotools/
plotting/ , Python, 101 linescolor_utils.py - netneurotools/
plotting/ , Python, 296 linesmpl_plotters.py - netneurotools/
plotting/ , Python, 489 linespysurfer_plotters.py - netneurotools/
plotting/ , Python, 1,783 linespyvista_plotters.py - netneurotools/
plotting/ , Python, 1 linetests/ __init__.py - netneurotools/
plotting/ , Python, 10 linestests/ test_color_utils.py - netneurotools/
plotting/ , Python, 39 linestests/ test_mpl.py - netneurotools/
plotting/ , Python, 28 linestests/ test_pysurfer.py - netneurotools/
plotting/ , Python, 9 linestests/ test_pyvista.py - netneurotools/
spatial/ , Python, 22 lines__init__.py - netneurotools/
spatial/ , Python, 1 linegaussian_random_field.py - netneurotools/
spatial/ , Python, 423 linesgenerative_models.py - netneurotools/
spatial/ , Python, 500 linesspatial_stats.py - netneurotools/
spatial/ , Python, 1 linetests/ __init__.py - netneurotools/
spatial/ , Python, 1 linetests/ test_grf.py - netneurotools/
spatial/ , Python, 177 linestests/ test_spatialstats.py - netneurotools/
stats/ , Python, 36 lines__init__.py - netneurotools/
stats/ , Python, 273 linescorrelation.py - netneurotools/
stats/ , Python, 278 linespermutation_test.py - netneurotools/
stats/ , Python, 256 linesregression.py - netneurotools/
stats/ , Python, 22 linesstats_utils.py - netneurotools/
stats/ , Python, 1 linetests/ __init__.py - netneurotools/
stats/ , Python, 106 linestests/ test_correlation.py - netneurotools/
stats/ , Python, 65 linestests/ test_permutation.py - netneurotools/
stats/ , Python, 14 linestests/ test_regression.py - resources/
generate_atl-cammoun2012 , Python, 241 lines_surface.py - setup.py, Python, 7 lines
- tools/
install_dependencies.sh , Shell, 32 lines - tools/
install_package.sh , Shell, 21 lines - tools/
run_checks.sh , Shell, 27 lines - versioneer.py, Python, 2,277 lines
- LICENSE, License, 29 lines
- README.rst, Text, 120 lines
rmarkello/abagen
dc4a007e4e902e51f97251390c8d1bbf7e58c6d3, 29 September 2023Availability: 1 check, the latest on 27 September 2026: the link answers
- 27 September 2026: the link answers
55 files
- abagen/
__init__.py , Python, 26 lines - abagen/
_version.py , Python, 683 lines - abagen/
allen.py , Python, 817 lines - abagen/
cli/ , Python, 1 line__init__.py - abagen/
cli/ , Python, 417 lines, 1 matchrun.py - abagen/
correct.py , Python, 626 lines, 1 match - abagen/
datasets/ , Python, 17 lines__init__.py - abagen/
datasets/ , Python, 546 linesfetchers.py - abagen/
datasets/ , Python, 604 linesutils.py - abagen/
images.py , Python, 586 lines - abagen/
info.py , Python, 164 lines - abagen/
io.py , Python, 430 lines - abagen/
matching.py , Python, 620 lines - abagen/
mouse/ , Python, 13 lines__init__.py - abagen/
mouse/ , Python, 120 linesgene.py - abagen/
mouse/ , Python, 178 linesio.py - abagen/
mouse/ , Python, 268 linesmouse.py - abagen/
mouse/ , Python, 171 linesstructure.py - abagen/
mouse/ , Python, 83 linesutils.py - abagen/
probes_.py , Python, 763 lines - abagen/
reporting.py , Python, 625 lines, 1 match - abagen/
samples_.py , Python, 491 lines - abagen/
surfaces.py , Python, 231 lines - abagen/
tests/ , Python, 1 line__init__.py - abagen/
tests/ , Python, 1 linecli/ __init__.py - abagen/
tests/ , Python, 118 linescli/ test_run.py - abagen/
tests/ , Python, 46 linesconftest.py - abagen/
tests/ , Python, 1 linedatasets/ __init__.py - abagen/
tests/ , Python, 198 linesdatasets/ test_fetchers.py - abagen/
tests/ , Python, 43 linesdatasets/ test_utils.py - abagen/
tests/ , Python, 1 linemouse/ __init__.py - abagen/
tests/ , Python, 37 linesmouse/ test_gene.py - abagen/
tests/ , Python, 52 linesmouse/ test_io.py - abagen/
tests/ , Python, 102 linesmouse/ test_mouse.py - abagen/
tests/ , Python, 66 linesmouse/ test_structure.py - abagen/
tests/ , Python, 136 linestest_allen.py - abagen/
tests/ , Python, 257 linestest_correct.py - abagen/
tests/ , Python, 266 linestest_images.py - abagen/
tests/ , Python, 128 linestest_io.py - abagen/
tests/ , Python, 183 linestest_matching.py - abagen/
tests/ , Python, 276 linestest_probes.py - abagen/
tests/ , Python, 58 linestest_reporting.py - abagen/
tests/ , Python, 322 linestest_samples.py - abagen/
tests/ , Python, 60 linestest_surfaces.py - abagen/
tests/ , Python, 56 linestest_transforms.py - abagen/
tests/ , Python, 88 linestest_utils.py - abagen/
transforms.py , Python, 185 lines - abagen/
utils.py , Python, 221 lines - docs/
conf.py , Python, 129 lines - setup.py, Python, 14 lines
- tools/
update_changes.sh , Shell, 54 lines - tools/
update_readme.py , Python, 33 lines - versioneer.py, Python, 2,277 lines
- LICENSE, License, 29 lines
- README.rst, Text, 163 lines
yaqiany/scfccoupling-high
11ba08a9c3ab879317f3e7207b02f17e95cf2cbb, 17 August 2023Availability: 1 check, the latest on 29 September 2026: the link answers
- 29 September 2026: the link answers
5 files
- LASSO_sparse.R, R, 121 lines
- decoupling.m, MATLAB, 173 lines, 1 match
- diffusion_maps.m, MATLAB, 48 lines
- loaddata.m, MATLAB, 29 lines
- README.md, Text, 21 lines
Code availability statement
The paper has a code availability statement. Its license (CC BY-NC-ND) does not allow reproducing it here; in short, from what the harvester recognized in it:
- it points to the authors' code: netneurolab/
netneurotools , rmarkello/abagen , yaqiany/scfccoupling-high
Read it in the paper: doi.org/10.1038/s42003-025-09444-3.
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:
- 3 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 143 scripts, each with its path and the digest of its content;
- 7 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.
Data availability statement
The paper has a data availability statement. Its license (CC BY-NC-ND) does not allow reproducing it here; in short, from what the harvester recognized in it:
- no repository, dataset or request procedure was recognized in it
Read it in the paper: doi.org/10.1038/s42003-025-09444-3.
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, 29 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 3 authors, 2 keywords, 6 MeSH terms, 76 references.
Cite
This paper
Facca, M., Del Felice, A., & Bertoldo, A. (2026). Decoupling of neurophysiological activity from structure mirrors global microarchitectural and neuromodulatory trends. Communications biology, 9(1), 520. https://
BibTeX
@article{facca2026decoup
author = {Facca, Massimiliano and Del Felice, Alessandra and Bertoldo, Alessandra},
title = {{Decoupling of neurophysiological activity from structure mirrors global microarchitectural and neuromodulatory trends}},
journal = {Communications biology},
year = {2026},
month = apr,
volume = {9},
number = {1},
pages = {520},
publisher = {Nature Publishing Group},
issn = {2399-3642},
doi = {10.1038/
url = {https://
pmid = {41963461},
pmcid = {PMC13069014}
}
RIS
TY - JOUR
AU - Facca, Massimiliano
AU - Del Felice, Alessandra
AU - Bertoldo, Alessandra
TI - Decoupling of neurophysiological activity from structure mirrors global microarchitectural and neuromodulatory trends
T2 - Communications biology
J2 - Commun Biol
PY - 2026
DA - 2026/
VL - 9
IS - 1
SP - 520
SN - 2399-3642
PB - Nature Publishing Group
DO - 10.1038/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1038/
"type": "article-journal",
"title": "Decoupling of neurophysiological activity from structure mirrors global microarchitectural and neuromodulatory trends",
"container-title": "Communications biology",
"author": [
{
"family": "Facca",
"given": "Massimiliano"
},
{
"family": "Del Felice",
"given": "Alessandra"
},
{
"family": "Bertoldo",
"given": "Alessandra"
}
],
"container-title-short":
"volume": "9",
"issue": "1",
"page": "520",
"DOI": "10.1038/
"PMID": "41963461",
"PMCID": "PMC13069014",
"ISSN": "2399-3642",
"publisher": "Nature Publishing Group",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
4,
10
]
]
}
}
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.7554/elife.103097 [code]
- Canonical neurodevelopmental trajectories of structural and functional manifolds.Journal: eLifeIn common: netneurotools, neuromaps, Brain Connectivity Toolbox, 7 other tools, 13 references
- [2] doi:10.1038/s43856-026-01707-2 [code]
- Decreased amyloid-related structure-function coupling in preclinical Alzheimer's disease.Journal: Communications medicineIn common: abagen, NiBabel, Statistics and Machine Learning Toolbox, 4 other tools, 16 references
- [3] doi:10.1038/s41467-026-71719-y [code]
- Brain functional-structural gradient coupling reflects development, behavior and genetic influences.Journal: Nature communicationsIn common: abagen, Nilearn, NiBabel, 6 other tools, 14 references
- [4] 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 medicineIn common: abagen, NiBabel, pandas, 2 other tools, cellular / molecular, 14 references
- [5] doi:10.1038/s41467-026-74466-2 [code]
- Neuromorphic hierarchical modular reservoirs.Journal: Nature communicationsIn common: netneurotools, neuromaps, Brain Connectivity Toolbox, 8 other tools, 6 references
- [6] doi:10.1371/journal.pbio.3003927 [code]
- Brain structural and functional connectivity converge prenatally but diverge after birth.Journal: PLoS biologyIn common: Brain Connectivity Toolbox, Statistics and Machine Learning Toolbox, 15 references
- [7] 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 AmericaIn common: Nilearn, NiBabel, scikit-learn, 4 other tools, cellular / molecular, 11 references
- [8] doi:10.1038/s41398-026-04025-2 [code]
- Brain energetic landscapes shape state dysregulation in major depressive disorder: a morphological network controllability perspective.Journal: Translational psychiatryIn common: neuromaps, Brain Connectivity Toolbox, Nilearn, 7 other tools, 7 references
- [9] doi:10.1038/s41593-026-02205-3 [code]
- Competitive interactions shape mammalian brain network dynamics and computation.Journal: Nature neuroscienceIn common: Brain Connectivity Toolbox, NiBabel, Statistics and Machine Learning Toolbox, 5 other tools, 9 references
- [10] doi:10.1186/s12916-026-04903-y [code]
- Structural connectome architecture and biological vulnerability shape cortical atrophy in cocaine use disorder.Journal: BMC medicineIn common: netneurotools, neuromaps, Nilearn, 6 other tools, 8 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.
Claim this paper
Correct its record
Say what each link of this record is, remove the ones that are not the paper's, add the ones that are missing. The correction becomes a new version of the record, in its Versions section.
Validate its tracing map
You validate the map as this page shows it: 3 repositories of the authors' code, each at its verified commit and with its license, 143 scripts, and 7 matches between paragraphs and code (see the Code and Map sections). It then receives a DOI on Zenodo, with you (your ORCID iD) and OSCR as its creators; the code itself is not deposited.
The map's fingerprint: sha256:ee8ee105bc9bf3d7…
Add the badge to its README
The badge links the code to this page. Copy one of these into the README of the paper's code: only you decide where it goes, and nothing is changed for you.
Markdown
[, paste the snippet at the top, then “Commit changes…” and, to review it first, “Create a new branch and start a pull request”. You open the pull request; OSCR asks for no permission.
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.
