code: def read_qtdMRI_test_retest_2subjects():
      """Load test-retest qt-dMRI acquisitions of two C57Bl6 mice. These
      datasets were used to study test-retest reproducibility of time-dependent
      q-space indices (q$\tau$-indices) in the corpus callosum of two mice [1].
      The data itself and its details are publicly available and can be cited at
      [2].
  
      The test-retest diffusion MRI spin echo sequences were acquired from two
      C57Bl6 wild-type mice on an 11.7 Tesla Bruker scanner. The test and retest
      acquisition were taken 48 hours from each other. The (processed) data
      consists of 80x160x5 voxels of size 110x110x500μm. Each data set consists
      of 515 Diffusion-Weighted Images (DWIs) spread over 35 acquisition shells.
      The shells are spread over 7 gradient strength shells with a maximum
      gradient strength of 491 mT/m, 5 pulse separation shells between
      [10.8 - 20.0]ms, and a pulse length of 5ms. We manually created a brain
      mask and corrected the data from eddy currents and motion artifacts using
      FSL's eddy. A region of interest was then drawn in the middle slice in the
      corpus callosum, where the tissue is reasonably coherent.
  
      Returns
      -------
      data : list of length 4
          contains the dwi datasets ordered as
          (subject1_test, subject1_retest, subject2_test, subject2_retest)
      cc_masks : list of length 4
          contains the corpus callosum masks ordered in the same order as data.
      gtabs : list of length 4
          contains the qt-dMRI gradient tables of the data sets.
  
      References
      ----------
      .. [1] Fick, Rutger HJ, et al. "Non-Parametric GraphNet-Regularized
          Representation of dMRI in Space and Time", Medical Image Analysis,
          2017.
      .. [2] Wassermann, Demian, et al., "Test-Retest qt-dMRI datasets for
          `Non-Parametric GraphNet-Regularized Representation of dMRI in Space
          and Time'". doi:10.5281/zenodo.996889, 2017.
      """
      data = []
      data_names = [
          "subject1_dwis_test.nii.gz",
          "subject1_dwis_retest.nii.gz",
          "subject2_dwis_test.nii.gz",
          "subject2_dwis_retest.nii.gz",
      ]
      for data_name in data_names:
          data_loc = pjoin(
              dipy_home, "qtdMRI_test_retest_2subjects", data_name
          )
          data.append(load_nifti_data(data_loc))
  
      cc_masks = []
      mask_names = [
          "subject1_ccmask_test.nii.gz",
          "subject1_ccmask_retest.nii.gz",
          "subject2_ccmask_test.nii.gz",
          "subject2_ccmask_retest.nii.gz",
      ]
      for mask_name in mask_names:
          mask_loc = pjoin(
              dipy_home, "qtdMRI_test_retest_2subjects", mask_name
          )
          cc_masks.append(load_nifti_data(mask_loc))
  
      gtabs = []
      gtab_txt_names = [
          "subject1_scheme_test.txt",
          "subject1_scheme_retest.txt",
          "subject2_scheme_test.txt",
          "subject2_scheme_retest.txt",
      ]
      for gtab_txt_name in gtab_txt_names:
          txt_loc = pjoin(
              dipy_home, "qtdMRI_test_retest_2subjects", gtab_txt_name
          )
          qtdmri_scheme = np.loadtxt(txt_loc, skiprows=1)
          bvecs = qtdmri_scheme[:, 1:4]
          G = (
              qtdmri_scheme[:, 4] / 1e3
          )  # because dipy takes T/mm not T/m
          small_delta = qtdmri_scheme[:, 5]
          big_delta = qtdmri_scheme[:, 6]
          gtab = gradient_table_from_gradient_strength_bvecs(
              G, bvecs, big_delta, small_delta
          )
          gtabs.append(gtab)
  
      return data, cc_masks, gtabs
  
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 10 for calling a global function with example usage: read_qtdMRI_test_retest_2subjects() and returns: data,  cc_masks,  gtabs