mcpField
P
pyopenms

pyopenms

github.com/jackspace数据与数据库1637 次安装12 周前更新
代码仓库

关于 pyopenms

PyOpenMS 为 OpenMS 库提供 Python 绑定,支持蛋白质组学和代谢组学中的计算质谱分析。它涵盖文件处理、谱图处理、特征检测、鉴定及定量分析工作流。

主要功能

  1. 01质谱文件格式处理
  2. 02谱图平滑、过滤与归一化
  3. 03特征检测与关联
  4. 04肽和蛋白质鉴定
  5. 05代谢组学预处理与分析

适用场景

  1. 01读取并处理 mzML 实验数据
  2. 02检测不同样本中的特征
  3. 03按 FDR 过滤肽鉴定结果
  4. 04准备非靶向代谢组学数据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jackspace/claudeskillz --skill pyopenms

安装后在 Claude Code 中输入/pyopenms确认已加载。

附带文件SKILL.json

详细介绍

PyOpenMS

概述

PyOpenMS 为用于计算质谱的 OpenMS 库提供 Python 绑定,可用于分析蛋白质组学和代谢组学数据。适用于处理质谱文件格式、处理光谱数据、检测特征、鉴定肽段/蛋白质以及执行定量分析。

安装

使用 uv 安装:

uv pip install pyopenms

验证安装:

import pyopenms
print(pyopenms.__version__)

核心功能

PyOpenMS 将功能划分为以下几个领域:

1. 文件 I/O 和数据格式

处理质谱文件格式,并在不同表示形式之间进行转换。

支持的格式:mzML、mzXML、TraML、mzTab、FASTA、pepXML、protXML、mzIdentML、featureXML、consensusXML、idXML

基本文件读取:

import pyopenms as ms

# Read mzML file
exp = ms.MSExperiment()
ms.MzMLFile().load("data.mzML", exp)

# Access spectra
for spectrum in exp:
    mz, intensity = spectrum.get_peaks()
    print(f"Spectrum: {len(mz)} peaks")

有关详细的文件处理说明:参见 references/file_io.md

2. 信号处理

通过平滑、滤波、质心化和归一化处理原始光谱数据。

基本光谱处理:

# Smooth spectrum with Gaussian filter
gaussian = ms.GaussFilter()
params = gaussian.getParameters()
params.setValue("gaussian_width", 0.1)
gaussian.setParameters(params)
gaussian.filterExperiment(exp)

有关算法详情:参见 references/signal_processing.md

3. 特征检测

检测并关联不同光谱和样本中的特征,以进行定量分析。

# Detect features
ff = ms.FeatureFinder()
ff.run("centroided", exp, features, params, ms.FeatureMap())

有关完整工作流:参见 references/feature_detection.md

4. 肽段和蛋白质鉴定

与搜索引擎集成并处理鉴定结果。

支持的引擎:Comet、Mascot、MSGFPlus、XTandem、OMSSA、Myrimatch

基本鉴定工作流:

# Load identification data
protein_ids = []
peptide_ids = []
ms.IdXMLFile().load("identifications.idXML", protein_ids, peptide_ids)

# Apply FDR filtering
fdr = ms.FalseDiscoveryRate()
fdr.apply(peptide_ids)

有关详细工作流:参见 references/identification.md

5. 代谢组学分析

执行非靶向代谢组学预处理和分析。

典型工作流:

  1. 加载并处理原始数据
  2. 检测特征
  3. 对齐不同样本的保留时间
  4. 将特征关联到共识图谱
  5. 使用化合物数据库进行注释

有关完整的代谢组学工作流:参见 references/metabolomics.md

数据结构

PyOpenMS 使用以下主要对象:

  • MSExperiment:光谱和色谱图的集合
  • MSSpectrum:由 m/z 和强度数据对组成的单个质谱
  • MSChromatogram:色谱迹线
  • Feature:带有质量指标的已检测色谱峰
  • FeatureMap:特征集合
  • PeptideIdentification:肽段搜索结果
  • ProteinIdentification:蛋白质搜索结果

有关详细文档:参见 references/data_structures.md

常见工作流

快速入门:加载和探索数据
import pyopenms as ms

# Load mzML file
exp = ms.MSExperiment()
ms.MzMLFile().load("sample.mzML", exp)

# Get basic statistics
print(f"Number of spectra: {exp.getNrSpectra()}")
print(f"Number of chromatograms: {exp.getNrChromatograms()}")

# Examine first spectrum
spec = exp.getSpectrum(0)
print(f"MS level: {spec.getMSLevel()}")
print(f"Retention time: {spec.getRT()}")
mz, intensity = spec.get_peaks()
print(f"Peaks: {len(mz)}")
参数管理

大多数算法都使用参数系统:

# Get algorithm parameters
algo = ms.GaussFilter()
params = algo.getParameters()

# View available parameters
for param in params.keys():
    print(f"{param}: {params.getValue(param)}")

# Modify parameters
params.setValue("gaussian_width", 0.2)
algo.setParameters(params)
导出到 Pandas

将数据转换为 pandas DataFrame 以进行分析:

import pyopenms as ms
import pandas as pd

# Load feature map
fm = ms.FeatureMap()
ms.FeatureXMLFile().load("features.featureXML", fm)

# Convert to DataFrame
df = fm.get_df()
print(df.head())

与其他工具集成

PyOpenMS 可与以下工具集成:

  • Pandas:将数据导出到 DataFrame
  • NumPy:处理峰值数组
  • Scikit-learn:对 MS 数据进行机器学习
  • Matplotlib/Seaborn:可视化
  • R:通过 rpy2 桥接

资源

参考资料

  • references/file_io.md - 全面的文件格式处理
  • references/signal_processing.md - 信号处理算法
  • references/feature_detection.md - 特征检测和关联
  • references/identification.md - 肽段和蛋白质鉴定
  • references/metabolomics.md - 代谢组学专用工作流
  • references/data_structures.md - 核心对象和数据结构

评论

支持 Markdown