Source code for matchms.filtering.peak_processing.normalize_intensities

import logging
import numpy as np
from matchms.typing import SpectrumType
from ...Fragments import Fragments


logger = logging.getLogger("matchms")


[docs]def normalize_intensities(spectrum_in: SpectrumType) -> SpectrumType: """Normalize intensities of peaks (and losses) to unit height.""" if spectrum_in is None: return None spectrum = spectrum_in.clone() if len(spectrum.peaks) == 0: return spectrum max_intensity = np.max(spectrum.peaks.intensities) if max_intensity <= 0: logger.warning("Spectrum with all peak intensities <= 0 was set to None.") return None # Normalize peak intensities mz, intensities = spectrum.peaks.mz, spectrum.peaks.intensities normalized_intensities = intensities / max_intensity spectrum.peaks = Fragments(mz=mz, intensities=normalized_intensities) # Normalize loss intensities if spectrum.losses is not None and len(spectrum.losses) > 0: mz, intensities = spectrum.losses.mz, spectrum.losses.intensities normalized_intensities = intensities / max_intensity spectrum.losses = Fragments(mz=mz, intensities=normalized_intensities) return spectrum