code: def fetch_atlas_pauli_2017(version="prob", data_dir=None, verbose=1):
      """Download the Pauli et al. (2017) atlas.
  
      This atlas has 12 subcortical nodes in total. See
      :footcite:t:`pauli_atlas` and :footcite:t:`Pauli2018`.
  
      Parameters
      ----------
      version : {'prob', 'det'}, default='prob'
          Which version of the atlas should be download. This can be
          'prob' for the :term:`Probabilistic atlas`, or 'det' for the
          :term:`Deterministic atlas`.
      %(data_dir)s
      %(verbose)s
  
      Returns
      -------
      data : :class:`sklearn.utils.Bunch`
          Dictionary-like object, contains:
  
              - 'maps': :obj:`str`, path to nifti file containing the
                :class:`~nibabel.nifti1.Nifti1Image`. If ``version='prob'``,
                the image shape is ``(193, 229, 193, 16)``. If ``version='det'``
                the image shape is ``(198, 263, 212)``, and values are indices
                in the list of labels (integers from 0 to 16).
              - 'labels': :obj:`list` of :obj:`str`. List of region names. The
                list contains 16 values for both
                :term:`probabilitic<Probabilistic atlas>` and
                :term:`deterministic<Deterministic atlas>` versions.
  
                  .. warning::
                      For the :term:`deterministic<Deterministic atlas>` version,
                      'Background' is not included in the list of labels.
                      To have proper indexing, you should either manually add
                      'Background' to the list of labels:
  
                      .. code-block:: python
  
                          # Prepend background label
                          data.labels.insert(0, "Background")
  
                      Or be careful that the indexing should be offset by one:
  
                      .. code-block:: python
  
                          # Get region ID of label 'NAC' when 'background' was
                          # not added to the list of labels:
                          # idx_nac should be equal to 3:
                          idx_nac = data.labels.index("NAC") + 1
  
              - 'description': :obj:`str`, short description of the atlas and
                some references.
  
      References
      ----------
      .. footbibliography::
  
      """
      if version == "prob":
          url_maps = "https://osf.io/w8zq2/download"
          filename = "pauli_2017_prob.nii.gz"
      elif version == "det":
          url_maps = "https://osf.io/5mqfx/download"
          filename = "pauli_2017_det.nii.gz"
      else:
          raise NotImplementedError(
              f"{version} is no valid version for the Pauli atlas"
          )
  
      url_labels = "https://osf.io/6qrcb/download"
      dataset_name = "pauli_2017"
  
      data_dir = get_dataset_dir(
          dataset_name, data_dir=data_dir, verbose=verbose
      )
  
      files = [
          (filename, url_maps, {"move": filename}),
          ("labels.txt", url_labels, {"move": "labels.txt"}),
      ]
      atlas_file, labels = fetch_files(data_dir, files)
  
      labels = np.loadtxt(labels, dtype=str)[:, 1].tolist()
  
      fdescr = get_dataset_descr(dataset_name)
  
      return Bunch(maps=atlas_file, labels=labels, description=fdescr)
  
imports: import json
  import os
  import re
  import shutil
  import warnings
  import xml.etree.ElementTree
  from pathlib import Path
  from tempfile import mkdtemp
  import nibabel
  import numpy
  import pandas
  from sklearn.utils import Bunch
  from .._utils import check_niimg, fill_doc
  from ..image import get_data, new_img_like, reorder_img
  from ._utils import fetch_files, get_dataset_descr, get_dataset_dir
label_desc: Use image node_id 23 for calling a global function with example usage: fetch_atlas_pauli_2017(version, data_dir, verbose) and returns: Bunch