code: def make_mutant_tuples(
      example_protos, original_feature, index_to_mutate, viz_params
  ):
      """Return a list of `MutantFeatureValue`s and a list of mutant Examples.
  
      Args:
        example_protos: The examples to mutate.
        original_feature: A `OriginalFeatureList` that encapsulates the feature to
          mutate.
        index_to_mutate: The index of the int64_list or float_list to mutate.
        viz_params: A `VizParams` object that contains the UI state of the request.
  
      Returns:
        A list of `MutantFeatureValue`s and a list of mutant examples.
      """
      mutant_features = make_mutant_features(
          original_feature, index_to_mutate, viz_params
      )
      mutant_examples = []
      for example_proto in example_protos:
          for mutant_feature in mutant_features:
              copied_example = copy.deepcopy(example_proto)
              feature_name = (
                  mutant_feature.original_feature.feature_name
              )
  
              try:
                  feature_list = proto_value_for_feature(
                      copied_example, feature_name
                  )
                  if index_to_mutate is None:
                      new_values = mutant_feature.mutant_value
                  else:
                      new_values = list(feature_list)
                      new_values[
                          index_to_mutate
                      ] = mutant_feature.mutant_value
  
                  del feature_list[:]
                  feature_list.extend(new_values)
                  mutant_examples.append(copied_example)
              except (ValueError, IndexError):
                  # If the mutant value can't be set, still add the example to the
                  # mutant_example even though no change was made. This is necessary to
                  # allow for computation of global PD plots when not all examples have
                  # the same number of feature values for a feature.
                  mutant_examples.append(copied_example)
  
      return mutant_features, mutant_examples
  
imports: from __future__ import division
  from __future__ import print_function
  import collections
  import copy
  import json
  import math
  from absl import logging
  import numpy
  import tensorflow
  from google.protobuf import json_format
  from six import binary_type, string_types, integer_types
  from six import iteritems
  from six.moves import zip
  from inspect import signature
  from utils import common_utils
  from utils import platform_utils
  from tensorflow_serving.apis import classification_pb2
  from tensorflow_serving.apis import inference_pb2
  from tensorflow_serving.apis import regression_pb2
label_desc: Use image node_id 10 for calling a global function with example usage: make_mutant_tuples(example_protos, original_feature, index_to_mutate, viz_params) and returns: mutant_features,  mutant_examples