Use when when performing reverse spectral search on MS/MS data suspected to contain chimeric spectra (multiple co-isolated precursors), and you need to increase the number of reliable spectral matches while filtering out false positives.
Scanned 9/12/2026
Install to Claude Code
npx -y skills add HolobiomicsLab/asb-skill-collections --skill penalty-factor-application-in-spectral-search --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Penalty Factor Application In Spectral Search?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/holobiomicslab-penalty-factor-application-in-spectral-search-asb-skill-collections)More formats (shields.io, HTML) on the badges page.
---
name: penalty-factor-application-in-spectral-search
description: Use when when performing reverse spectral search on MS/MS data suspected to contain chimeric spectra (multiple co-isolated precursors), and you need to increase the number of reliable spectral matches while filtering out false positives.
license: CC-BY-4.0
metadata:
edam_operation: http://edamontology.org/operation_3800
edam_topics:
- http://edamontology.org/topic_3520
- http://edamontology.org/topic_0121
tools:
- reverse_search
- reverse_search (cosine similarity)
- reverse_search (entropy similarity)
- reverse_search (Bhattacharyya angle)
techniques:
- LC-MS
derived_from:
- doi: 10.1021/acs.analchem.5c02047
title: Reverse Spectral Search
evidence_spans:
- github.com/Philipbear/reverse_search
claims: []
provenance:
collection: https://w3id.org/holobiomicslab/asb-skill/collection/metabolomics/v2
assembled_by: scripts/collect_metabolomics_collection.py
sources:
- build: coll_reverse_spectral_search_cq
doi: 10.1021/acs.analchem.5c02047
title: Reverse Spectral Search
dedup_kept_from: coll_reverse_spectral_search_cq
schema_version: 0.2.0
attribution:
generator: AgenticScienceBuilder
original_doi: 10.1021/acs.analchem.5c02047
all_source_dois:
- 10.1021/acs.analchem.5c02047
zenodo_doi: 10.5281/zenodo.20794027
curators: []
promoter: Louis-Félix Nothias
sponsor: CNRS & Université Côte d'Azur
---
# penalty-factor-application-in-spectral-search
## Summary
Apply a penalty factor to unmatched peaks in reverse MS/MS spectral search scoring to increase the number of valid spectral matches while maintaining rigorous quality control for chimeric spectra mitigation. This enhances sensitivity without sacrificing specificity in metabolite annotation.
## When to use
When performing reverse spectral search on MS/MS data suspected to contain chimeric spectra (multiple co-isolated precursors), and you need to increase the number of reliable spectral matches while filtering out false positives. Specifically, use this skill when standard forward spectral search yields insufficient matches due to chimeric peak contamination in query spectra.
## When NOT to use
- Input spectra are already known to be high-quality (non-chimeric) and forward search already achieves sufficient match sensitivity — penalty factors are most beneficial when baseline sensitivity is low due to chimeric contamination.
- Library spectrum is incomplete or poorly characterized — penalty factors assume unmatched peaks are noise or chimeric artifacts, not genuine missing library peaks.
- Analysis goal requires unbiased scoring without penalty adjustments (e.g., for benchmarking or theoretical comparison of raw similarity metrics).
## Inputs
- query MS/MS spectrum (m/z and intensity pairs)
- library MS/MS spectrum (m/z and intensity pairs)
- m/z tolerance threshold (scalar, e.g., 0.1 Da or 5 ppm)
- penalty factor (scalar, unitless multiplier or reduction coefficient)
## Outputs
- penalized match score (scalar, typically 0–1 for normalized metrics)
- matched peak count (integer)
- unmatched peak count (integer)
## How to apply
Load a query MS/MS spectrum (m/z and intensity pairs) and a library MS/MS spectrum. Identify matched peaks between query and library within a specified m/z tolerance threshold (typically 0.1 Da or 5 ppm). Calculate a base match score from matched peak pairs using a similarity metric (cosine similarity, entropy similarity, or Bhattacharyya angle). Identify all unmatched peaks in the query spectrum that fall outside the tolerance window. Apply a penalty factor (a multiplicative or additive reduction) to the base match score for each unmatched peak, reducing the final score proportionally to the number of unmatched peaks. Return the penalized match score; this score is less affected by noise and chimeric contamination than the raw match score, improving discrimination between true and false identifications.
## Related tools
- **reverse_search (cosine similarity)** (Computes base cosine similarity match score between query and library spectra before penalty application) — https://github.com/Philipbear/reverse_search/blob/main/reverse_spectral_search/cosine.py
- **reverse_search (entropy similarity)** (Alternative similarity metric for base match score; entropy-weighted for spectral feature importance) — https://github.com/Philipbear/reverse_search/blob/main/reverse_spectral_search/entropy.py
- **reverse_search (Bhattacharyya angle)** (Alternative similarity metric for base match score; probabilistic distance measure) — https://github.com/Philipbear/reverse_search/blob/main/reverse_spectral_search/bhattacharya1.py
## Examples
```
from reverse_spectral_search.cosine import cosine_similarity; base_score = cosine_similarity(query_spectrum, library_spectrum, mz_tol=0.1); penalized_score = base_score * (1 - penalty_factor * unmatched_peak_count / len(query_spectrum))
```
## Evaluation signals
- Penalized score is lower than or equal to the base (unpenalized) match score; verify no penalty factor increases the score.
- Penalized score decreases monotonically with increasing number of unmatched peaks, confirming penalty application is consistent.
- Spectral matches flagged as valid pass quality control thresholds; downstream metabolite annotations can be verified against known standards or orthogonal analytical data.
- Chimeric spectra (those with multi-modal peak distributions or high unmatched peak counts) receive lower penalized scores compared to clean spectra, filtering them appropriately.
- Comparison of penalized vs. unpenalized match scores shows improved specificity (fewer false positive identifications) with acceptable sensitivity (true positives retained above a chosen threshold).
## Limitations
- Penalty factor magnitude and functional form (linear, exponential, etc.) must be empirically optimized per dataset or instrument; no universal default is provided in the source material.
- The method assumes unmatched peaks are primarily chimeric contamination or noise; genuine low-abundance library peaks may be incorrectly penalized.
- Performance depends on m/z tolerance threshold; too loose a tolerance increases false matches, too tight a tolerance increases unmatched peaks and over-penalization.
- No changelog is documented in the repository, limiting reproducibility and traceability of penalty factor tuning across versions.
## Evidence
- [readme] Chimeric spectra are ubiquitous in MS/MS data, which compromises the quality and reliability of MS/MS matching-based metabolite annotation.: "Chimeric spectra are ubiquitous in MS/MS data, which compromises the quality and reliability of MS/MS matching-based metabolite annotation."
- [readme] Reverse spectral search is a simple yet overlooked solution to chimeric spectra.: "Reverse spectral search is a simple yet overlooked solution to chimeric spectra."
- [readme] A penalty factor for unmatched peaks in reverse search increases the number of spectral matches while maintaining rigorous quality control.: "enhanced the reverse search by introducing a penalty factor to unmatched peaks, which increases the number of spectral matches while maintaining rigorous quality control."
- [other] Workflow: Identify unmatched peaks and apply penalty factor to base score.: "Identify unmatched peaks in the query spectrum that have no corresponding library peak within tolerance. Apply a penalty factor to the base match score for each unmatched peak to reduce the final"
- [other] Calculate base match score using specified similarity metrics.: "Calculate the base match score from matched peak pairs (e.g., cosine similarity or intensity-weighted sum)."
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!