SuperAPI AI 工具集

pyopenms

数据与分析

查看项目

更新于 10-21 16:21

技能介绍

PyOpenMS 是 OpenMS 库的 Python 绑定,面向计算质谱分析,用于蛋白质组学和代谢组学数据的分析。它可以读写质谱文件格式、处理原始谱图、检测和定量特征、鉴定肽段与蛋白质,并运行端到端 LC-MS/MS 流程。

主要能力

该技能附带 scripts/ 目录下可直接运行的脚本,覆盖最常见的高层工作流。每个脚本都是参数化的 CLI 工具,负责加载、处理和导出。只有在没有合适脚本时才需要直接使用 Python API 和 references/。

脚本按用途分为以下几类:

  • 检查与转换:inspect_ms_data.py 汇总 mzML/mzXML/featureXML/consensusXML/idXML 文件信息(计数、RT/m/z 范围、TIC、元数据),可选输出逐谱图 CSV;convert_format.py 在 mzML/mzXML/MGF 之间转换,支持 MS 级别、RT 和强度过滤;process_spectra.py 提供可配置的信号处理链,包括平滑(Gauss/SGolay)、质心化(PeakPickerHiRes)、归一化、信噪比和强度阈值。
  • 特征检测与定量:detect_features_metabo.py 用于非靶向代谢组学特征发现(MassTraceDetection → ElutionPeakDetection → FeatureFindingMetabo);detect_features_centroided.py 通过 FeatureFinderAlgorithmPicked 进行肽段/质心化特征检测;align_link_quantify.py 实现多样本流程(检测或加载特征 → RT 对齐 → 共识连接 → 定量矩阵 CSV);consensus_to_matrix.py 将 consensusXML 转为宽强度矩阵和元数据,可选中位数/分位数归一化和长格式。
  • 注释:detect_adducts.py 对同一中性质量的加合物/电荷变体进行分组(MetaboliteFeatureDeconvolution);accurate_mass_search.py 基于精确质量对 HMDB 注释特征(AccurateMassSearchEngine → mzTab/CSV);export_gnps_sirius.py 导出 GNPS FBMN 输入(MGF + 定量表)或 SIRIUS .ms 文件。
  • 鉴定:process_identifications.py 针对 FASTA 重新索引、估计 FDR/q 值、过滤(FDR/长度/每谱最佳),导出 idXML + CSV。
  • 化学:mass_calculator.py 计算肽段或经验式的单同位素/平均质量、带电 m/z、分子式和同位素模式;digest_protein.py 对 FASTA/序列进行计算机酶切,生成理论肽段及其质量和 m/z;theoretical_spectrum.py 为肽段生成带注释的理论碎片谱(b/y/a/c/x/z、中性丢失)。
  • 靶向与可视化:extract_chromatograms.py 构建 TIC/BPC 和目标 m/z 的 XIC 轨迹(CSV + 可选图);plot_ms_data.py 快速绘图,包括单谱图、TIC、二维特征图、MS1 信号图。

使用方式

安装:uv pip install pyopenms

验证(注意:version 可用,但捆绑的二进制在导入时会打印一行无害的内存状态提示):

import pyopenms as ms print(ms.version) # 3.5.0

运行脚本时使用 python scripts/<name>.py --help 查看完整选项。所有脚本接受标准质谱文件格式,并按需写出 featureXML/consensusXML/CSV/mzTab/PNG。

常见脚本示例:

检查文件

python scripts/inspect_ms_data.py sample.mzML --spectra-csv spectra.csv

非靶向代谢组学:单样本特征

python scripts/detect_features_metabo.py sample.mzML --out-csv features.csv

完整多样本定量研究

python scripts/align_link_quantify.py s1.mzML s2.mzML s3.mzML --out-prefix study python scripts/consensus_to_matrix.py study.consensusXML --out quant.csv --normalize median

肽段化学

python scripts/mass_calculator.py --peptide "PEPTIDEM(Oxidation)K" --charges 1 2 3 --isotopes 5 python scripts/digest_protein.py proteins.fasta --enzyme Trypsin --missed 2 --out peptides.csv

