Source code for matchms.filtering.peak_processing.select_by_intensity
import numpy as np
from matchms.Fragments import Fragments
from matchms.typing import SpectrumType
[docs]def select_by_intensity(spectrum_in: SpectrumType, intensity_from: float = 10.0,
intensity_to: float = 200.0) -> SpectrumType:
"""Keep only peaks within set intensity range (keep if
intensity_from >= intensity >= intensity_to). In most cases it is adviced to
use :py:func:`select_by_relative_intensity` function instead.
Parameters
----------
intensity_from:
Set lower threshold for peak intensity. Default is 10.0.
intensity_to:
Set upper threshold for peak intensity. Default is 200.0.
"""
if spectrum_in is None:
return None
spectrum = spectrum_in.clone()
assert intensity_from <= intensity_to, "'intensity_from' should be smaller than or equal to 'intensity_to'."
condition = np.logical_and(intensity_from <= spectrum.peaks.intensities,
spectrum.peaks.intensities <= intensity_to)
spectrum.peaks = Fragments(mz=spectrum.peaks.mz[condition],
intensities=spectrum.peaks.intensities[condition])
return spectrum