[ PROMPT_NODE_27160 ]
identification
[ SKILL_DOCUMENTATION ]
# 肽段与蛋白质鉴定
## 概述
PyOpenMS 通过与搜索引擎集成支持肽段/蛋白质鉴定,并提供用于鉴定结果后处理的工具,包括 FDR 控制、蛋白质推断和注释。
## 支持的搜索引擎
PyOpenMS 集成了以下搜索引擎:
- **Comet**: 快速串联 MS 搜索
- **Mascot**: 商业搜索引擎
- **MSGFPlus**: 基于谱图概率的搜索
- **XTandem**: 开源搜索工具
- **OMSSA**: NCBI 搜索引擎
- **Myrimatch**: 高通量搜索
- **MSFragger**: 超快速搜索
## 读取鉴定数据
### idXML 格式
python
import pyopenms as ms
# 加载鉴定结果
protein_ids = []
peptide_ids = []
ms.IdXMLFile().load("identifications.idXML", protein_ids, peptide_ids)
print(f"蛋白质鉴定数: {len(protein_ids)}")
print(f"肽段鉴定数: {len(peptide_ids)}")
### 访问肽段鉴定
python
# 遍历肽段 ID
for peptide_id in peptide_ids:
# 谱图元数据
print(f"RT: {peptide_id.getRT():.2f}")
print(f"m/z: {peptide_id.getMZ():.4f}")
# 获取肽段命中 (按分数排序)
hits = peptide_id.getHits()
print(f"命中数: {len(hits)}")
for hit in hits:
sequence = hit.getSequence()
print(f" 序列: {sequence.toString()}")
print(f" 分数: {hit.getScore()}")
print(f" 电荷: {hit.getCharge()}")
print(f" 质量误差 (ppm): {hit.getMetaValue('mass_error_ppm')}")
# 获取修饰
if sequence.isModified():
for i in range(sequence.size()):
residue = sequence.getResidue(i)
if residue.isModified():
print(f" 位置 {i} 的修饰: {residue.getModificationName()}")
### 访问蛋白质鉴定
python
# 访问蛋白质级别信息
for protein_id in protein_ids:
# 搜索参数
search_params = protein_id.getSearchParameters()
print(f"搜索引擎: {protein_id.getSearchEngine()}")
print(f"数据库: {search_params.db}")
# 蛋白质命中
hits = protein_id.getHits()
for hit in hits:
print(f" 登录号: {hit.getAccession()}")
print(f" 分数: {hit.getScore()}")
print(f" 覆盖率: {hit.getCoverage()}")
print(f" 序列: {hit.getSequence()}")
## 错误发现率 (FDR)
### FDR 过滤
应用 FDR 过滤以控制 fa