"""Auto-generated fragment ion data"""
# DO NOT EDIT - generated by gen_fragment_ions.py

from enum import StrEnum
from typing import Literal
from .dclass import FragmentIonInfo, IonTypeProperty


class IonType(StrEnum):
    """Fragment ion types following ProForma notation"""
    PRECURSOR = "p"
    NEUTRAL = "n"
    A = "a"
    B = "b"
    C = "c"
    X = "x"
    Y = "y"
    Z = "z"
    Z_RADICAL = "z."
    Z_PLUS_H = "z+H"
    C_MINUS_H = "c-H"
    IMMONIUM = "i"
    D = "d"
    D_VALINE = "d-valine"
    DA = "da"
    DB = "db"
    DA_THREONINE = "da-threonine"
    DA_ISOLEUCINE = "da-isoleucine"
    DB_THREONINE = "db-threonine"
    DB_ISOLEUCINE = "db-isoleucine"
    V = "v"
    W = "w"
    W_VALINE = "w-valine"
    WA_THREONINE = "wa-threonine"
    WA = "wa"
    WB = "wb"
    WA_ISOLEUCINE = "wa-isoleucine"
    WB_THREONINE = "wb-threonine"
    WB_ISOLEUCINE = "wb-isoleucine"
    BY = "by"
    AX = "ax"
    CZ = "cz"
    AY = "ay"
    AZ = "az"
    BX = "bx"
    BZ = "bz"
    CX = "cx"
    CY = "cy"


IonTypeLiteral = Literal[
    "p",
    "n",
    "a",
    "b",
    "c",
    "x",
    "y",
    "z",
    "z.",
    "z+H",
    "c-H",
    "i",
    "d",
    "d-valine",
    "da",
    "db",
    "da-threonine",
    "da-isoleucine",
    "db-threonine",
    "db-isoleucine",
    "v",
    "w",
    "w-valine",
    "wa-threonine",
    "wa",
    "wb",
    "wa-isoleucine",
    "wb-threonine",
    "wb-isoleucine",
    "by",
    "ax",
    "cz",
    "ay",
    "az",
    "bx",
    "bz",
    "cx",
    "cy",
]

