def mutant_to_str(pos, stdvariant, variant, gap_string='-'):
    """Parse mutant to string

    Return HGVS-like format:

    (109, A, G) -> 109A>G
    (200, T, -) -> 200delT
    (360, -, C) -> 360insC
    (450, A, A) -> 450A=A

    Args:
    pos -- position
    stdvariant -- variant of standard sequence
    variant -- variant of align sequence
    gap_string -- a string represent a gap, default '-'

    """

    if stdvariant == variant:
        return "{}{}={}".format(pos, stdvariant, variant)

    if stdvariant == gap_string:
        mut = "{}ins{}".format(pos, variant)
    elif variant == gap_string:
        mut = "{}del{}".format(pos, stdvariant)
    else:
        mut = "{}{}>{}".format(pos, stdvariant, variant)
    return mut