code: def read_bundles_2_subjects(
      subj_id="subj_1",
      metrics=("fa",),
      bundles=("af.left", "cst.right", "cc_1"),
  ):
      r"""Read images and streamlines from 2 subjects of the SNAIL dataset.
  
      Parameters
      ----------
      subj_id : string
          Either ``subj_1`` or ``subj_2``.
      metrics : array-like
          Either ['fa'] or ['t1'] or ['fa', 't1']
      bundles : array-like
          E.g., ['af.left', 'cst.right', 'cc_1']. See all the available bundles
          in the ``exp_bundles_maps/bundles_2_subjects`` directory of your
          ``$HOME/.dipy`` folder.
  
      Returns
      -------
      dix : dict
          Dictionary with data of the metrics and the bundles as keys.
  
      Notes
      -----
      If you are using these datasets please cite the following publications.
  
      References
      ----------
      .. [1] Renauld, E., M. Descoteaux, M. Bernier, E. Garyfallidis,
      K. Whittingstall, "Morphology of thalamus, LGN and optic radiation do not
      influence EEG alpha waves", Plos One (under submission), 2015.
  
      .. [2] Garyfallidis, E., O. Ocegueda, D. Wassermann,
      M. Descoteaux. Robust and efficient linear registration of fascicles in the
      space of streamlines , Neuroimage, 117:124-140, 2015.
  
      """
      dname = pjoin(
          dipy_home, "exp_bundles_and_maps", "bundles_2_subjects"
      )
  
      from dipy.io.streamline import load_tractogram
      from dipy.tracking.streamline import Streamlines
  
      res = {}
  
      if "t1" in metrics:
          data, affine = load_nifti(
              pjoin(dname, subj_id, "t1_warped.nii.gz")
          )
          res["t1"] = data
  
      if "fa" in metrics:
          fa, affine = load_nifti(
              pjoin(dname, subj_id, "fa_1x1x1.nii.gz")
          )
          res["fa"] = fa
  
      res["affine"] = affine
  
      for bun in bundles:
          streams = load_tractogram(
              pjoin(
                  dname, subj_id, "bundles", "bundles_" + bun + ".trk"
              ),
              "same",
              bbox_valid_check=False,
          ).streamlines
  
          streamlines = Streamlines(streams)
          res[bun] = streamlines
  
      return res
  
imports: import os
  import contextlib
  import logging
  import json
  import os.path
  from os.path import join
  from hashlib import md5
  from shutil import copyfileobj
  from tqdm.auto import tqdm
  import numpy
  import nibabel
  import tarfile
  import tempfile
  import zipfile
  from dipy.core.gradients import gradient_table, gradient_table_from_gradient_strength_bvecs
  from dipy.io.gradients import read_bvals_bvecs
  from dipy.io.image import load_nifti, load_nifti_data, save_nifti
  from dipy.io.streamline import load_trk
  from dipy.utils.optpkg import optional_package, TripWire
  from urllib.request import urlopen
label_desc: Use image node_id 26 for calling a global function with example usage: read_bundles_2_subjects(subj_id, metrics, bundles) and returns: res