"""Auto-generated amino acid data with calculated masses"""
# DO NOT EDIT - generated by gen_amino_acids.py

from enum import StrEnum

from .dclass import AminoAcidInfo


class AminoAcid(StrEnum):
    """Enumeration of amino acid single-letter codes."""
    A = "A"
    B = "B"
    C = "C"
    D = "D"
    E = "E"
    F = "F"
    G = "G"
    H = "H"
    I = "I"
    J = "J"
    K = "K"
    L = "L"
    M = "M"
    N = "N"
    O = "O"
    P = "P"
    Q = "Q"
    R = "R"
    S = "S"
    T = "T"
    U = "U"
    V = "V"
    W = "W"
    X = "X"
    Y = "Y"
    Z = "Z"

    @classmethod
    def from_str(cls, aa: str) -> "AminoAcid":
        """Get AminoAcid enum from string"""
        return cls(aa.upper())


AMINO_ACID_INFOS: dict[AminoAcid, AminoAcidInfo] = {
    AminoAcid.A: AminoAcidInfo(
        id=AminoAcid.A,
        name="Alanine",
        three_letter_code="Ala",
        formula="C3H5NO",
        monoisotopic_mass=71.0371137851,
        average_mass=71.0780195962,
        dict_composition={'C': 3, 'H': 5, 'N': 1, 'O': 1},
        is_mass_ambiguous=False,
        is_ambiguous=False,
    ),
    AminoAcid.B: AminoAcidInfo(
        id=AminoAcid.B,
        name="Asparagine or Aspartic acid",
        three_letter_code="Asx",
        formula=None,
        monoisotopic_mass=None,
        average_mass=None,
        dict_composition=None,
        is_mass_ambiguous=True,
        is_ambiguous=True,
    ),
    AminoAcid.C: AminoAcidInfo(
        id=AminoAcid.C,
        name="Cysteine",
        three_letter_code="Cys",
        formula="C3H5NOS",
        monoisotopic_mass=103.0091849595,
        average_mass=103.1428070024,
        dict_composition={'C': 3, 'H': 5, 'N': 1, 'O': 1, 'S': 1},
        is_mass_ambiguous=False,
        is_ambiguous=False,
    ),
    AminoAcid.D: AminoAcidInfo(
        id=AminoAcid.D,
        name="Aspartic acid",
        three_letter_code="Asp",
        formula="C4H5NO3",
        monoisotopic_mass=115.0269430243,
        average_mass=115.0875653416,
        dict_composition={'C': 4, 'H': 5, 'N': 1, 'O': 3},
        is_mass_ambiguous=False,
        is_ambiguous=False,
    ),
    AminoAcid.E: AminoAcidInfo(
        id=AminoAcid.E,
        name="Glutamic acid",
        three_letter_code="Glu",
        formula="C5H7NO3",
        monoisotopic_mass=129.0425930888,
        average_mass=129.1141827465,
        dict_composition={'C': 5, 'H': 7, 'N': 1, 'O': 3},
        is_mass_ambiguous=False,
        is_ambiguous=False,
    ),
    AminoAcid.F: AminoAcidInfo(
        id=AminoAcid.F,
        name="Phenylalanine",
        three_letter_code="Phe",
        formula="C9H9NO",
        monoisotopic_mass=147.0684139141,
        average_mass=147.1741979929,
        dict_composition={'C': 9, 'H': 9, 'N': 1, 'O': 1},
        is_mass_ambiguous=False,
        is_ambiguous=False,
    ),
    AminoAcid.G: AminoAcidInfo(
        id=AminoAcid.G,
        name="Glycine",
        three_letter_code="Gly",
        formula="C2H3NO",
        monoisotopic_mass=57.0214637207,
        average_mass=57.0514021914,
        dict_composition={'C': 2, 'H': 3, 'N': 1, 'O': 1},
        is_mass_ambiguous=False,
        is_ambiguous=False,
    ),
    AminoAcid.H: AminoAcidInfo(
        id=AminoAcid.H,
        name="Histidine",
        three_letter_code="His",
        formula="C6H7N3O",
        monoisotopic_mass=137.0589118585,
        average_mass=137.1395152175,
        dict_composition={'C': 6, 'H': 7, 'N': 3, 'O': 1},
        is_mass_ambiguous=False,
        is_ambiguous=False,
    ),
    AminoAcid.I: AminoAcidInfo(
        id=AminoAcid.I,
        name="Isoleucine",
        three_letter_code="Ile",
        formula="C6H11NO",
        monoisotopic_mass=113.0840639785,
        average_mass=113.1578718108,
        dict_composition={'C': 6, 'H': 11, 'N': 1, 'O': 1},
        is_mass_ambiguous=False,
        is_ambiguous=False,
    ),
    AminoAcid.J: AminoAcidInfo(
        id=AminoAcid.J,
        name="Leucine or Isoleucine",
        three_letter_code="Xle",
        formula="C6H11NO",
        monoisotopic_mass=113.0840639785,
        average_mass=113.1578718108,
        dict_composition={'C': 6, 'H': 11, 'N': 1, 'O': 1},
        is_mass_ambiguous=False,
        is_ambiguous=True,
    ),
    AminoAcid.K: AminoAcidInfo(
        id=AminoAcid.K,
        name="Lysine",
        three_letter_code="Lys",
        formula="C6H12N2O",
        monoisotopic_mass=128.0949630152,
        average_mass=128.1725157763,
        dict_composition={'C': 6, 'H': 12, 'N': 2, 'O': 1},
        is_mass_ambiguous=False,
        is_ambiguous=False,
    ),
    AminoAcid.L: AminoAcidInfo(
        id=AminoAcid.L,
        name="Leucine",
        three_letter_code="Leu",
        formula="C6H11NO",
        monoisotopic_mass=113.0840639785,
        average_mass=113.1578718108,
        dict_composition={'C': 6, 'H': 11, 'N': 1, 'O': 1},
        is_mass_ambiguous=False,
        is_ambiguous=False,
    ),
    AminoAcid.M: AminoAcidInfo(
        id=AminoAcid.M,
        name="Methionine",
        three_letter_code="Met",
        formula="C5H9NOS",
        monoisotopic_mass=131.0404850885,
        average_mass=131.1960418121,
        dict_composition={'C': 5, 'H': 9, 'N': 1, 'O': 1, 'S': 1},
        is_mass_ambiguous=False,
        is_ambiguous=False,
    ),
    AminoAcid.N: AminoAcidInfo(
        id=AminoAcid.N,
        name="Asparagine",
        three_letter_code="Asn",
        formula="C4H6N2O2",
        monoisotopic_mass=114.0429274414,
        average_mass=114.1028043828,
        dict_composition={'C': 4, 'H': 6, 'N': 2, 'O': 2},
        is_mass_ambiguous=False,
        is_ambiguous=False,
    ),
    AminoAcid.O: AminoAcidInfo(
        id=AminoAcid.O,
        name="Pyrrolysine",
        three_letter_code="Pyl",
        formula="C12H19N3O2",
        monoisotopic_mass=237.1477268648,
        average_mass=237.2986245709,
        dict_composition={'C': 12, 'H': 19, 'N': 3, 'O': 2},
        is_mass_ambiguous=False,
        is_ambiguous=False,
    ),
    AminoAcid.P: AminoAcidInfo(
        id=AminoAcid.P,
        name="Proline",
        three_letter_code="Pro",
        formula="C5H7NO",
        monoisotopic_mass=97.0527638496,
        average_mass=97.1153728978,
        dict_composition={'C': 5, 'H': 7, 'N': 1, 'O': 1},
        is_mass_ambiguous=False,
        is_ambiguous=False,
    ),
    AminoAcid.Q: AminoAcidInfo(
        id=AminoAcid.Q,
        name="Glutamine",
        three_letter_code="Gln",
        formula="C5H8N2O2",
        monoisotopic_mass=128.0585775058,
        average_mass=128.1294217877,
        dict_composition={'C': 5, 'H': 8, 'N': 2, 'O': 2},
        is_mass_ambiguous=False,
        is_ambiguous=False,
    ),
    AminoAcid.R: AminoAcidInfo(
        id=AminoAcid.R,
        name="Arginine",
        three_letter_code="Arg",
        formula="C6H12N4O",
        monoisotopic_mass=156.1011110240,
        average_mass=156.1859221992,
        dict_composition={'C': 6, 'H': 12, 'N': 4, 'O': 1},
        is_mass_ambiguous=False,
        is_ambiguous=False,
    ),
    AminoAcid.S: AminoAcidInfo(
        id=AminoAcid.S,
        name="Serine",
        three_letter_code="Ser",
        formula="C3H5NO2",
        monoisotopic_mass=87.0320284047,
        average_mass=87.0774245206,
        dict_composition={'C': 3, 'H': 5, 'N': 1, 'O': 2},
        is_mass_ambiguous=False,
        is_ambiguous=False,
    ),
    AminoAcid.T: AminoAcidInfo(
        id=AminoAcid.T,
        name="Threonine",
        three_letter_code="Thr",
        formula="C4H7NO2",
        monoisotopic_mass=101.0476784692,
        average_mass=101.1040419254,
        dict_composition={'C': 4, 'H': 7, 'N': 1, 'O': 2},
        is_mass_ambiguous=False,
        is_ambiguous=False,
    ),
    AminoAcid.U: AminoAcidInfo(
        id=AminoAcid.U,
        name="Selenocysteine",
        three_letter_code="Sec",
        formula="C3H5NOSe",
        monoisotopic_mass=150.9536355851,
        average_mass=150.0374081533,
        dict_composition={'C': 3, 'H': 5, 'N': 1, 'O': 1, 'Se': 1},
        is_mass_ambiguous=False,
        is_ambiguous=False,
    ),
    AminoAcid.V: AminoAcidInfo(
        id=AminoAcid.V,
        name="Valine",
        three_letter_code="Val",
        formula="C5H9NO",
        monoisotopic_mass=99.0684139141,
        average_mass=99.1312544059,
        dict_composition={'C': 5, 'H': 9, 'N': 1, 'O': 1},
        is_mass_ambiguous=False,
        is_ambiguous=False,
    ),
    AminoAcid.W: AminoAcidInfo(
        id=AminoAcid.W,
        name="Tryptophan",
        three_letter_code="Trp",
        formula="C11H10N2O",
        monoisotopic_mass=186.0793129507,
        average_mass=186.2103137519,
        dict_composition={'C': 11, 'H': 10, 'N': 2, 'O': 1},
        is_mass_ambiguous=False,
        is_ambiguous=False,
    ),
    AminoAcid.X: AminoAcidInfo(
        id=AminoAcid.X,
        name="Any amino acid",
        three_letter_code="Xaa",
        formula="",
        monoisotopic_mass=0.0000000000,
        average_mass=0.0000000000,
        dict_composition={},
        is_mass_ambiguous=False,
        is_ambiguous=False,
    ),
    AminoAcid.Y: AminoAcidInfo(
        id=AminoAcid.Y,
        name="Tyrosine",
        three_letter_code="Tyr",
        formula="C9H9NO2",
        monoisotopic_mass=163.0633285336,
        average_mass=163.1736029172,
        dict_composition={'C': 9, 'H': 9, 'N': 1, 'O': 2},
        is_mass_ambiguous=False,
        is_ambiguous=False,
    ),
    AminoAcid.Z: AminoAcidInfo(
        id=AminoAcid.Z,
        name="Glutamine or Glutamic acid",
        three_letter_code="Glx",
        formula=None,
        monoisotopic_mass=None,
        average_mass=None,
        dict_composition=None,
        is_mass_ambiguous=True,
        is_ambiguous=True,
    ),
}
