code: def normalize_allele_name(raw_allele, omit_dra1=False, infer_class2_pair=True):
      cache_key = (raw_allele, omit_dra1, infer_class2_pair)
      if cache_key in _normalized_allele_cache:
          return _normalized_allele_cache[cache_key]
      parsed_alleles = parse_classi_or_classii_allele_name(
          raw_allele, infer_pair=infer_class2_pair)
      species = parsed_alleles[0].species
      normalized_list = [species]
      if omit_dra1 and len(parsed_alleles) == 2:
          alpha, beta = parsed_alleles
          if alpha == _DRA1_0101:
              parsed_alleles = [beta]
      for parsed_allele in parsed_alleles:
          if len(parsed_allele.allele_family) > 0:
              normalized_list.append("%s*%s:%s" % (
                  parsed_allele.gene,
                  parsed_allele.allele_family,
                  parsed_allele.allele_code))
          else:
              normalized_list.append("%s%s" % (
                  parsed_allele.gene,
                  parsed_allele.allele_code))
      normalized = "-".join(normalized_list)
      _normalized_allele_cache[cache_key] = normalized
      return normalized