home / skills / microck / ordinary-claude-skills / pyopenms

pyopenms skill

/skills_all/pyopenms

This skill helps you analyze mass spectrometry data with PyOpenMS, enabling file handling, signal processing, feature detection, and quantitative proteomics

npx playbooks add skill microck/ordinary-claude-skills --skill pyopenms

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
5.5 KB
---
name: pyopenms
description: Python interface to OpenMS for mass spectrometry data analysis. Use for LC-MS/MS proteomics and metabolomics workflows including file handling (mzML, mzXML, mzTab, FASTA, pepXML, protXML, mzIdentML), signal processing, feature detection, peptide identification, and quantitative analysis. Apply when working with mass spectrometry data, analyzing proteomics experiments, or processing metabolomics datasets.
---

# PyOpenMS

## Overview

PyOpenMS provides Python bindings to the OpenMS library for computational mass spectrometry, enabling analysis of proteomics and metabolomics data. Use for handling mass spectrometry file formats, processing spectral data, detecting features, identifying peptides/proteins, and performing quantitative analysis.

## Installation

Install using uv:

```bash
uv uv pip install pyopenms
```

Verify installation:

```python
import pyopenms
print(pyopenms.__version__)
```

## Core Capabilities

PyOpenMS organizes functionality into these domains:

### 1. File I/O and Data Formats

Handle mass spectrometry file formats and convert between representations.

**Supported formats**: mzML, mzXML, TraML, mzTab, FASTA, pepXML, protXML, mzIdentML, featureXML, consensusXML, idXML

Basic file reading:

```python
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")
```

**For detailed file handling**: See `references/file_io.md`

### 2. Signal Processing

Process raw spectral data with smoothing, filtering, centroiding, and normalization.

Basic spectrum processing:

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

**For algorithm details**: See `references/signal_processing.md`

### 3. Feature Detection

Detect and link features across spectra and samples for quantitative analysis.

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

**For complete workflows**: See `references/feature_detection.md`

### 4. Peptide and Protein Identification

Integrate with search engines and process identification results.

**Supported engines**: Comet, Mascot, MSGFPlus, XTandem, OMSSA, Myrimatch

Basic identification workflow:

```python
# 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)
```

**For detailed workflows**: See `references/identification.md`

### 5. Metabolomics Analysis

Perform untargeted metabolomics preprocessing and analysis.

Typical workflow:
1. Load and process raw data
2. Detect features
3. Align retention times across samples
4. Link features to consensus map
5. Annotate with compound databases

**For complete metabolomics workflows**: See `references/metabolomics.md`

## Data Structures

PyOpenMS uses these primary objects:

- **MSExperiment**: Collection of spectra and chromatograms
- **MSSpectrum**: Single mass spectrum with m/z and intensity pairs
- **MSChromatogram**: Chromatographic trace
- **Feature**: Detected chromatographic peak with quality metrics
- **FeatureMap**: Collection of features
- **PeptideIdentification**: Search results for peptides
- **ProteinIdentification**: Search results for proteins

**For detailed documentation**: See `references/data_structures.md`

## Common Workflows

### Quick Start: Load and Explore Data

```python
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)}")
```

### Parameter Management

Most algorithms use a parameter system:

```python
# 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)
```

### Export to Pandas

Convert data to pandas DataFrames for analysis:

```python
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())
```

## Integration with Other Tools

PyOpenMS integrates with:
- **Pandas**: Export data to DataFrames
- **NumPy**: Work with peak arrays
- **Scikit-learn**: Machine learning on MS data
- **Matplotlib/Seaborn**: Visualization
- **R**: Via rpy2 bridge

## Resources

- **Official documentation**: https://pyopenms.readthedocs.io
- **OpenMS documentation**: https://www.openms.org
- **GitHub**: https://github.com/OpenMS/OpenMS

## References

- `references/file_io.md` - Comprehensive file format handling
- `references/signal_processing.md` - Signal processing algorithms
- `references/feature_detection.md` - Feature detection and linking
- `references/identification.md` - Peptide and protein identification
- `references/metabolomics.md` - Metabolomics-specific workflows
- `references/data_structures.md` - Core objects and data structures

Overview

This skill provides Python bindings to the OpenMS library for computational mass spectrometry, enabling end-to-end LC-MS/MS proteomics and metabolomics analysis. It exposes file I/O for common MS formats, signal processing, feature detection, identification workflows, and quantitative tools so you can build reproducible pipelines in Python.

How this skill works

The skill wraps OpenMS C++ algorithms as Python classes and functions that operate on core data structures like MSExperiment, MSSpectrum, FeatureMap, PeptideIdentification, and ProteinIdentification. You load mzML/mzXML/mzTab/FASTA/idXML and other formats, apply signal processing (smoothing, centroiding, filtering), detect and align features across runs, run or import identifications, and export results to pandas/NumPy for downstream analysis. Parameters are exposed via a consistent algorithm parameter system for reproducible tuning.

When to use it

  • Building reproducible LC-MS/MS proteomics pipelines in Python
  • Preprocessing and denoising raw mass spectra (centroiding, smoothing)
  • Detecting features and linking them across samples for quantitation
  • Importing, filtering, and processing peptide/protein identifications and FDR control
  • Processing untargeted metabolomics workflows including alignment and annotation

Best practices

  • Work with centroided spectra where algorithms expect them; apply appropriate centroiding/denoising first
  • Tune algorithm parameters using the provided parameter objects and save parameter sets for reproducibility
  • Convert heavy numerical outputs to pandas/NumPy early for exploratory analysis and ML integration
  • Use feature alignment and consensus maps when comparing multiple runs for quantitation
  • Apply FDR filtering after identification and keep provenance metadata with results

Example use cases

  • Load an mzML experiment, smooth spectra, centroid peaks, and export basic QC metrics
  • Detect chromatographic features in multiple runs, perform retention-time alignment, and build a consensus feature table for quantitation
  • Import idXML/pepXML identifications, apply FalseDiscoveryRate filtering, and map peptide IDs back to spectra
  • Run an untargeted metabolomics pipeline: feature detection, RT alignment, consensus building, and annotation against compound databases
  • Export FeatureMap or identification results to pandas DataFrame for visualization and machine learning

FAQ

How do I install and verify the package?

Install with pip (pip install pyopenms) and verify by importing pyopenms and printing pyopenms.__version__.

What file formats are supported?

Common MS formats are supported including mzML, mzXML, TraML, mzTab, FASTA, pepXML, protXML, mzIdentML, featureXML, consensusXML, and idXML.

Can I integrate outputs with pandas and scikit-learn?

Yes — FeatureMap and other objects can be converted to DataFrames or NumPy arrays for visualization, statistical analysis, and ML workflows.