code: def process_alt(header, ref, alt_str):  # pylint: disable=W0613
      
      # By its nature, this function contains a large number of case distinctions
      if "]" in alt_str or "[" in alt_str:
          return record.BreakEnd(*parse_breakend(alt_str))
      elif alt_str[0] == "." and len(alt_str) > 0:
          return record.SingleBreakEnd(record.FORWARD, alt_str[1:])
      elif alt_str[-1] == "." and len(alt_str) > 0:
          return record.SingleBreakEnd(record.REVERSE, alt_str[:-1])
      elif alt_str[0] == "<" and alt_str[-1] == ">":
          inner = alt_str[1:-1]
          return record.SymbolicAllele(inner)
      else:  # substitution
          return process_sub(ref, alt_str)
docs: Process alternative value using Header in ``header``