code: def _check_shapes_atlas_compatibility(
      n_voxels, n_timeframes, n_components=None, atlas_shape=None
  ):
      if n_components is not None:
          if np.sum(n_timeframes) < n_components:
              raise ValueError(
                  "Total number of timeframes is shorter than "
                  "number of components (%i < %i)"
                  % (np.sum(n_timeframes), n_components)
              )
  
      if atlas_shape is not None:
          n_supervoxels, n_atlas_voxels = atlas_shape
          if n_atlas_voxels != n_voxels:
              raise ValueError(
                  "Number of voxels in the atlas is not the same "
                  "as the number of voxels in input data (%i != %i)"
                  % (n_atlas_voxels, n_voxels)
              )
  
imports: import hashlib
  import logging
  import os
  import numpy
  import scipy
  from joblib import Parallel, delayed
  from brainiak.funcalign.srm import DetSRM
  from sklearn.base import BaseEstimator, TransformerMixin
  from sklearn.exceptions import NotFittedError
  import uuid
label_desc: Use image node_id 12 for calling a global function with example usage: _check_shapes_atlas_compatibility(n_voxels, n_timeframes, n_components, atlas_shape) without return types