atlas: Atlas initialisation#

Tools for initialising parameters corresponding to brain atlases.

Neuroimaging atlases are principally defined and distributed with reference to either volumetric or surface-based coordinate spaces. Additionally, atlases might be either discrete-valued, hard-label parcellations or continuous-valued maps that can overlap with one another. The atlas initialisation module is designed to handle these use cases, together with random or unstructured initialisations that do not leverage prior knowledge and are thus unbiased by it.

The initialisation class itself, AtlasInit, takes as its main, non-optional argument an instance of an Atlas object. All atlas objects subclass the abstract base class BaseAtlas and incorporate a combination of atlas mixins to implement diverse functionalities. These subclasses generally take a pointer to a reference as an input argument; this reference either forms the base for the atlas (for classes that use previously existing knowledge annotations) or defines its dimensions (for classes based on random initialisations). Existing subclasses include

  • DiscreteVolumetricAtlas implements a volumetric atlas with discrete parcels, loaded from a single reference image and a single volume in which each unique integer identifies a single parcel.

  • MultiVolumetricAtlas implements a volumetric atlas whose parcels are each encoded in a separate volume of the reference image.

  • MultifileVolumetricAtlas implements a volumetric atlas whose parcels (either discrete or continuous) are each encoded in a separate reference image file.

  • CortexSubcortexCIfTIAtlas implements a surface-based atlas with discrete parcels, loaded from a CIfTI image. Parcels are compartmentalised into left and right cerebral cortex and subcortex.

  • DirichletInitVolumetricAtlas implements a volumetric atlas whose voxel-label annotations are initialised as random, i.i.d. samples from a Dirichlet distribution.

  • DirichletInitSurfaceAtlas implements a surface-based atlas compartmentalised into left and right cerebral cortex and subcortex. Voxel- and vertex-label annotations are initialised as random, i.i.d. samples from a Dirichlet distribution.

Note

For cases not handled by the existing subclasses, we would eventually like the atlas mixins to be flexible and robust enough so that users can straightforwardly design new atlas subclasses. In reality, we are not currently close to this objective.

../_images/atlas_linearmap.svg

Each subclass instance of BaseAtlas has a maps attribute that stores voxel-label annotations as a dictionary. The keys of this dictionary correspond to isolated compartments of the atlas. (The single key 'all' is used for atlases not compartmentalised.) The dictionary values are \(L_{compartment} \times V_{compartment}\) matrices, where \(V_{compartment}\) is the number of spatial locations (voxels or vertices) in the compartment, and \(L_{compartment}\) is the number of distinct parcel labels in the compartment. These matrices can be used in a linear mapping to reduce the dimension of an input time series from the number of voxels to the number of parcels. See the linear atlas module for more details.