Source code for matchms.filtering.metadata_processing.harmonize_undefined_inchi

from typing import List
from matchms.typing import SpectrumType


[docs]def harmonize_undefined_inchi(spectrum_in: SpectrumType, undefined: str = "", aliases: List[str] = None) -> SpectrumType: """Replace all aliases for empty/undefined inchi entries by value of ``undefined`` argument. Parameters ---------- undefined: Give desired entry for undefined inchi fields. Default is "". aliases: Enter list of strings that are expected to represent undefined entries. Default is ["", "N/A", "NA", "n/a"]. """ if spectrum_in is None: return None spectrum = spectrum_in.clone() if aliases is None: aliases = [ "", "N/A", "NA", "n/a" ] inchi = spectrum.get("inchi") if inchi is None: # spectrum does not have an "inchi" key in its metadata spectrum.set("inchi", undefined) return spectrum if inchi in aliases: # harmonize aliases for undefined values spectrum.set("inchi", undefined) return spectrum