Skip to content
Back to skills

Peak Table Filtering By Mz And Retention Time

ASecurity

Use when you have a table of detected chromatographic peaks (e.g., from

  • 16 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 12, 2026
ai-agentsgitbackend

Security analysis

A100/100

Scanned September 12, 2026

npx -y skills add HolobiomicsLab/asb-skill-collections --skill peak-table-filtering-by-mz-and-retention-time --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Peak Table Filtering By Mz And Retention Time?

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

Security grade badge for Peak Table Filtering By Mz And Retention Time
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/holobiomicslab-peak-table-filtering-by-mz-and-retention-time-asb-skill-collections/badge)](https://www.skillsdirectory.com/skills/holobiomicslab-peak-table-filtering-by-mz-and-retention-time-asb-skill-collections)

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: peak-table-filtering-by-mz-and-retention-time
description: Use when you have a table of detected chromatographic peaks (e.g., from
  CentWave peak detection in xcms) and need to isolate a single target m/z (e.g.,
  m/z 304.1131 for a pesticide) or a narrow m/z range, or when you must restrict analysis
  to a known retention time window (e.
license: CC-BY-4.0
metadata:
  edam_operation: http://edamontology.org/operation_3695
  edam_topics:
  - http://edamontology.org/topic_3370
  - http://edamontology.org/topic_0121
  tools:
  - MsFeatures
  - Spectra
  - MsBackendMgf
  - MetaboCoreUtils
  - xcms
  techniques:
  - LC-MS
  license_tier: open
  provenance_tier: literature
derived_from:
- doi: 10.1021/ac051437y
  title: XCMS
evidence_spans:
- General MS feature grouping functionality if defined by the `r Biocpkg("MsFeatures")`
  package
- library(Spectra)
- library(MsBackendMgf)
- '%\VignetteDepends{xcms,MsDataHub,BiocStyle,pander,Spectra,MsBackendMgf,MetaboCoreUtils}'
claims: []
provenance:
  collection: https://w3id.org/holobiomicslab/asb-skill/collection/metabolomics/v2
  assembled_by: scripts/collect_metabolomics_collection.py
  sources:
  - build: coll_xcms
    doi: 10.1021/ac051437y
    title: XCMS
  dedup_kept_from: coll_xcms
schema_version: 0.2.0
attribution:
  generator: AgenticScienceBuilder
  original_doi: 10.1021/ac051437y
  all_source_dois:
  - 10.1021/ac051437y
  zenodo_doi: 10.5281/zenodo.20794027
  curators: []
  promoter: Louis-Félix Nothias
  sponsor: CNRS & Université Côte d'Azur
---

# peak-table-filtering-by-mz-and-retention-time

## Summary

Filter LC-MS chromatographic peaks by m/z and retention time windows to isolate target analytes or remove interfering signals before downstream analysis. This skill selects a subset of detected peaks matching exact mass and temporal criteria, reducing computational load and background noise in spectral matching and feature grouping workflows.

## When to use

Apply this skill when you have a table of detected chromatographic peaks (e.g., from CentWave peak detection in xcms) and need to isolate a single target m/z (e.g., m/z 304.1131 for a pesticide) or a narrow m/z range, or when you must restrict analysis to a known retention time window (e.g., 230–610 seconds) to focus on a region of interest or remove co-eluting interference.

## When NOT to use

- Input is already a feature table or MS2 spectrum—filtering is most useful on raw chromatographic peak tables, not on consensus spectra or post-grouping feature summaries.
- Your analysis requires untargeted discovery across the full m/z–rt plane; restrictive filtering may eliminate unexpected or unexpected compounds of interest.
- Retention time or m/z range is unknown or very broad (>100 ppm or >60 seconds); filtering becomes ineffective and you should use subsequent annotation steps instead.

## Inputs

- XcmsExperiment or OnDiskMSnExp object with detected chromatographic peaks (from findChromPeaks)
- target m/z value (numeric, e.g., 304.1131)
- ppm tolerance (numeric, e.g., 10–20)
- optional: retention time range [rt_min, rt_max] in seconds

## Outputs

- filtered XcmsExperiment or OnDiskMSnExp object containing only peaks within the specified m/z and/or retention time window
- chromPeaks table (matrix or data.frame) with columns: mz, mzmin, mzmax, rt, rtmin, rtmax, into, intb, maxo, sn

## How to apply

Use chromPeaks() with mz and ppm parameters to filter peaks by mass-to-charge ratio with a specified mass accuracy tolerance (e.g., 20 ppm), or use filterRt() to restrict the data object to a retention time range before peak extraction. The ppm tolerance should be set based on your instrument's mass accuracy—10–20 ppm is typical for high-resolution instruments. For isolation of a single peak, calculate the target m/z range as [mz - (mz × ppm / 1e6), mz + (mz × ppm / 1e6)]. Combine m/z and retention time filters sequentially if both constraints apply. Validate that the filtered result contains the expected number of peaks and that signal intensity is retained at the target m/z-rt location.

## Related tools

- **xcms** (provides chromPeaks() and filterRt() methods for mass-accuracy and retention-time filtering of chromatographic peak tables) — https://github.com/sneumann/xcms
- **Spectra** (filters extracted MS2 spectra by retention time and MS level after peak detection)

## Examples

```
chromPeaks(dda_data, mz = 304.1131, ppm = 20); dda_data_filtered <- filterRt(dda_data, rt = c(230, 610))
```

## Evaluation signals

- Filtered peak table contains only peaks with m/z within [target_mz - (target_mz × ppm / 1e6), target_mz + (target_mz × ppm / 1e6)]
- All peaks in filtered result have rt within the specified [rt_min, rt_max] window (if retention time filter applied)
- Number of filtered peaks is ≤ number of input peaks; verify no unexpected peaks are retained due to rounding or tolerance miscalculation
- Chromatographic peak signal (intensity, 'into' column) is preserved and non-zero for the target peak
- Downstream spectral matching against reference compounds (Flumazenil, Fenamiphos) shows expected similarity scores and correct compound identification

## Limitations

- Mass accuracy tolerance (ppm) must be set appropriately for your instrument; setting ppm too large may capture off-target peaks, too small may exclude true signals due to calibration drift.
- Retention time filtering assumes reproducible chromatography; large shifts between samples or runs may cause correct peaks to fall outside the specified window.
- Filtering does not perform gap-filling; samples in which no chromatographic peak was detected at the target m/z–rt location will not be recovered by this step alone.
- m/z filtering is sensitive to isotope and adduct form; if your target is [M+H]+ but signal appears as [M+Na]+, filters on nominal m/z will miss the peak.

## Evidence

- [methods] Filter by m/z: "Filter chromatographic peaks by m/z using chromPeaks() with mz and ppm parameters"
- [methods] Filter by retention time: "Filter data to retention time range using filterRt()"
- [intro] Example m/z filtering in context: "chromPeaks(dda_data, mz = ex_mz, ppm = 20)"
- [intro] Example retention time filtering in context: "We thus filter the DDA data to this retention time range. dda_data <- filterRt(dda_data, rt = c(230, 610))"
- [intro] Purpose in workflow context: "Spectra for identified chromatographic peaks can be extracted with the `chromPeakSpectra()` method."

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.