class_docstr: Dataclass containing information about a label assigned to a variant.
  
  Attributes:
    is_confident: bool. True if we could confidently assign a label to this
      variant, False otherwise.
    variant: nucleus.protos.Variant proto that we assigned a label for.
    class_status: string. One of the keys in classes_dict
docstr: Computes the label value for an example.
  
  This function computes the TensorFlow label value (0, 1, 2, .. N-1) we train
  DeepVariant to predict.
  The `alt_alleles_indices` being passed in is from the candidates (not
  truth), so they could still have multiple alts. If any of the alt alleles
  matches the truth, we'll return the label of the truth.
  TODO: Fix multi-allelic cases. Add corresponding unit test cases.
  Note that this function currently doesn't handle multi-allelic cases
  correctly. For example it assumes `truth_alt` is the first one.
  
  Args:
    alt_alleles_indices: list[int]. A list of the alt_allele_indices.
  
  Returns:
    int >= 0. Label for the classes in `classes_dict`.
code: def label_for_alt_alleles(self, alt_alleles_indices):
      """Computes the label value for an example.
  
      This function computes the TensorFlow label value (0, 1, 2, .. N-1) we train
      DeepVariant to predict.
      The `alt_alleles_indices` being passed in is from the candidates (not
      truth), so they could still have multiple alts. If any of the alt alleles
      matches the truth, we'll return the label of the truth.
      TODO: Fix multi-allelic cases. Add corresponding unit test cases.
      Note that this function currently doesn't handle multi-allelic cases
      correctly. For example it assumes `truth_alt` is the first one.
  
      Args:
        alt_alleles_indices: list[int]. A list of the alt_allele_indices.
  
      Returns:
        int >= 0. Label for the classes in `classes_dict`.
      """
      if not self.truth_variant:
          return 0
  
      if self.truth_variant.calls:
          if self.truth_variant.calls[0].genotype == [0, 0]:
              return 0
  
      # If the ref of the candidate and the truth doesn't match, return 0 (ref).
      if (
          self.truth_variant.reference_bases
          != self.variant.reference_bases
      ):
          return 0
      true_class_status = self.get_class_status(self.truth_variant.info)
      truth_alt = self.truth_variant.alternate_bases[0]
      # Default is label 0. Usually reference.
      label = 0
      # Note that this logic below might not be the best when
      # `alt_alleles_indices` is a composite one, like [0, 1]. For now we'll
      # return the corresponding label if any of them matches truth_alt.
      for ind in alt_alleles_indices:
          if self.variant.alternate_bases[ind] == truth_alt:
              # allele in called variant is the same as truth_alt
              label = self.classes_dict[true_class_status]
  
      return label
  
file_path: deepvariant/deepvariant/labeler/customized_classes_labeler.py
imports: from deepvariant.labeler import positional_labeler
  from deepvariant.labeler import variant_labeler
  from third_party.nucleus.util import struct_utils
label_desc: Use image node_id 2 for calling the CustomizedClassesVariantLabel obj's underlying member method code with example usage: obj.label_for_alt_alleles(alt_alleles_indices) and returns: label, int, int, int