用途
Matchms 是一个开源的 Python 库,用于质谱数据的处理与分析,主要面向代谢组学和质谱分析场景。其目标包括:从多种格式导入谱图、标准化元数据、过滤峰、计算谱图相似度,并构建可重复的分析工作流。
主要能力
导入与导出
支持加载和导出多种质谱数据格式,导入函数包括 load_from_mgf、load_from_mzml、load_from_msp、load_from_json;导出函数包括 save_as_mgf、save_as_msp、save_as_json。支持的格式有:mzML 和 mzXML(原始质谱格式)、MGF(Mascot Generic Format)、MSP(谱库格式)、JSON(GNPS 兼容)、metabolomics-USI 引用、Pickle(Python 序列化)。
谱图过滤与处理
提供 40 多个过滤器,可标准化元数据并精炼峰数据,涵盖以下几类:
- 元数据处理:统一化合物名称、推导化学结构、标准化加合物、修正电荷。
- 峰过滤:归一化强度、按 m/z 或强度选择、移除前体峰。
- 质量控制:要求最少峰数、验证前体 m/z、确保元数据完整性。
- 化学注释:添加指纹、推导 InChI/SMILES、修复结构不匹配。
示例过滤器包括 default_filters、normalize_intensities、select_by_relative_intensity、require_minimum_number_of_peaks 等。
谱图相似性计算
通过 calculate_scores 函数和相似性函数比较谱图,可用函数包括:
- CosineGreedy / CosineHungarian:基于峰的余弦相似度,匹配算法不同。
- ModifiedCosine:考虑前体质量差异的余弦相似度。
- NeutralLossesCosine:基于中性丢失模式的相似度。
- FingerprintSimilarity:使用指纹的分子结构相似度。
- MetadataMatch:比较用户定义的元数据字段。
- PrecursorMzMatch / ParentMassMatch:基于质量的简单过滤。
可获得排序后的最佳匹配结果。
处理流程构建
通过 SpectrumProcessor 可定义可重复的多步骤分析流程,将多个过滤器组合后依次应用于所有谱图。
Spectrum 对象与元数据管理
核心的 Spectrum 类用于存储质谱数据,可通过 m/z 数组、强度数组和元数据字典创建。支持访问 spectrum.peaks.mz、spectrum.peaks.intensities、spectrum.get("precursor_mz") 等属性,并可使用 spectrum.plot() 和 spectrum.plot_against(reference_spectrum) 可视化谱图。元数据键会自动统一为小写,还可通过过滤器推导 InChI、InChIKey 和添加指纹(如 Morgan 指纹,nbits=2048)。
使用方式
安装:uv pip install matchms。如需分子结构处理(SMILES、InChI):uv pip install matchms[chemistry]。参考资料目录中提供 filtering.md、similarity.md、importing_exporting.md、workflows.md 等文档,可按需查阅以了解具体能力。
适用场景
典型工作流包括:加载和预处理谱库、将未知谱图与参考库匹配、质量过滤和数据清洗、大规模相似性比较、基于网络的谱图聚类。
限制
资料未提供关于收费、价格、平台支持范围、性能上限或具体使用步骤的详细信息,这些内容暂未提供。