ION_TYPE_DICT: dict[IonType, FragmentIonInfo] = {
IonType.PRECURSOR: FragmentIonInfo(
    id=IonType.PRECURSOR,
    name="Precursor",
    formula='H2O',
    monoisotopic_mass=18.010565,
    average_mass=18.015286,
    dict_composition={'H': 2, 'O': 1},
    properties=IonTypeProperty.INTACT,
),
IonType.NEUTRAL: FragmentIonInfo(
    id=IonType.NEUTRAL,
    name="Neutral",
    formula='',
    monoisotopic_mass=0.0,
    average_mass=0.0,
    dict_composition={},
    properties=IonTypeProperty.INTACT,
),
IonType.A: FragmentIonInfo(
    id=IonType.A,
    name="a-ion",
    formula='C-1O-1',
    monoisotopic_mass=-27.994915,
    average_mass=-28.010141,
    dict_composition={'C': -1, 'O': -1},
    properties=IonTypeProperty.FORWARD,
),
IonType.B: FragmentIonInfo(
    id=IonType.B,
    name="b-ion",
    formula='',
    monoisotopic_mass=0.0,
    average_mass=0.0,
    dict_composition={},
    properties=IonTypeProperty.FORWARD,
),
IonType.C: FragmentIonInfo(
    id=IonType.C,
    name="c-ion",
    formula='H3N',
    monoisotopic_mass=17.026549,
    average_mass=17.030525,
    dict_composition={'H': 3, 'N': 1},
    properties=IonTypeProperty.FORWARD,
),
IonType.X: FragmentIonInfo(
    id=IonType.X,
    name="x-ion",
    formula='CO2',
    monoisotopic_mass=43.989829,
    average_mass=44.009546,
    dict_composition={'C': 1, 'O': 2},
    properties=IonTypeProperty.BACKWARD,
),
IonType.Y: FragmentIonInfo(
    id=IonType.Y,
    name="y-ion",
    formula='H2O',
    monoisotopic_mass=18.010565,
    average_mass=18.015286,
    dict_composition={'H': 2, 'O': 1},
    properties=IonTypeProperty.BACKWARD,
),
IonType.Z: FragmentIonInfo(
    id=IonType.Z,
    name="z-ion",
    formula='H-1N-1O',
    monoisotopic_mass=0.984016,
    average_mass=0.984761,
    dict_composition={'H': -1, 'N': -1, 'O': 1},
    properties=IonTypeProperty.BACKWARD,
),
IonType.Z_RADICAL: FragmentIonInfo(
    id=IonType.Z_RADICAL,
    name="z• radical ion",
    formula='N-1O',
    monoisotopic_mass=1.991841,
    average_mass=1.992702,
    dict_composition={'N': -1, 'O': 1},
    properties=IonTypeProperty.BACKWARD,
),
IonType.Z_PLUS_H: FragmentIonInfo(
    id=IonType.Z_PLUS_H,
    name="z+H ion",
    formula='HN-1O',
    monoisotopic_mass=2.999666,
    average_mass=3.000642,
    dict_composition={'H': 1, 'N': -1, 'O': 1},
    properties=IonTypeProperty.BACKWARD,
),
IonType.C_MINUS_H: FragmentIonInfo(
    id=IonType.C_MINUS_H,
    name="c-H ion",
    formula='H2N',
    monoisotopic_mass=16.018724,
    average_mass=16.022585,
    dict_composition={'H': 2, 'N': 1},
    properties=IonTypeProperty.FORWARD,
),
IonType.IMMONIUM: FragmentIonInfo(
    id=IonType.IMMONIUM,
    name="Immonium",
    formula='C-1O-1',
    monoisotopic_mass=-27.994915,
    average_mass=-28.010141,
    dict_composition={'C': -1, 'O': -1},
    properties=IonTypeProperty.INTERNAL,
),
IonType.D: FragmentIonInfo(
    id=IonType.D,
    name="d-ion",
    formula='C2H3N',
    monoisotopic_mass=41.026549,
    average_mass=41.051997,
    dict_composition={'C': 2, 'H': 3, 'N': 1},
    properties=IonTypeProperty.FORWARD | IonTypeProperty.AA_SPECIFIC_FWD,
),
IonType.D_VALINE: FragmentIonInfo(
    id=IonType.D_VALINE,
    name="d-ion (valine)",
    formula='C3H6N',
    monoisotopic_mass=56.050024,
    average_mass=56.086555,
    dict_composition={'C': 3, 'H': 6, 'N': 1},
    properties=IonTypeProperty.FORWARD | IonTypeProperty.AA_SPECIFIC_FWD,
),
IonType.DA: FragmentIonInfo(
    id=IonType.DA,
    name="da-ion",
    formula=None,
    monoisotopic_mass=None,
    average_mass=None,
    dict_composition={},
    properties=IonTypeProperty.FORWARD | IonTypeProperty.AA_SPECIFIC_FWD,
),
IonType.DB: FragmentIonInfo(
    id=IonType.DB,
    name="db-ion",
    formula=None,
    monoisotopic_mass=None,
    average_mass=None,
    dict_composition={},
    properties=IonTypeProperty.FORWARD | IonTypeProperty.AA_SPECIFIC_FWD,
),
IonType.DA_THREONINE: FragmentIonInfo(
    id=IonType.DA_THREONINE,
    name="da-ion (threonine)",
    formula='C2H4NO',
    monoisotopic_mass=58.029289,
    average_mass=58.059343,
    dict_composition={'C': 2, 'H': 4, 'N': 1, 'O': 1},
    properties=IonTypeProperty.FORWARD | IonTypeProperty.AA_SPECIFIC_FWD,
),
IonType.DA_ISOLEUCINE: FragmentIonInfo(
    id=IonType.DA_ISOLEUCINE,
    name="da-ion (isoleucine)",
    formula='C4H8N',
    monoisotopic_mass=70.065674,
    average_mass=70.113173,
    dict_composition={'C': 4, 'H': 8, 'N': 1},
    properties=IonTypeProperty.FORWARD | IonTypeProperty.AA_SPECIFIC_FWD,
),
IonType.DB_THREONINE: FragmentIonInfo(
    id=IonType.DB_THREONINE,
    name="db-ion (threonine)",
    formula='C3H6N',
    monoisotopic_mass=56.050024,
    average_mass=56.086555,
    dict_composition={'C': 3, 'H': 6, 'N': 1},
    properties=IonTypeProperty.FORWARD | IonTypeProperty.AA_SPECIFIC_FWD,
),
IonType.DB_ISOLEUCINE: FragmentIonInfo(
    id=IonType.DB_ISOLEUCINE,
    name="db-ion (isoleucine)",
    formula='C3H6N',
    monoisotopic_mass=56.050024,
    average_mass=56.086555,
    dict_composition={'C': 3, 'H': 6, 'N': 1},
    properties=IonTypeProperty.FORWARD | IonTypeProperty.AA_SPECIFIC_FWD,
),
IonType.V: FragmentIonInfo(
    id=IonType.V,
    name="v-ion",
    formula='C2H2NO',
    monoisotopic_mass=56.013639,
    average_mass=56.043461,
    dict_composition={'C': 2, 'H': 2, 'N': 1, 'O': 1},
    properties=IonTypeProperty.BACKWARD | IonTypeProperty.AA_SPECIFIC_BWD,
),
IonType.W: FragmentIonInfo(
    id=IonType.W,
    name="w-ion",
    formula='C3H3O',
    monoisotopic_mass=55.01839,
    average_mass=55.055435,
    dict_composition={'C': 3, 'H': 3, 'O': 1},
    properties=IonTypeProperty.BACKWARD,
),
IonType.W_VALINE: FragmentIonInfo(
    id=IonType.W_VALINE,
    name="w-ion (valine)",
    formula='C4H6O',
    monoisotopic_mass=70.041865,
    average_mass=70.089993,
    dict_composition={'C': 4, 'H': 6, 'O': 1},
    properties=IonTypeProperty.BACKWARD | IonTypeProperty.AA_SPECIFIC_BWD,
),
IonType.WA_THREONINE: FragmentIonInfo(
    id=IonType.WA_THREONINE,
    name="wa-ion (threonine)",
    formula='C3H4O2',
    monoisotopic_mass=72.021129,
    average_mass=72.062781,
    dict_composition={'C': 3, 'H': 4, 'O': 2},
    properties=IonTypeProperty.BACKWARD | IonTypeProperty.AA_SPECIFIC_BWD,
),
IonType.WA: FragmentIonInfo(
    id=IonType.WA,
    name="wa-ion",
    formula=None,
    monoisotopic_mass=None,
    average_mass=None,
    dict_composition={},
    properties=IonTypeProperty.BACKWARD | IonTypeProperty.AA_SPECIFIC_BWD,
),
IonType.WB: FragmentIonInfo(
    id=IonType.WB,
    name="wb-ion",
    formula=None,
    monoisotopic_mass=None,
    average_mass=None,
    dict_composition={},
    properties=IonTypeProperty.BACKWARD | IonTypeProperty.AA_SPECIFIC_BWD,
),
IonType.WA_ISOLEUCINE: FragmentIonInfo(
    id=IonType.WA_ISOLEUCINE,
    name="wa-ion (isoleucine)",
    formula='C5H8O',
    monoisotopic_mass=84.057515,
    average_mass=84.11661,
    dict_composition={'C': 5, 'H': 8, 'O': 1},
    properties=IonTypeProperty.BACKWARD | IonTypeProperty.AA_SPECIFIC_BWD,
),
IonType.WB_THREONINE: FragmentIonInfo(
    id=IonType.WB_THREONINE,
    name="wb-ion (threonine)",
    formula='C4H6O',
    monoisotopic_mass=70.041865,
    average_mass=70.089993,
    dict_composition={'C': 4, 'H': 6, 'O': 1},
    properties=IonTypeProperty.BACKWARD | IonTypeProperty.AA_SPECIFIC_BWD,
),
IonType.WB_ISOLEUCINE: FragmentIonInfo(
    id=IonType.WB_ISOLEUCINE,
    name="wb-ion (isoleucine)",
    formula='C4H6O',
    monoisotopic_mass=70.041865,
    average_mass=70.089993,
    dict_composition={'C': 4, 'H': 6, 'O': 1},
    properties=IonTypeProperty.BACKWARD | IonTypeProperty.AA_SPECIFIC_BWD,
),
IonType.BY: FragmentIonInfo(
    id=IonType.BY,
    name="by internal fragment",
    formula='C-1O-1',
    monoisotopic_mass=-27.994915,
    average_mass=-28.010141,
    dict_composition={'C': -1, 'O': -1},
    properties=IonTypeProperty.INTERNAL,
),
IonType.AX: FragmentIonInfo(
    id=IonType.AX,
    name="ax internal fragment",
    formula='C-1O-1',
    monoisotopic_mass=-27.994915,
    average_mass=-28.010141,
    dict_composition={'C': -1, 'O': -1},
    properties=IonTypeProperty.INTERNAL,
),
IonType.CZ: FragmentIonInfo(
    id=IonType.CZ,
    name="cz internal fragment",
    formula='C-1O-1',
    monoisotopic_mass=-27.994915,
    average_mass=-28.010141,
    dict_composition={'C': -1, 'O': -1},
    properties=IonTypeProperty.INTERNAL,
),
IonType.AY: FragmentIonInfo(
    id=IonType.AY,
    name="ay internal fragment",
    formula='C-2O-2',
    monoisotopic_mass=-55.989829,
    average_mass=-56.020282,
    dict_composition={'C': -2, 'O': -2},
    properties=IonTypeProperty.INTERNAL,
),
IonType.AZ: FragmentIonInfo(
    id=IonType.AZ,
    name="az internal fragment",
    formula='C-2H-1N-1O-2',
    monoisotopic_mass=-71.000728,
    average_mass=-71.034926,
    dict_composition={'C': -2, 'H': -1, 'N': -1, 'O': -2},
    properties=IonTypeProperty.INTERNAL,
),
IonType.BX: FragmentIonInfo(
    id=IonType.BX,
    name="bx internal fragment",
    formula='',
    monoisotopic_mass=0.0,
    average_mass=0.0,
    dict_composition={},
    properties=IonTypeProperty.INTERNAL,
),
IonType.BZ: FragmentIonInfo(
    id=IonType.BZ,
    name="bz internal fragment",
    formula='C-1H-1N-1O-1',
    monoisotopic_mass=-43.005814,
    average_mass=-43.024785,
    dict_composition={'C': -1, 'H': -1, 'N': -1, 'O': -1},
    properties=IonTypeProperty.INTERNAL,
),
IonType.CX: FragmentIonInfo(
    id=IonType.CX,
    name="cx internal fragment",
    formula='N',
    monoisotopic_mass=14.003074,
    average_mass=14.006703,
    dict_composition={'N': 1},
    properties=IonTypeProperty.INTERNAL,
),
IonType.CY: FragmentIonInfo(
    id=IonType.CY,
    name="cy internal fragment",
    formula='C-1H-1NO-1',
    monoisotopic_mass=-14.999666,
    average_mass=-15.011378,
    dict_composition={'C': -1, 'H': -1, 'N': 1, 'O': -1},
    properties=IonTypeProperty.INTERNAL,
),
}
