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.
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.