Source code for spectrum_utils.utils

from typing import Union

import numba as nb
import numpy as np


@nb.njit(fastmath=True, cache=True)
def mass_diff(mz1, mz2, mode_is_da):
    """
    Calculate the mass difference(s).

    Parameters
    ----------
    mz1
        First m/z value(s).
    mz2
        Second m/z value(s).
    mode_is_da : bool
        Mass difference in Dalton (True) or in ppm (False).

    Returns
    -------
        The mass difference(s) between the given m/z values.
    """
    return mz1 - mz2 if mode_is_da else (mz1 - mz2) / mz2 * 10**6


[docs]def da_to_ppm( delta_mz: Union[int, np.ndarray], mz: Union[int, np.ndarray] ) -> Union[int, np.ndarray]: """ Convert a mass difference in Dalton to ppm. Parameters ---------- delta_mz : int or np.ndarray Mass difference in Dalton. mz : int or np.ndarray m/z value of peak. Returns ------- int or np.ndarray """ return delta_mz / mz * 1e6
[docs]def ppm_to_da( delta_mz: Union[int, np.ndarray], mz: Union[int, np.ndarray] ) -> Union[int, np.ndarray]: """ Convert a mass difference in ppm to Dalton. Parameters ---------- delta_mz : int or np.ndarray Mass difference in ppm. mz : int or np.ndarray m/z value of peak. Returns ------- int or np.ndarray """ return delta_mz / 1e6 * mz