[ PROMPT_NODE_27156 ]
feature_detection
[ SKILL_DOCUMENTATION ]
# 特征检测与链接
## 概述
特征检测用于识别 LC-MS 数据中的持久信号(色谱峰)。特征链接则将多个样本中的特征组合起来,以便进行定量比较。
## 特征检测基础
一个特征由以下属性表征:
- m/z 值(质荷比)
- 保留时间 (RT)
- 强度
- 质量评分
- 凸包(RT-m/z 空间中的空间范围)
## 特征查找
### 多重特征查找器 (FFM)
用于质心化数据特征检测的标准算法:
python
import pyopenms as ms
# 加载质心化数据
exp = ms.MSExperiment()
ms.MzMLFile().load("centroided.mzML", exp)
# 创建特征查找器
ff = ms.FeatureFinder()
# 获取默认参数
params = ff.getParameters("centroided")
# 修改关键参数
params.setValue("mass_trace:mz_tolerance", 10.0) # ppm
params.setValue("mass_trace:min_spectra", 7) # 每个特征的最少扫描次数
params.setValue("isotopic_pattern:charge_low", 1)
params.setValue("isotopic_pattern:charge_high", 4)
# 运行特征检测
features = ms.FeatureMap()
ff.run("centroided", exp, features, params, ms.FeatureMap())
print(f"检测到 {features.size()} 个特征")
# 保存特征
ms.FeatureXMLFile().store("features.featureXML", features)
### 代谢组学特征查找器
针对小分子进行了优化:
python
# 创建代谢组学特征查找器
ff = ms.FeatureFinder()
# 获取代谢组学特定参数
params = ff.getParameters("centroided")
# 配置代谢组学参数
params.setValue("mass_trace:mz_tolerance", 5.0) # 更低的容差
params.setValue("mass_trace:min_spectra", 5)
params.setValue("isotopic_pattern:charge_low", 1) # 大多为单电荷
params.setValue("isotopic_pattern:charge_high", 2)
# 运行检测
features = ms.FeatureMap()
ff.run("centroided", exp, features, params, ms.FeatureMap())
## 访问特征数据
### 遍历特征
python
# 加载特征
feature_map = ms.FeatureMap()
ms.FeatureXMLFile().load("features.featureXML", feature_map)
# 访问单个特征
for feature in feature_map:
print(f"m/z: {feature.getMZ():.4f}")
print(f"RT: {feature.getRT():.2f}")
print(f"强度: {feature.getIntensity():.0f}")
print(f"电荷: {feature.getCharge()}")
print(f"质量: {feature.getOverallQuality():.3f}")
print(f"宽度 (RT): {feature.getWidth():.2f}")
# 获取凸包
hull = feature.getConvexHull()
print(f"凸包点: {h