概览
Matchms 是一个用于处理串联质谱(MS/MS)数据并比较参考谱与查询谱的 Python 库。它提供光谱分析工作流程中的预处理和评分阶段,而不是独立的预测模型。文档列出的输入包括 mzML、mzXML、msp、MGF、JSON,以及通过 metabolomics-USI 检索的光谱。输出包括处理后的光谱、成对相似度分数和针对单个查询的排序匹配结果;流程示例还展示了将清理后的查询谱和参考谱写入 MGF 文件。
工作流程可以在计算相似度之前结合元数据标准化、验证、强度归一化和峰筛选。Pipeline 类支持创建、导入、导出和修改 YAML 工作流程定义;需要自定义处理时,也可以单独使用导入、筛选和评分函数。文档介绍的评分选项包括余弦、改进余弦和中性丢失比较,以及基于分子指纹和元数据的度量。稀疏分数处理会存储已计算的非空值;分阶段评分可先用一种度量缩小后续比较范围。
Matchms 还支持自定义相似度度量。Spec2Vec 和 MS2DeepScore 是遵循其评分接口的独立软件包,并非 Matchms 本身提供的内置预测模型。README 宣布了 matchms 1.0 即将带来的变更,并将其许多指导内容标记为旧版 README,因此用户应对照所选软件包版本核查文档。所提供的软件包配置将 Python 限定为 3.10 至 3.14 版本;README 中关于更高版本或许可用的说法并不构成兼容性保证。
主要功能
- 可从 mzML、mzXML、msp、MGF 和 JSON 导入光谱,文档也介绍了通过 metabolomics-USI 检索光谱。
- 提供元数据清理和验证、强度归一化及峰选择筛选,包括移除前体 m/z 附近的峰。
- 通过 `Pipeline` 类和可导入、可导出的 YAML 配置定义可复用的处理与评分工作流程。
- 提供余弦、改进余弦、中性丢失、分子指纹和基于元数据的光谱比较方法。
- 以稀疏方式存储已计算的非空分数,并支持通过初始预筛选度量进行分阶段比较。
- 通过 `scores_by_query` 获取按顺序排列的查询匹配结果,并接受自定义或单独安装的相似度度量。
使用场景
- 建议的评估:构建可重复的 MS/MS 谱库清理流程,对元数据进行标准化并导出清理后的参考光谱。
- 建议的评估:将查询谱与参考谱库进行比较,检查按余弦或改进余弦相似度排序的匹配结果及匹配峰数。
- 建议的评估:在有代表性的光谱上评估峰筛选和归一化对光谱相似度结果的影响。
- 建议的评估:在共享的处理流程中,将内置评分方法与单独安装的 Spec2Vec 或 MS2DeepScore 进行比较。
使用方式
- 在选择软件包版本前,阅读仓库指南和文档。留意 README 中关于 matchms 1.0 即将发生变更的说明,不要假定开发示例与所安装的版本一致。
- 按照文档所述的安装流程在新环境中进行安装,以减少依赖冲突。检查所选软件包的 Python 要求;所提供的配置指定 Python 3.10–3.14。
- 从提供的农药示例开始,然后查阅导入 API,以处理自己的光谱格式。
- 使用筛选 API选择元数据和峰处理步骤。使用
Pipeline保存 YAML 工作流程,或组合单独的函数进行自定义处理。 - 从相似度 API中选择度量,计算参考谱与查询谱的分数,并检查排序后的匹配结果。作为预期的评估步骤,在扩大规模之前,先在有代表性的输入上比较不同筛选选项和容差的影响。