鉴定后处理

python scripts/process_identifications.py search.idXML --fasta db.fasta --fdr 0.01 --out filtered.idXML --csv hits.csv

3.5.0 API 注意事项

以下内容与旧版 OpenMS 不同,旧教程和代码会失效:

  • 特征发现:FeatureFinder("centroided") 已移除。蛋白质组学/质心化使用 FeatureFinderAlgorithmPicked,代谢组学使用 MassTraceDetection → ElutionPeakDetection → FeatureFindingMetabo 流程。参见 detect_features_*.py。
  • idXML I/O:IdXMLFile().load/store 对肽段 ID 需要 ms.PeptideIdentificationList()(普通 Python 列表会报 "can not handle type")。蛋白质 ID 仍为普通列表。
  • 加合物去电荷:类名为 MetaboliteFeatureDeconvolution,加合物使用 Elements:Charge:Probability 语法(如 H:+:0.4、H-2O-1:0:0.05),而非 [M+H]+ 这类括号表示法。
  • DataFrame 列名:FeatureMap.get_df() 使用小写 rt/mz(不是 RT)。ConsensusMap 提供 get_intensity_df() 和 get_metadata_df()。
  • 捆绑数据注意事项:pip wheel 附带 HMDBMappingFile.tsv,但不含 HMDB2StructMapping.tsv;accurate_mass_search.py 会检测到这一点并说明如何提供该文件。

核心数据结构

  • MSExperiment – 谱图和色谱图的集合
  • MSSpectrum / MSChromatogram – 单个谱图 / 色谱轨迹
  • Feature / FeatureMap – 检测到的 LC-MS 峰 / 特征集合
  • ConsensusMap – 跨样本连接的特征(定量表)
  • PeptideIdentification / ProteinIdentification – 搜索结果
  • AASequence / EmpiricalFormula – 序列和分子式化学

详见 references/data_structures.md。

参数管理

大多数算法暴露 OpenMS Param 对象:

algo = ms.FeatureFindingMetabo() p = algo.getDefaults() for key in p.keys(): print(key.decode(), "=", p.getValue(key), "|", p.getDescription(key)) p.setValue("charge_lower_bound", 1) algo.setParameters(p)

导出到 pandas

fm = ms.FeatureMap(); ms.FeatureXMLFile().load("features.featureXML", fm) df = fm.get_df() # 列包括小写 rt、mz、intensity、charge、quality

cm = ms.ConsensusMap(); ms.ConsensusXMLFile().load("study.consensusXML", cm) intensities = cm.get_intensity_df() # 特征 x 样本 metadata = cm.get_metadata_df() # rt、mz、charge、quality 等

与其他工具集成

可与 Pandas(DataFrame)、NumPy(峰数组)、scikit-learn(机器学习)、Matplotlib/Seaborn(绘图)集成,并通过导出与下游工具衔接:GNPS(FBMN)、SIRIUS 和 mzTab。

适用场景

适用于蛋白质组学和代谢组学的质谱数据分析,包括文件检查与格式转换、谱图信号处理、非靶向代谢组学特征检测、肽段/质心化特征检测、多样本对齐与定量、加合物分组、精确质量注释、GNPS/SIRIUS 导出、肽段与蛋白质鉴定后处理、肽段化学计算、理论谱生成、色谱提取和质谱数据可视化。

限制

  • 版本特定细节可能过时,需对照已安装版本的官方文档确认。
  • pip wheel 不包含 HMDB2StructMapping.tsv,accurate_mass_search.py 会检测并说明如何提供。
  • 导入时会打印一行无害的内存状态提示。
  • 官方文档(3.5.0):https://pyopenms.readthedocs.io/en/release-3.5.0/;OpenMS:https://www.openms.org;GitHub:https://github.com/OpenMS/OpenMS。
  • 参考资料:references/file_io.md、references/signal_processing.md、references/feature_detection.md、references/identification.md、references/metabolomics.md、references/data_structures.md。
  • 相关技能:matchms(使用 matchms 处理、清理、比较和搜索串联质谱)。