Source: https://github.com/aipoch/medical-research-skills
Matchms Skill
When to Use
- Use this skill when you need process, clean, and compare mass spectrometry (ms/ms) spectra with matchms; use when you need reproducible spectral filtering and similarity scoring for metabolomics workflows in a reproducible workflow.
- Use this skill when a data analytics task needs a packaged method instead of ad-hoc freeform output.
- Use this skill when the user expects a concrete deliverable, validation step, or file-based result.
- Use this skill when
scripts/similarity_pipeline.py is the most direct path to complete the request.
- Use this skill when you need the
matchms package behavior rather than a generic answer.
Key Features
- Scope-focused workflow aligned to: Process, clean, and compare mass spectrometry (MS/MS) spectra with Matchms; use when you need reproducible spectral filtering and similarity scoring for metabolomics workflows.
- Packaged executable path(s):
scripts/similarity_pipeline.py.
- Reference material available in
references/ for task-specific guidance.
- Structured execution path designed to keep outputs consistent and reviewable.
Dependencies
Python: 3.10+. Repository baseline for current packaged skills.
Third-party packages: not explicitly version-pinned in this skill package. Add pinned versions if this skill needs stricter environment control.
Example Usage
cd "20260316/scientific-skills/Data Analytics/matchms"
python -m py_compile scripts/similarity_pipeline.py
python scripts/similarity_pipeline.py --help
Example run plan:
- Confirm the user input, output path, and any required config values.
- Edit the in-file
CONFIG block or documented parameters if the script uses fixed settings.
- Run
python scripts/similarity_pipeline.py with the validated inputs.
- Review the generated output and return the final artifact with any assumptions called out.
Implementation Details
- Execution model: validate the request, choose the packaged workflow, and produce a bounded deliverable.
- Input controls: confirm the source files, scope limits, output format, and acceptance criteria before running any script.
- Primary implementation surface:
scripts/similarity_pipeline.py.
- Reference guidance:
references/ contains supporting rules, prompts, or checklists.
- Parameters to clarify first: input path, output path, scope filters, thresholds, and any domain-specific constraints.
- Output discipline: keep results reproducible, identify assumptions explicitly, and avoid undocumented side effects.
1. When to Use
Use this skill when you need to:
- Import and harmonize MS/MS spectra from common community formats (e.g., MGF/MSP) before analysis.
- Clean spectra (peak filtering, intensity normalization) to improve downstream similarity scoring and identification.
- Compute spectral similarity (Cosine/Modified Cosine/Fingerprint-based) for library matching or clustering.
- Build reproducible, configurable processing pipelines for metabolomics projects.
- Compare many spectra efficiently (all-vs-all or query-vs-library) and store/inspect score outputs.
2. Key Features
- Import/Export support: Read spectra from mzML, mzXML, MGF, MSP, and JSON (depending on installed readers).
- Filtering & harmonization: Metadata standardization, peak cleaning, intensity normalization, and other reusable filters.
- Similarity scoring:
- Cosine similarity (Greedy/Hungarian variants)
- Modified Cosine (accounts for precursor mass shifts)
- Fingerprint-based similarities (when molecular fingerprints are available)
- Pipeline composition: Chain filters and scoring steps into repeatable workflows.
Additional reference material (if present in the repository):
- Filters:
references/filtering.md
- Similarity:
references/similarity.md
- Workflows:
references/workflows.md
3. Dependencies
matchms (version depends on your environment; pin in your project, e.g., matchms>=0.20,<1.0)
numpy (e.g., numpy>=1.20)
scipy (e.g., scipy>=1.7)
rdkit (optional; required for chemistry/fingerprint-related functionality, version varies by distribution)
4. Example Usage
A minimal, runnable example that loads spectra from an MGF file and computes pairwise cosine scores:
from matchms.importing import load_from_mgf
from matchms import calculate_scores
from matchms.similarity import CosineGreedy
def main():
# Load spectra from an MGF file
spectra = list(load_from_mgf("data.mgf"))
# Compute similarity scores (all-vs-all)
scores = calculate_scores(
references=spectra,
queries=spectra,
similarity_function=CosineGreedy()
)
# Iterate over computed scores
for (reference_idx, query_idx, score, n_matches) in scores:
print(
f"ref={reference_idx:>3} query={query_idx:>3} "
f"cosine={score:.4f} matches={n_matches}"
)
if __name__ == "__main__":
main()
5. Implementation Details
- Data model: Matchms operates on
Spectrum objects containing peak m/z and intensity arrays plus metadata (e.g., precursor m/z, charge, compound name/identifier).
- Filtering stage: Typical pipelines apply filters to:
- standardize/repair metadata fields,
- remove noise peaks (e.g., by intensity threshold or m/z window rules),
- normalize intensities (commonly to a maximum of 1.0 or to unit norm).
See
references/filtering.md for filter patterns and recommended sequences.
- Cosine similarity (Greedy/Hungarian):
- Peaks are matched within an m/z tolerance (implementation-specific defaults; configure via the similarity class parameters).
- Greedy matching selects best available peak matches iteratively.
- Hungarian matching solves an assignment problem to maximize total match score under one-to-one constraints.
- Modified Cosine:
- Extends cosine matching by allowing peak alignment with a precursor mass shift, improving matching for related compounds/adducts.
- Typically requires precursor m/z metadata to be present and consistent.
- Fingerprint similarity (optional):
- Requires molecular fingerprints (often derived via RDKit) and compares spectra/compounds using fingerprint similarity metrics.
- Use when you have structure annotations or can compute fingerprints reliably.
- Workflow reproducibility:
- Prefer explicit, ordered filter chains and pinned dependency versions.
- Store configuration (tolerances, normalization choices, filters used) alongside results for traceability.
See
references/workflows.md for pipeline organization guidance.
1---2name: matchms-23description: Process, clean, and compare mass spectrometry (MS/MS) spectra with Matchms; use when you need reproducible spectral filtering and similarity scoring for metabolomics workflows.4license: MIT5---6> **Source**: [https://github.com/aipoch/medical-research-skills](https://github.com/aipoch/medical-research-skills)78# Matchms Skill910## When to Use1112- Use this skill when you need process, clean, and compare mass spectrometry (ms/ms) spectra with matchms; use when you need reproducible spectral filtering and similarity scoring for metabolomics workflows in a reproducible workflow.13- Use this skill when a data analytics task needs a packaged method instead of ad-hoc freeform output.14- Use this skill when the user expects a concrete deliverable, validation step, or file-based result.15- Use this skill when `scripts/similarity_pipeline.py` is the most direct path to complete the request.16- Use this skill when you need the `matchms` package behavior rather than a generic answer.1718## Key Features1920- Scope-focused workflow aligned to: Process, clean, and compare mass spectrometry (MS/MS) spectra with Matchms; use when you need reproducible spectral filtering and similarity scoring for metabolomics workflows.21- Packaged executable path(s): `scripts/similarity_pipeline.py`.22- Reference material available in `references/` for task-specific guidance.23- Structured execution path designed to keep outputs consistent and reviewable.2425## Dependencies2627- `Python`: `3.10+`. Repository baseline for current packaged skills.28- `Third-party packages`: `not explicitly version-pinned in this skill package`. Add pinned versions if this skill needs stricter environment control.2930## Example Usage3132```bash33cd "20260316/scientific-skills/Data Analytics/matchms"34python -m py_compile scripts/similarity_pipeline.py35python scripts/similarity_pipeline.py --help36```3738Example run plan:391. Confirm the user input, output path, and any required config values.402. Edit the in-file `CONFIG` block or documented parameters if the script uses fixed settings.413. Run `python scripts/similarity_pipeline.py` with the validated inputs.424. Review the generated output and return the final artifact with any assumptions called out.4344## Implementation Details4546- Execution model: validate the request, choose the packaged workflow, and produce a bounded deliverable.47- Input controls: confirm the source files, scope limits, output format, and acceptance criteria before running any script.48- Primary implementation surface: `scripts/similarity_pipeline.py`.49- Reference guidance: `references/` contains supporting rules, prompts, or checklists.50- Parameters to clarify first: input path, output path, scope filters, thresholds, and any domain-specific constraints.51- Output discipline: keep results reproducible, identify assumptions explicitly, and avoid undocumented side effects.5253## 1. When to Use5455Use this skill when you need to:5657- Import and harmonize MS/MS spectra from common community formats (e.g., MGF/MSP) before analysis.58- Clean spectra (peak filtering, intensity normalization) to improve downstream similarity scoring and identification.59- Compute spectral similarity (Cosine/Modified Cosine/Fingerprint-based) for library matching or clustering.60- Build reproducible, configurable processing pipelines for metabolomics projects.61- Compare many spectra efficiently (all-vs-all or query-vs-library) and store/inspect score outputs.6263## 2. Key Features6465- **Import/Export support**: Read spectra from mzML, mzXML, MGF, MSP, and JSON (depending on installed readers).66- **Filtering & harmonization**: Metadata standardization, peak cleaning, intensity normalization, and other reusable filters.67- **Similarity scoring**:68 - Cosine similarity (Greedy/Hungarian variants)69 - Modified Cosine (accounts for precursor mass shifts)70 - Fingerprint-based similarities (when molecular fingerprints are available)71- **Pipeline composition**: Chain filters and scoring steps into repeatable workflows.7273Additional reference material (if present in the repository):74- Filters: `references/filtering.md`75- Similarity: `references/similarity.md`76- Workflows: `references/workflows.md`7778## 3. Dependencies7980- `matchms` (version depends on your environment; pin in your project, e.g., `matchms>=0.20,<1.0`)81- `numpy` (e.g., `numpy>=1.20`)82- `scipy` (e.g., `scipy>=1.7`)83- `rdkit` (optional; required for chemistry/fingerprint-related functionality, version varies by distribution)8485## 4. Example Usage8687A minimal, runnable example that loads spectra from an MGF file and computes pairwise cosine scores:8889```python90from matchms.importing import load_from_mgf91from matchms import calculate_scores92from matchms.similarity import CosineGreedy9394def main():95 # Load spectra from an MGF file96 spectra = list(load_from_mgf("data.mgf"))9798 # Compute similarity scores (all-vs-all)99 scores = calculate_scores(100 references=spectra,101 queries=spectra,102 similarity_function=CosineGreedy()103 )104105 # Iterate over computed scores106 for (reference_idx, query_idx, score, n_matches) in scores:107 print(108 f"ref={reference_idx:>3} query={query_idx:>3} "109 f"cosine={score:.4f} matches={n_matches}"110 )111112if __name__ == "__main__":113 main()114```115116## 5. Implementation Details117118- **Data model**: Matchms operates on `Spectrum` objects containing peak m/z and intensity arrays plus metadata (e.g., precursor m/z, charge, compound name/identifier).119- **Filtering stage**: Typical pipelines apply filters to:120 - standardize/repair metadata fields,121 - remove noise peaks (e.g., by intensity threshold or m/z window rules),122 - normalize intensities (commonly to a maximum of 1.0 or to unit norm).123 See `references/filtering.md` for filter patterns and recommended sequences.124- **Cosine similarity (Greedy/Hungarian)**:125 - Peaks are matched within an m/z tolerance (implementation-specific defaults; configure via the similarity class parameters).126 - **Greedy** matching selects best available peak matches iteratively.127 - **Hungarian** matching solves an assignment problem to maximize total match score under one-to-one constraints.128- **Modified Cosine**:129 - Extends cosine matching by allowing peak alignment with a precursor mass shift, improving matching for related compounds/adducts.130 - Typically requires precursor m/z metadata to be present and consistent.131- **Fingerprint similarity (optional)**:132 - Requires molecular fingerprints (often derived via RDKit) and compares spectra/compounds using fingerprint similarity metrics.133 - Use when you have structure annotations or can compute fingerprints reliably.134- **Workflow reproducibility**:135 - Prefer explicit, ordered filter chains and pinned dependency versions.136 - Store configuration (tolerances, normalization choices, filters used) alongside results for traceability.137 See `references/workflows.md` for pipeline organization guidance.