def process_alt(header, ref, alt_str):  # pylint: disable=W0613
    """Process alternative value using Header in ``header``"""
    # 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)
Process alternative value using Header in ``header``