Source code for matchms.filtering.metadata_processing.require_precursor_below_mz
import logging
from matchms.typing import SpectrumType
logger = logging.getLogger("matchms")
[docs]def require_precursor_below_mz(spectrum_in: SpectrumType, max_mz: float = 1000) -> SpectrumType:
"""Returns None if the precursor_mz of a spectrum is above
max_mz.
Parameters
----------
spectrum_in:
Input spectrum.
max_mz:
Maximum mz value for the precursor mz of a spectrum.
All precursor mz values greater or equal to this
will return none. Default is 1000.
"""
if spectrum_in is None:
return None
spectrum = spectrum_in.clone()
precursor_mz = spectrum.get("precursor_mz", None)
assert precursor_mz is not None, "Precursor mz absent."
assert isinstance(precursor_mz, (float, int)), ("Expected 'precursor_mz' to be a scalar number.",
"Consider applying 'add_precursor_mz' filter first.")
assert max_mz >= 0, "max_mz must be a positive scalar."
if precursor_mz >= max_mz:
logger.info("Spectrum with precursor_mz %s (>%s) was set to None.",
str(precursor_mz), str(max_mz))
return None
return spectrum