Use when you have raw spectroscopic datasets (NMR, HSQC, COSY, IR) in
Scanned 9/12/2026
Install to Claude Code
npx -y skills add HolobiomicsLab/asb-skill-collections --skill spectral-quality-filtering-signal-to-noise --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Spectral Quality Filtering Signal To Noise?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/holobiomicslab-spectral-quality-filtering-signal-to-noise)More formats (shields.io, HTML) on the badges page.
---
name: spectral-quality-filtering-signal-to-noise
description: Use when you have raw spectroscopic datasets (NMR, HSQC, COSY, IR) in
standardized array or DataFrame format and need to curate them for multimodal transformer
training.
license: CC-BY-4.0
metadata:
edam_operation: http://edamontology.org/operation_3695
edam_topics:
- http://edamontology.org/topic_3520
- http://edamontology.org/topic_3172
tools:
- pandas
- numpy
- Python
- DataGenerationPipeline
techniques:
- NMR
license_tier: open
provenance_tier: literature
derived_from:
- doi: 10.1002/ange.202517611
title: MMST
evidence_spans:
- No usage/docs found.
claims: []
provenance:
collection: https://w3id.org/holobiomicslab/asb-skill/collection/metabolomics/v2
assembled_by: scripts/collect_metabolomics_collection.py
sources:
- build: coll_mmst_cq
doi: 10.1002/ange.202517611
title: MMST
dedup_kept_from: coll_mmst_cq
schema_version: 0.2.0
attribution:
generator: AgenticScienceBuilder
original_doi: 10.1002/ange.202517611
all_source_dois:
- 10.1002/ange.202517611
zenodo_doi: 10.5281/zenodo.20794027
curators: []
promoter: Louis-Félix Nothias
sponsor: CNRS & Université Côte d'Azur
---
# spectral-quality-filtering-signal-to-noise
## Summary
Filter spectroscopic data (NMR, HSQC, COSY, IR) by signal-to-noise ratio and peak count thresholds to remove low-quality spectra before multimodal transformer training. This ensures that only high-fidelity spectroscopic profiles enter the training pipeline, reducing noise-driven artifacts in downstream molecular structure predictions.
## When to use
You have raw spectroscopic datasets (NMR, HSQC, COSY, IR) in standardized array or DataFrame format and need to curate them for multimodal transformer training. Apply this skill when you observe that raw spectra contain variable quality due to instrument calibration drift, sample degradation, or experimental conditions—i.e., when per-spectrum signal-to-noise ratios and peak counts vary significantly across your dataset.
## When NOT to use
- Input spectra are already pre-filtered or quality-assured by the data provider (e.g., vendor-curated databases with guaranteed SNR thresholds).
- You are working with synthetic or simulated spectra generated by a validated model (e.g., SGNN for NMR or Chemprop-IR), which typically have consistent quality by design.
- Your downstream analysis is exploratory or does not require stringent data consistency (e.g., casual visualization or hypothesis generation rather than model training).
## Inputs
- Parsed spectral arrays (NMR, HSQC, COSY, IR) in numpy array or pandas DataFrame format with normalized chemical shift scales and intensity ranges
- Per-spectrum metadata (signal-to-noise ratio, peak count, molecular identifier)
## Outputs
- Curated multimodal spectral tensors with quality-filtered spectra
- Deduplicated and validated joint training records pairing each molecule with its complete spectroscopic profile across all four modalities
- Quality metrics report (spectra retained, spectra rejected, SNR/peak count distribution)
## How to apply
After parsing spectral files into normalized numpy arrays or pandas DataFrames (with chemical shift scales and intensity ranges aligned across modalities), compute per-spectrum signal-to-noise ratio (SNR) and peak count metrics. Establish SNR and peak count thresholds based on your instrument's typical dynamic range and the molecular complexity of your target analytes; the article does not specify exact cutoff values but documents that these are applied as quality gates. Retain only spectra meeting both thresholds, removing duplicates and corrupted entries (NaN or infinite values). Validate the filtered output by confirming no NaN/infinite values remain in tensor arrays and that modality coverage is complete (each molecule has data across all four spectroscopic modalities).
## Related tools
- **pandas** (Data manipulation and quality metric computation (SNR, peak counts) on spectral DataFrames)
- **numpy** (Numerical array operations for spectral tensor validation (NaN/inf detection, normalization))
- **Python** (Scripting and implementation of quality filtering logic)
- **DataGenerationPipeline** (Wrapper class that integrates spectral parsing, curation, and quality filtering into a unified pipeline) — https://github.com/mpriessner/MultiModalSpectralTransformer
## Evaluation signals
- No NaN or infinite values remain in tensor arrays after filtering (verified by numpy.isnan() and numpy.isinf() checks).
- All retained spectra exceed the specified SNR threshold; rejected spectra fall below it (deterministic filtering rule).
- All retained spectra meet the minimum peak count threshold; rejected spectra do not.
- Each retained molecule has complete modality coverage (NMR, HSQC, COSY, IR tensors all present and aligned by molecular identifier).
- Output tensor shape, data type, and coverage are consistent with input specification (e.g., (N, freq_bins, intensity) for each modality where N is number of retained spectra).
## Limitations
- SNR and peak count thresholds are not specified in the article; practitioners must define them empirically based on their instrument characteristics and molecular scope. Overly stringent thresholds may discard valid spectra; too-loose thresholds may admit noisy data.
- The filtering approach assumes that SNR and peak count are independent quality markers; in practice, poorly resolved spectra may have high SNR but few peaks (or vice versa), requiring domain judgment or multi-variate quality scoring.
- No guidance is provided on how to handle partial modality loss (e.g., a molecule with valid NMR, HSQC, IR but corrupted COSY). The current workflow requires complete modality coverage, which may reduce effective sample size.
- The README does not document computational cost of quality filtering at scale (e.g., for datasets with millions of spectra). SNR computation on high-resolution arrays can be memory-intensive.
## Evidence
- [methods] Implement data curation functions to filter spectra by quality metrics (signal-to-noise ratio, peak count thresholds) and remove duplicates or corrupted entries.: "Implement data curation functions to filter spectra by quality metrics (signal-to-noise ratio, peak count thresholds) and remove duplicates or corrupted entries."
- [methods] Validate pipeline output shape, data type, and modality coverage; verify that no NaN or infinite values remain in tensor arrays.: "Validate pipeline output shape, data type, and modality coverage; verify that no NaN or infinite values remain in tensor arrays."
- [methods] Align multi-modal spectra by molecular identifier and create joint training records pairing each molecule with its complete spectroscopic profile across all four modalities.: "Align multi-modal spectra by molecular identifier and create joint training records pairing each molecule with its complete spectroscopic profile across all four modalities."
- [methods] Parse NMR, HSQC, COSY, and IR spectral files into standardized numpy arrays or pandas DataFrames, normalizing chemical shift scales and intensity ranges across modalities.: "Parse NMR, HSQC, COSY, and IR spectral files into standardized numpy arrays or pandas DataFrames, normalizing chemical shift scales and intensity ranges across modalities."
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!