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 处理、清理、比较和搜索串联质谱)。