code: def _create_mt_sim(
      mevals, angles, fractions, S0, SNR, half_sphere=False
  ):
      _, fbvals, fbvecs = get_fnames("small_64D")
  
      bvals, bvecs = read_bvals_bvecs(fbvals, fbvecs)
  
      gtab = gradient_table(bvals, bvecs)
  
      S, sticks = multi_tensor(
          gtab, mevals, S0, angles=angles, fractions=fractions, snr=SNR
      )
  
      sphere = get_sphere("symmetric724").subdivide(2)
  
      if half_sphere:
          sphere = HemiSphere.from_sphere(sphere)
  
      odf_gt = multi_tensor_odf(
          sphere.vertices, mevals, angles=angles, fractions=fractions
      )
  
      return odf_gt, sticks, sphere
  
imports: import warnings
  import numpy
  import pickle
  from io import BytesIO
  from numpy.testing import assert_array_equal, assert_array_almost_equal, assert_almost_equal, assert_equal, assert_
  from dipy.reconst.odf import OdfFit, OdfModel, gfa
  from dipy.direction.peaks import peaks_from_model, peak_directions, peak_directions_nl, reshape_peaks_for_visualization
  from dipy.core.subdivide_octahedron import create_unit_hemisphere
  from dipy.core.sphere import unit_icosahedron
  from dipy.sims.voxel import multi_tensor, multi_tensor_odf
  from dipy.data import get_fnames, get_sphere, default_sphere
  from dipy.core.gradients import gradient_table, GradientTable
  from dipy.core.sphere_stats import angular_similarity
  from dipy.core.sphere import HemiSphere
  from dipy.io.gradients import read_bvals_bvecs
  from dipy.reconst.shm import descoteaux07_legacy_msg, tournier07_legacy_msg
  from dipy.testing.decorators import set_random_number_generator
label_desc: Use image node_id 4 for calling a global function with example usage: _create_mt_sim(mevals, angles, fractions, S0, SNR, half_sphere) and returns: odf_gt,  sticks,  sphere