Note
Go to the end to download the full example code.
Selecting preconfigured parcellations
Just as for atlas objects, siibra provides an instance table of preconfigured brain parcellations.
We start by loading the library
import siibra
The instance table can list the keys of all parcellations predefined in siibra. Note that this includes parcellations for all supported atlases.
['DEEP_WHITE_MATTER_FIBRE_BUNDLES', 'SUPERFICIAL_FIBRE_BUNDLES', 'CORTICAL_LAYER_SEGMENTATION_OF_THE_BIGBRAIN_MODEL', 'DIFUMO_ATLAS_1024_DIMENSIONS', 'DIFUMO_ATLAS_128_DIMENSIONS', 'DIFUMO_ATLAS_256_DIMENSIONS', 'DIFUMO_ATLAS_512_DIMENSIONS', 'DIFUMO_ATLAS_64_DIMENSIONS', 'DESIKAN_KILLIANY_ATLAS_2006', 'HARVARDOXFORD_CORT_MAXPROB_THR0', 'HARVARDOXFORD_CORT_MAXPROB_THR25', 'ISOCORTEX_SEGMENTATION', 'JULICH_BRAIN_CYTOARCHITECTONIC_ATLAS_V1_18', 'JULICH_BRAIN_CYTOARCHITECTONIC_ATLAS_V2_9', 'JULICH_BRAIN_CYTOARCHITECTONIC_ATLAS_V3_0_3', 'JULICH_BRAIN_CYTOARCHITECTONIC_ATLAS_V3_1', 'MARSATLAS_CORTICAL_PARCELLATION_MODEL', 'MEBRAINS_POPULATION_BASED_MONKEY_PARCELLATION', 'ALLEN_MOUSE_COMMON_COORDINATE_FRAMEWORK_V3_2015', 'ALLEN_MOUSE_COMMON_COORDINATE_FRAMEWORK_V3_2017', 'WAXHOLM_SPACE_ATLAS_OF_THE_SPRAGUE_DAWLEY_RAT_BRAIN_V1_01', 'WAXHOLM_SPACE_ATLAS_OF_THE_SPRAGUE_DAWLEY_RAT_BRAIN_V2', 'WAXHOLM_SPACE_ATLAS_OF_THE_SPRAGUE_DAWLEY_RAT_BRAIN_V3', 'WAXHOLM_SPACE_ATLAS_OF_THE_SPRAGUE_DAWLEY_RAT_BRAIN_V4', 'ATLAS_OF_THE_SHORT_FIBER_BUNDLES_INFERRED_FROM_THE_HUMAN_CONNECTOME_PROJECT_DIFFUSION_MRI_DATASET', 'VIRTUAL_EPILEPTIC_PATIENT_ATLAS', 'PRERELEASE_A_PROBABILISTIC_FUNCTIONAL_ATLAS_OF_HUMAN_OCCIPITO_TEMPORAL_VISUAL_CORTEX', 'VON_ECONOMO_KOSKINAS_BRAIN_ATLAS']
Fetching an object works in the same way as for siibra.atlases (see Atlases and brain parcellations)
julich_brain = siibra.parcellations.get('julich')
Parcellations typically refer to entities in the EBRAINS knowledge graph, modelled in the MINDS and openMINDS standards. siibra stores their identifiers. Note that this holds for spaces and other concepts as well, as will be seen in the next examples.
print(julich_brain.id)
minds/core/parcellationatlas/v1.0.0/94c1125b-b87e-45e4-901c-00daee7f2579-310
Also, you can display the doi/url of the related dataset/publication using
print(julich_brain.urls)
['https://doi.org/10.25493/KNSN-XB4']
Typically however, we are only interested in the parcellations supported by a given atlas. Atlases provide their own parcellation table for this purpose, which includes the relevant subset of the parcellations.
atlas = siibra.atlases.get('human')
atlas.parcellations.keys
['DEEP_WHITE_MATTER_FIBRE_BUNDLES', 'SUPERFICIAL_FIBRE_BUNDLES', 'CORTICAL_LAYER_SEGMENTATION_OF_THE_BIGBRAIN_MODEL', 'DIFUMO_ATLAS_1024_DIMENSIONS', 'DIFUMO_ATLAS_128_DIMENSIONS', 'DIFUMO_ATLAS_256_DIMENSIONS', 'DIFUMO_ATLAS_512_DIMENSIONS', 'DIFUMO_ATLAS_64_DIMENSIONS', 'DESIKAN_KILLIANY_ATLAS_2006', 'ISOCORTEX_SEGMENTATION', 'JULICH_BRAIN_CYTOARCHITECTONIC_ATLAS_V1_18', 'JULICH_BRAIN_CYTOARCHITECTONIC_ATLAS_V2_9', 'JULICH_BRAIN_CYTOARCHITECTONIC_ATLAS_V3_0_3', 'JULICH_BRAIN_CYTOARCHITECTONIC_ATLAS_V3_1', 'MARSATLAS_CORTICAL_PARCELLATION_MODEL', 'ATLAS_OF_THE_SHORT_FIBER_BUNDLES_INFERRED_FROM_THE_HUMAN_CONNECTOME_PROJECT_DIFFUSION_MRI_DATASET', 'VIRTUAL_EPILEPTIC_PATIENT_ATLAS', 'PRERELEASE_A_PROBABILISTIC_FUNCTIONAL_ATLAS_OF_HUMAN_OCCIPITO_TEMPORAL_VISUAL_CORTEX', 'VON_ECONOMO_KOSKINAS_BRAIN_ATLAS']
These are instance tables, and can be used just like siibra.parcellations:
atlas.parcellations.get('julich') # will return the latest version per default
<Parcellation(identifier='minds/core/parcellationatlas/v1.0.0/94c1125b-b87e-45e4-901c-00daee7f2579-310', name='Julich-Brain Cytoarchitectonic Atlas (v3.1)', species='Homo sapiens')>
Note that this specification matched multiple objects. Since siibra was able to sort them, it returned the first in the list, which is the one with the newest version. We can of course refine the specification to fetch another version.
print(atlas.parcellations.get('julich').version)
atlas.parcellations.get('julich 1.18').version
3.1.0
1.18
We can also explicitly request a supported parcellation object from the atlas, which has the same effect as accessing the Registry.
atlas.parcellations.get('Deep fibre bundles')
julich_brain = atlas.parcellations.get('julich 2.9')
The resulting parcellation is a semantic object, including
general information like the parcellation name, a description and related publications
the region hierarchy
functions to access parcellation maps in different reference spaces
functions to find and access regions and region masks
Parcellation maps and brain regions are covered in the next examples. For now let’s just look at a few metadata fields:
print("Name: ", julich_brain.name)
print("Id: ", julich_brain.id)
print("Modality:", julich_brain.modality)
print()
print(julich_brain.description)
print()
for p in julich_brain.publications:
print(p['citation'])
Name: Julich-Brain Cytoarchitectonic Atlas (v2.9)
Id: minds/core/parcellationatlas/v1.0.0/94c1125b-b87e-45e4-901c-00daee7f2579-290
Modality: cytoarchitecture
This dataset contains the whole-brain parcellation of the Julich-Brain Cytoarchitectonic Atlas in the MNI ICBM 152 2009c nonlinear asymmetric reference space (Evans et al., 2012). The parcellation is derived from the individual probability maps (PMs) of the cytoarchitectonic regions released in the Julich-Brain Cytoarchitectonic Atlas, that are further combined into a Maximum Probability Map (MPM). The MPM is calculated by considering for each voxel the probability of all cytoarchitectonic areas released in the atlas, and determining the most probable assignment (Eickhoff 2005). Gap maps complement cortical maps to achieve full cortical coverage.
Amunts, K., Mohlberg, H., Bludau, S., Zilles, K. (2020). Julich-Brain – A 3D probabilistic atlas of human brain’s cytoarchitecture. Science 369, 988-992
Dataset name: Julich-Brain Atlas, cytoarchitectonic maps (v2.9)
Total running time of the script: (0 minutes 8.656 seconds)
Estimated memory usage: 125 MB