Skip to content
Back to skills

Lcms Peak Intensity Filtering

ASecurity

Use when after XCMS peak picking, alignment, and grouping when you have

  • 16 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 12, 2026
ai-agentsgitdatabase

Security analysis

A100/100

Scanned September 12, 2026

npx -y skills add HolobiomicsLab/asb-skill-collections --skill lcms-peak-intensity-filtering --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Lcms Peak Intensity Filtering?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Lcms Peak Intensity Filtering
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/holobiomicslab-lcms-peak-intensity-filtering/badge)](https://www.skillsdirectory.com/skills/holobiomicslab-lcms-peak-intensity-filtering)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: lcms-peak-intensity-filtering
description: Use when after XCMS peak picking, alignment, and grouping when you have
  identified putative incorporations (via PuInc_seeker) or base-peak isotopologue
  candidates and need to exclude low-intensity peaks that are likely noise or instrument
  artifacts.
license: CC-BY-4.0
metadata:
  edam_operation: http://edamontology.org/operation_3632
  edam_topics:
  - http://edamontology.org/topic_3375
  - http://edamontology.org/topic_0091
  tools:
  - geoRge
  - R
  - XCMS
  techniques:
  - LC-MS
  license_tier: open
  provenance_tier: literature
derived_from:
- doi: 10.1021/acs.analchem.5b03628
  title: geoRge
evidence_spans:
- library(geoRge)
- hits <- database_query(geoRgeR = s2, adducts = negative, db = db)
- This is an R Markdown document
claims: []
provenance:
  collection: https://w3id.org/holobiomicslab/asb-skill/collection/metabolomics/v2
  assembled_by: scripts/collect_metabolomics_collection.py
  sources:
  - build: coll_george_cq
    doi: 10.1021/acs.analchem.5b03628
    title: geoRge
  dedup_kept_from: coll_george_cq
schema_version: 0.2.0
attribution:
  generator: AgenticScienceBuilder
  original_doi: 10.1021/acs.analchem.5b03628
  all_source_dois:
  - 10.1021/acs.analchem.5b03628
  zenodo_doi: 10.5281/zenodo.20794027
  curators: []
  promoter: Louis-Félix Nothias
  sponsor: CNRS & Université Côte d'Azur
---

# lcms-peak-intensity-filtering

## Summary

Filter LC/MS-detected peaks by minimum intensity threshold to enrich signal-to-noise ratio and reduce false positives in stable isotope labelling detection workflows. This skill applies absolute intensity cutoffs to putative incorporations and base-peak isotopologue candidates downstream of peak picking and alignment.

## When to use

Apply this skill after XCMS peak picking, alignment, and grouping when you have identified putative incorporations (via PuInc_seeker) or base-peak isotopologue candidates and need to exclude low-intensity peaks that are likely noise or instrument artifacts. Use it when your LC/MS dataset exhibits variable background signal and you want to focus on metabolites with robust signal strength relative to your instrument's detection limit.

## When NOT to use

- Input is already a curated metabolite reference database or in silico spectral library (peaks are not from your experimental LC/MS run)
- You are performing untargeted discovery on samples with extremely low metabolite abundance where even weak peaks may represent true biology
- Intensity values are already normalized (e.g., by total ion current or internal standard) and do not reflect absolute detector signal

## Inputs

- XCMS feature table (XCMSet object) after peak picking, alignment, and grouping
- PuInc_seeker output object (putative incorporations with fold-change and p-value annotations)
- m/z values, retention times, and intensity measurements from aligned LC/MS runs

## Outputs

- Filtered PuInc_seeker result object with low-intensity putative incorporations excluded
- basepeak_finder result object (geoRge object) containing base-peak isotopologue pairs meeting intensity thresholds
- Subset of features with m/z, intensity, and isotope-pair annotations above threshold

## How to apply

Establish two intensity thresholds tuned to your LC/MS platform and sample preparation: (1) a putative incorporation intensity limit (e.g., 4000 counts) applied during PuInc_seeker to filter candidate labeled/unlabeled isotopologues, and (2) a base-peak minimum intensity threshold (e.g., 2000 counts) applied during basepeak_finder to validate that identified base peaks meet minimum signal abundance. Both thresholds should be derived from your instrument's noise floor and blank samples; set them conservatively to retain true metabolite signal while eliminating instrumental noise. The rationale is that low-intensity peaks are prone to mass accuracy drift and unstable isotope-pair detection, making them unreliable for downstream identification and quantification.

## Related tools

- **geoRge** (Container package providing PuInc_seeker and basepeak_finder functions that apply intensity filtering as integral workflow steps) — https://github.com/jcapelladesto/geoRge
- **XCMS** (Upstream peak picking, alignment, and grouping to generate the feature table on which intensity filtering is applied) — https://bioconductor.org/packages/release/bioc/html/xcms.html
- **R** (Execution environment for geoRge intensity filtering functions)

## Examples

```
s2 <- basepeak_finder(PuIncR = s1, XCMSet = mtbls213, UL.atomM=12.0, L.atomM=13.003355, ppm.s=6.5, Basepeak.minInt=2000)
```

## Evaluation signals

- Filtered output contains no peaks with intensity below the specified threshold (e.g., no base peaks < 2000 counts)
- Number of retained features is reduced by a reasonable proportion (typically 30–60%) relative to unfiltered input, indicating effective noise suppression without over-filtering
- Retained base-peak isotopologue pairs maintain consistent mass accuracy (within 6.5 ppm tolerance) and intensity ratios expected for labeled/unlabeled carbon-13 pairs
- Downstream database_query hits and metabolite identifications show improved specificity (fewer false positives) compared to unfiltered runs
- m/z and intensity distributions of filtered peaks align with expected metabolite mass ranges and instrument sensitivity

## Limitations

- Intensity thresholds are dataset and instrument-specific; thresholds derived from mtbls213 may not transfer to different LC/MS platforms, ionization modes, or sample matrices without reoptimization
- Filtering by absolute intensity assumes uniform detector response across m/z range; non-linear or m/z-dependent sensitivity bias may cause systematic loss of low-abundance metabolites in certain mass windows
- Threshold selection requires prior knowledge of noise floor; if blank/negative control intensities are not characterized beforehand, threshold setting may be arbitrary or too stringent/permissive
- geoRge 1.0 reduced function arguments for usability; verify that your version's default or user-specified intensity parameters match your experimental design

## Evidence

- [intro] basepeak_finder function to identify base peaks with specified mass accuracy and intensity thresholds: "basepeak_finder function to identify base peaks with specified mass accuracy and intensity thresholds"
- [methods] unlabelled atomic mass 12.0, labelled atomic mass 13.003355, mass accuracy tolerance 6.5 ppm, and base-peak minimum intensity threshold 2000: "unlabelled atomic mass 12.0, labelled atomic mass 13.003355, mass accuracy tolerance 6.5 ppm, and base-peak minimum intensity threshold 2000"
- [intro] Base peak minimum intensity of 2000: "Base peak minimum intensity of 2000"
- [intro] Putative incorporation intensity limit of 4000: "Putative incorporation intensity limit of 4000"
- [methods] s2 <- basepeak_finder(PuIncR=s1,XCMSet=mtbls213,ULtag="CELL_Glc12",Ltag="CELL_Glc13",sep.pos="f",UL.atomM=12.0,L.atomM=13.003355,ppm.s=6.5,Basepeak.minInt=2000): "s2 <- basepeak_finder(PuIncR=s1,XCMSet=mtbls213,ULtag="CELL_Glc12",Ltag="CELL_Glc13",sep.pos="f",UL.atomM=12.0,L.atomM=13.003355,ppm.s=6.5,Basepeak.minInt=2000)"
- [readme] Same functions, less arguments. I have updated the functions so they are less tiring to use.: "Same functions, less arguments. I have updated the functions so they are less tiring to use."

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in ai-agents →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.