agentsclimarketplace

Spectral peak detection and picking

Skill HolobiomicsLab/asb-skill-collections/collections/metabolomics/v2/skills/spectral-peak-detection-and-picking

Use when you have raw INADEQUATE NMR spectra files and need to transition from continuous spectral data to discrete peak coordinates. Use it as the first signal-processing step before clustering peaks into networks or matching against metabolite databases.From its SKILL.md

Install
npx -y skills add HolobiomicsLab/asb-skill-collections --skill spectral-peak-detection-and-picking

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 15 stars15 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its file declares

Copied from the file, not written here

The file declares its own license as CC-BY-4.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

6.2 KB, 968 tokens by cl100k_base, as published. Nobody here has run it

spectral-peak-detection-and-picking

Summary

Automated detection and extraction of spectral peaks from INADEQUATE NMR spectra using the PyINETA picking module. This is a foundational preprocessing step that identifies individual peak positions and intensities from raw spectra, enabling downstream clustering and metabolite identification.

When to use

Apply this skill when you have raw INADEQUATE NMR spectra files and need to transition from continuous spectral data to discrete peak coordinates. Use it as the first signal-processing step before clustering peaks into networks or matching against metabolite databases. Essential when working with noisy or complex spectra where manual peak annotation is infeasible.

When NOT to use

  • Input is already a processed peak list or peak network table—skip directly to clustering or matching.
  • Spectra have already been baseline-corrected and peak-picked by external NMR software—re-picking may introduce artifacts or duplicate processing.
  • You only need to visualize raw spectra without extracting discrete peaks for further analysis.

Inputs

  • Raw INADEQUATE NMR spectra files (referenced via config.ini input path)
  • Configuration file (config.ini) with spectra directory and picking parameters
  • Spectral data with defined chemical shift axes

Outputs

  • Detected peak coordinates (chemical shift positions in two dimensions)
  • Peak intensity values
  • Peak network lists (preliminary groupings of codetected peaks)
  • Picking visualization figures (if -f yes option enabled)

How to apply

Invoke the PyINETA picking module via run_pyineta.py with the -s pick or -s pick+ option, specifying a configuration file (config.ini) that contains input spectra paths and picking parameters. The picking module reads and references INADEQUATE spectra using basic shifting to normalize chemical shift references. The algorithm detects individual peaks across the spectral dimensions, outputting peak coordinates (chemical shifts) and intensities. Choose the picking step when starting from raw spectra; use pick+ to automatically run clustering, finding, and matching on the detected peaks. Validate by inspecting the generated peak list and figures to ensure peaks correspond to actual spectral features, not noise.

Related tools

Examples

python run_pyineta.py -c config.ini -o output_dir -s pick -f yes

Evaluation signals

  • Peak list is non-empty and contains coordinates within expected chemical shift ranges for INADEQUATE spectra (typically 0–200 ppm for both dimensions).
  • Number of detected peaks correlates with spectral complexity; simpler spectra should yield fewer peaks than complex mixture spectra.
  • Visualization plots show detected peaks overlaid on or near actual spectral features, confirming peaks are not noise artifacts.
  • Peaks can be successfully clustered into networks in the downstream clustering step, indicating peaks are of sufficient quality.
  • Matched metabolites in the final output align with expected metabolites in the query sample, validating pick quality indirectly.

Limitations

  • Peak picking uses basic shifting for spectral referencing, which may be insufficient for spectra with severe baseline distortions or poor shimming.
  • Algorithm performance depends on picking parameter tuning in config.ini; no automatic optimization is documented.
  • Overlapping or closely spaced peaks in high-complexity spectra may be merged into single peaks or missed entirely.
  • No changelog is provided in the repository, limiting visibility into algorithm changes or known issues across versions.

Evidence

  • [intro] Peak picking is a foundational step in the PyINETA pipeline: "pyINETA can perform basic tasks such as reading and referencing (using basic shifting) the INADEQUATE spectra and peak picking"
  • [methods] Picking module is one of the core pipeline components: "Picking

.. automodule:: pyineta.picking"

  • [intro] Picked peaks are filtered downstream to identify networks from the same compound: "It is designed to filter these picked peaks to identify networks of peaks (ideally) coming from the same compound"
  • [readme] Concrete invocation showing the picking step: "optional arguments: -s STEPS, --steps STEPS Optional: Specify which steps you want to run. Can be one of {all,load,pick,cluster,find,match,plot"
  • [intro] Spectral referencing method used in picking: "reading and referencing (using basic shifting) the INADEQUATE spectra"

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.