pyOpenMS Mass Spectrometry Workflows
A ready-to-run skill for processing, quantifying, and annotating proteomics and metabolomics LC-MS/MS data with pyOpenMS.
What it does
This skill wraps pyOpenMS (the Python bindings for OpenMS) into an end-to-end mass spectrometry toolkit: read and convert mzML/mzXML/MGF, run signal-processing chains (Gaussian/SGolay smoothing, PeakPickerHiRes centroiding, normalization, S/N thresholds), detect features for either metabolomics (MassTraceDetection → ElutionPeakDetection → FeatureFindingMetabo) or centroided proteomics data, align retention times across samples, link consensus features, build label-free quant matrices, group adducts, annotate against HMDB by accurate mass, and FDR-filter peptide/protein identifications.
The centerpiece is a set of ~17 parameterized CLI scripts in scripts/ — the skill explicitly tells the agent to run a script before writing new code. Exports cover GNPS (FBMN), SIRIUS, mzTab, and pandas DataFrames. A dedicated section documents pyOpenMS 3.5.0 API breakages (e.g. FeatureFinder("centroided") removal, PeptideIdentificationList requirements, lowercase rt/mz columns), which prevents a lot of copy-paste failures from older tutorials.
Who it's for
- Proteomics and metabolomics researchers and graduate students working with LC-MS/MS
- Core-facility analysts running repeatable quantification pipelines
- Developers porting OpenMS/TOPP workflows to Python
- Not useful without MS domain knowledge and real spectra files.
Example uses
- Inspect and detect: run
inspect_ms_data.py sample.mzML --spectra-csv spectra.csvto summarize spectrum counts and RT/m/z ranges, thendetect_features_metabo.py sample.mzML --out-csv features.csvfor untargeted metabolomics features. - Multi-sample quantification study:
align_link_quantify.py s1.mzML s2.mzML s3.mzML --out-prefix study, followed byconsensus_to_matrix.py study.consensusXML --out quant.csv --normalize medianfor a median-normalized intensity matrix. - Peptide chemistry and ID post-processing:
mass_calculator.py --peptide "PEPTIDEM(Oxidation)K" --charges 1 2 3 --isotopes 5for charged m/z and isotope patterns, andprocess_identifications.py search.idXML --fasta db.fasta --fdr 0.01to export 1% FDR hits.
· · · Install guide · · ·
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on Claude Skill Mart. Copy the skills/pyopenms folder from the GitHub repo K-Dense-AI/scientific-agent-skills into my ~/.claude/skills/pyopenms/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/K-Dense-AI/scientific-agent-skills.git /tmp/scientific-agent-skills && mkdir -p ~/.claude/skills && cp -r /tmp/scientific-agent-skills/skills/pyopenms ~/.claude/skills/⚠ This is a third-party skill. Check the source repository before installing.
- Open a terminal and confirm you have Python 3.9+ and
uv:python3 --versionanduv --version. - Clone the repository:
git clone https://github.com/K-Dense-AI/scientific-agent-skills.git - Copy the skill into your Claude Code skills directory:
mkdir -p ~/.claude/skills && cp -r scientific-agent-skills/skills/pyopenms ~/.claude/skills/ - Install the library:
uv pip install pyopenms, then verify withpython -c "import pyopenms as ms; print(ms.__version__)"(the one-line memory notice on import is harmless). - Restart Claude Code, open the folder containing your mzML files, and ask something like "use the pyopenms skill to inspect this mzML file."
- To see per-script options, run
python ~/.claude/skills/pyopenms/scripts/<script>.py --help.