用途:matchms 是处理串联质谱(MS/MS)的 Python 包,用于谱图导入、清洗、处理与比对,适用于 MS/MS 谱库检索、查询与参考谱打分、元数据协调、加合物与前体处理、峰过滤,以及余弦、修饰余弦、中性丢失、近似与熵打分,并支持结构化打分矩阵、top-hit 提取与谱网络。支持 MGF、MSP、mzML、mzXML、JSON、mzSpecLib 及代谢组学 USI 工作流。
安装:uv pip install "matchms==0.33.1";验证:uv run python -c "import matchms; print(matchms.version)"。0.33.1 支持 Python 3.10-3.14,RDKit 为常规依赖,旧的 matchms[chemistry] extra 已不在当前包元数据中。
用法要点:加载时默认启用元数据协调;对查询与参考谱应用相同峰处理步骤;显式丢弃无效谱(许多 require_* 过滤器返回 None);按科学问题选择打分方法,修饰与中性丢失打分需有效 precursor_mz;打分前估算 len(references)*len(queries)。报告需包含容差与单位、预处理、打分名称、匹配峰数及候选元数据;余弦族容差是绝对 m/z 窗口(Da),不是 ppm。
API 注意:使用 ModifiedCosineGreedy 或 ModifiedCosineHungarian(ModifiedCosine 已在 0.32.0 移除);不要调用 add_losses()(0.27.0 移除),改用 spectrum.losses、spectrum.compute_losses(...) 或 NeutralLossesCosine;SpectrumProcessor 不可调用,用 process_spectrum() 或 process_spectra(),后者返回 (processed_spectra, processing_report);Scores.scores 是 StackedSparseArray;scores_by_query() 返回 (reference_spectrum, score_record) 对;参数名优先用 spectra。切勿加载不可信 pickle 文件。
限制:matchms 不替代 LC-MS 特征检测、色谱对齐、肽段鉴定或蛋白定量(用 pyopenms);不处理厂商原始文件转换,需先转 mzML/mzXML;相似度是证据而非身份确证。不要使用通用“鉴定阈值”,应保留打分与匹配峰数。不要对未做相同处理的参考谱比较原始查询谱;无有效前体元数据时不要用修饰或中性丢失打分;不要假设 Scores 值是普通浮点数;不要无界启动全对全比较。
本技能附带 scripts/library_search.py 命令行谱库检索脚本,可输出 CSV,支持 --metric、--tolerance、--top-k、--min-score、--min-matches 等参数。更多细节见 references/ 下的 importing_exporting、filtering、similarity、workflows、migration、sources 文档。