Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Complete mass spectrometry analysis platform. Use for proteomics and metabolomics workflows—feature detection, peptide/protein identification, label-free and isobaric quantification, adduct/accurate-mass annotation, and complex LC-MS/MS pipelines. Supports extensive file formats and algorithms. For simple spectral comparison and small-molecule library matching use matchms.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 59% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 25% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 33% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 23% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 48% | 0% |
PyOpenMS provides Python bindings to the OpenMS library for computational mass spectrometry, enabling analysis of proteomics and metabolomics data. Use it to read/write MS file formats, process raw spectra, detect and quantify features, identify peptides and proteins, and run end-to-end LC-MS/MS pipelines.
This skill ships ready-to-run scripts in scripts/ covering the most common high-level workflows. Prefer running a script over writing new code—each is a parameterized CLI tool that handles loading, processing, and export. Drop into the Python API (and the references/) only when no script fits.
bashuv pip install pyopenms
Verify (note: __version__ works, but the bundled binary prints a one-line memory-status notice on import that is harmless):
pythonimport pyopenms as ms print(ms.__version__) # 3.5.0
Run with python scripts/<name>.py --help for full options. All accept standard MS file formats and write featureXML/consensusXML/CSV/mzTab/PNG as appropriate.
| Script | What it does | |--------|--------------| | inspect_ms_data.py | Summarize any mzML/mzXML/featureXML/consensusXML/idXML (counts, RT/m/z ranges, TIC, metadata); optional per-spectrum CSV. | | convert_format.py | Convert between mzML/mzXML/MGF with optional MS-level, RT, and intensity filtering. | | process_spectra.py | Configurable signal-processing chain: smoothing (Gauss/SGolay), centroiding (PeakPickerHiRes), normalization, S/N and intensity thresholds. |
| Script | What it does | |--------|--------------| | detect_features_metabo.py | Untargeted metabolomics feature finding: MassTraceDetection → ElutionPeakDetection → FeatureFindingMetabo. | | detect_features_centroided.py | Peptide/centroided feature detection via FeatureFinderAlgorithmPicked. | | align_link_quantify.py | Multi-sample pipeline: detect (or load) features → RT alignment → consensus linking → quant matrix CSV. | | consensus_to_matrix.py | consensusXML → wide intensity matrix + metadata, with optional median/quantile normalization and long format. |
| Script | What it does | |--------|--------------| | detect_adducts.py | Group adducts/charge variants of the same neutral mass (MetaboliteFeatureDeconvolution). | | accurate_mass_search.py | Annotate features against HMDB by accurate mass (AccurateMassSearchEngine → mzTab/CSV). | | export_gnps_sirius.py | Export GNPS FBMN inputs (MGF + quant table) or a SIRIUS .ms file. |
| Script | What it does | |--------|--------------| | process_identifications.py | Re-index against FASTA, estimate FDR/q-values, filter (FDR/length/best-per-spectrum), export idXML + CSV. |
| Script | What it does | |--------|--------------| | mass_calculator.py | Monoisotopic/average mass, charged m/z, formula, and isotope pattern for peptides or empirical formulas. | | digest_protein.py | In-silico protease digestion of FASTA/sequence → theoretical peptides with masses and m/z. | | theoretical_spectrum.py | Generate annotated theoretical fragment spectra (b/y/a/c/x/z, losses) for a peptide. |
| Script | What it does | |--------|--------------| | extract_chromatograms.py | Build TIC/BPC and XIC traces for target m/z (CSV + optional plot). | | plot_ms_data.py | Quick plots: single spectrum, TIC, 2D feature map, MS1 signal map. |
bash# Inspect a file python scripts/inspect_ms_data.py sample.mzML --spectra-csv spectra.csv # Untargeted metabolomics: features for one sample python scripts/detect_features_metabo.py sample.mzML --out-csv features.csv # Full multi-sample quantification study 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 # Peptide chemistry 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 # Identification post-processing python scripts/process_identifications.py search.idXML --fasta db.fasta --fdr 0.01 --out filtered.idXML --csv hits.csv
These changed from older OpenMS releases—older tutorials and code will break:
FeatureFinder("centroided") was removed. UseFeatureFinderAlgorithmPicked (proteomics/centroided) or the MassTraceDetection → ElutionPeakDetection → FeatureFindingMetabo pipeline (metabolomics). See detect_features_*.py.
IdXMLFile().load/store require a ms.PeptideIdentificationList()for peptide IDs (a plain Python list raises "can not handle type"). Protein IDs remain a plain list.
MetaboliteFeatureDeconvolution, and adductsuse Elements:Charge:Probability syntax (e.g. H:+:0.4, H-2O-1:0:0.05)—not bracket notation like [M+H]+.
FeatureMap.get_df() uses lowercase rt/mz (not RT).ConsensusMap provides get_intensity_df() and get_metadata_df().
HMDBMappingFile.tsv but notHMDB2StructMapping.tsv; accurate_mass_search.py detects this and explains how to supply it.
For details: see references/data_structures.md.
Most algorithms expose an OpenMS Param object:
pythonalgo = 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)
pythonfm = ms.FeatureMap(); ms.FeatureXMLFile().load("features.featureXML", fm) df = fm.get_df() # columns include lowercase rt, mz, intensity, charge, quality cm = ms.ConsensusMap(); ms.ConsensusXMLFile().load("study.consensusXML", cm) intensities = cm.get_intensity_df() # features x samples metadata = cm.get_metadata_df() # rt, mz, charge, quality, ...
Pandas (DataFrames), NumPy (peak arrays), scikit-learn (ML), Matplotlib/Seaborn (plots), and downstream tools via export: GNPS (FBMN), SIRIUS, and mzTab.
references/file_io.md – file format handlingreferences/signal_processing.md – signal processing algorithmsreferences/feature_detection.md – feature detection and linkingreferences/identification.md – peptide and protein identificationreferences/metabolomics.md – metabolomics-specific workflowsreferences/data_structures.md – core objects and data structuresOther measured skills in the registry, with their headline benchmark lift.