netneurotools.datasets.fetch_fsaverage_curated
- netneurotools.datasets.fetch_fsaverage_curated(version='fsaverage', force=False, data_dir=None, verbose=1)[source]
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 – 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.
- Return type:
- 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). 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 filesExamples
Load the fsaverage curated template surfaces:
>>> surfaces = fetch_fsaverage_curated(version='fsaverage') >>> surfaces.keys() dict_keys(['white', 'pial', 'inflated', 'sphere', 'medial', 'sulc', 'vaavg'])
Access the pial surface GIFTI files:
>>> surfaces.pial 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 >>> pial_left = nib.load(surfaces.pial.L) >>> vertices = pial_left.agg_data('pointset') >>> faces = pial_left.agg_data('triangle') >>> print(f"Vertices: {vertices.shape}, Faces: {faces.shape}") Vertices: (163842, 3), Faces: (327680, 3)
Load and examine the sulcal depth data:
>>> sulc_left = nib.load(surfaces.sulc.L) >>> sulc_data = sulc_left.agg_data() >>> sulc_min, sulc_max = sulc_data.min(), sulc_data.max() >>> print(f"Sulcal depth range: {sulc_min:.2f} to {sulc_max:.2f}") Sulcal depth range: -1.78 to 1.88
References