[ PROMPT_NODE_26792 ]
similarity
[ SKILL_DOCUMENTATION ]
# Matchms 相似度函数参考
本文档提供了 matchms 中所有可用相似度评分方法的详细信息。
## 概述
Matchms 提供了多种用于比较质谱图的相似度函数。使用 `calculate_scores()` 计算参考谱图集和查询谱图集之间的成对相似度。
python
from matchms import calculate_scores
from matchms.similarity import CosineGreedy
scores = calculate_scores(references=library_spectra,
queries=query_spectra,
similarity_function=CosineGreedy())
## 基于峰值的相似度函数
这些函数根据峰值模式(m/z 和强度值)比较质谱图。
### CosineGreedy
**描述**:使用快速贪婪匹配算法计算两张谱图之间的余弦相似度。在指定的容差范围内匹配峰值,并根据匹配的峰值强度计算相似度。
**适用场景**:
- 大数据集的快速相似度计算
- 通用谱图匹配
- 在速度优先于数学最优匹配时
**参数**:
- `tolerance` (float, 默认=0.1): 峰值匹配的最大 m/z 差异(道尔顿)
- `mz_power` (float, 默认=0.0): m/z 加权的指数(0 = 无加权)
- `intensity_power` (float, 默认=1.0): 强度加权的指数
**示例**:
python
from matchms.similarity import CosineGreedy
similarity_func = CosineGreedy(tolerance=0.1, mz_power=0.0, intensity_power=1.0)
scores = calculate_scores(references, queries, similarity_func)
**输出**:0.0 到 1.0 之间的相似度分数,以及匹配的峰值数量。
---
### CosineHungarian
**描述**:使用匈牙利算法进行最优峰值匹配来计算余弦相似度。提供数学上最优的峰值分配,但比 CosineGreedy 慢。
**适用场景**:
- 需要最优峰值匹配时
- 高质量参考库比较
- 需要可重复、数学严谨结果的研究
**参数**:
- `tolerance` (float, 默认=0.1): 峰值匹配的最大 m/z 差异
- `mz_power` (float, 默认=0.0): m/z 加权的指数
- `intensity_power` (float, 默认=1.0): 强度加权的指数
**示例**:
python
from matchms.similarity import CosineHungarian
similarity_func = CosineHungarian(tolerance=0.1)
scores = calculate_scores(references, queries, similarity_func)
*