概览
Spec2Vec 为串联质谱光谱提供一种学习得到的相似度度量。受 Word2Vec 启发,它从质谱碎片和中性丢失在一组光谱中的出现情况学习它们之间的关系,然后使用光谱嵌入进行比较。该仓库提供用于训练和评分工作流的 Python 包,而不是单一的固定预测模型或托管光谱数据库。
文档所述工作流从使用 matchms 加载 MGF 文件中的参考光谱开始。经过过滤后,SpectrumDocument 根据峰的 m/z 值将其转换为词元,并支持配置小数精度。train_new_word2vec_model 使用这些文档训练模型,并可将模型保存以供后续使用。进行比较时,通过 gensim 加载训练好的模型,并将其传递给 Spec2Vec。与 matchms 的集成支持对参考光谱和查询光谱的组合进行评分,并为选定的查询光谱检索得分最高的匹配项。因此,输出包括保存的 Word2Vec 模型,以及带有排序参考匹配项的光谱相似度分数。
模型是否适用取决于训练数据集:README 建议使用大型且具有代表性的数据集,以获得有意义的表示。来自不同数据集的光谱可能包含模型词汇表中没有的峰词元,因此评分接口提供了 allowed_missing_percentage 参数。示例还配置了强度加权。在评估新数据集时,这些控制参数值得关注,但来源摘录并未证实基准测试表现或鉴定准确度。示例中的导入和过滤步骤由 matchms 处理;README 将某些 matchms 过滤器所需的 RDKit 与 Spec2Vec 本身的功能区分开来。
主要功能
- 基于 MS/MS 光谱中质谱碎片和中性丢失之间的关系,学习 Word2Vec 嵌入。
- 使用 `SpectrumDocument` 将光谱转换为基于 m/z 的词元文档,并支持配置小数精度。
- 通过 `train_new_word2vec_model` 训练并保存 Word2Vec 模型,且可覆盖默认训练参数。
- 使用可配置的 `intensity_weighting_power` 和 `allowed_missing_percentage` 计算基于模型的光谱相似度。
- 与 matchms 集成,对参考光谱和查询光谱的组合进行评分,并为单个查询光谱检索排序后的匹配项。
使用场景
- 预期评估用途:为实验 MS/MS 查询对参考库光谱进行排序,并评估得分最高的匹配项是否相关。
- 预期评估用途:在具有代表性的内部光谱数据集上训练相似度模型,并评估其是否适用于相关查询数据。
- 预期评估用途:当训练数据集与查询数据集不同时,考察未见过的峰词元和缺失词元允许比例如何影响比较结果。
使用方式
- 从用户文档和仓库 README开始。选择文档所述的 Conda 或 pip 安装方式;如果使用需要 RDKit 的 matchms 过滤器,请留意相关的独立要求。
- 准备具有代表性的参考光谱和查询光谱。按照 README 中使用 matchms 导入 MGF 的示例进行操作,并应用示例过滤流程;排除被该流程拒绝的光谱。
- 将清理后的参考光谱转换为
SpectrumDocument对象。谨慎选择 m/z 小数精度,因为它决定训练时使用的峰词元表示。 - 使用
train_new_word2vec_model训练并保存模型,或通过 gensim 加载先前为你的工作流训练的模型。README 建议使用大型且具有代表性的训练数据集。 - 使用模型、强度加权和明确的缺失词元允许比例配置
Spec2Vec。按照文档中的 matchms 评分示例比较参考光谱与查询光谱,并检索排序后的匹配项。作为预期的评估步骤,在将分数用于科学工作流之前,先检查具有代表性的查询结果。