Skip to content
Back to skills

Mass Spectrometry Feature Intensity Normalization

ASecurity

Use when after aligning raw mass spectra into a 2D feature intensity

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

Security analysis

A100/100

Scanned September 12, 2026

npx -y skills add HolobiomicsLab/asb-skill-collections --skill mass-spectrometry-feature-intensity-normalization --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Mass Spectrometry Feature Intensity Normalization?

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

Security grade badge for Mass Spectrometry Feature Intensity Normalization
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/holobiomicslab-mass-spectrometry-feature-intensity-normalization/badge)](https://www.skillsdirectory.com/skills/holobiomicslab-mass-spectrometry-feature-intensity-normalization)

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: mass-spectrometry-feature-intensity-normalization
description: Use when after aligning raw mass spectra into a 2D feature intensity
  matrix (features × time points) but before computing pointwise correlation to identify
  feature pairs with matching temporal profiles.
license: CC-BY-4.0
metadata:
  edam_operation: http://edamontology.org/operation_3435
  edam_topics:
  - http://edamontology.org/topic_3520
  - http://edamontology.org/topic_0121
  tools:
  - DBDIpy
  - Python
  - pandas
  - scikit-learn
  - scipy.stats
  techniques:
  - mass-spectrometry
  license_tier: open
  provenance_tier: literature
derived_from:
- doi: 10.1093/bioinformatics/btad088
  title: DBDIpy
evidence_spans:
- DBDIpy is an open-source Python library for the curation and interpretation of dielectric
  barrier discharge ionisation mass spectrometric datasets
- DBDIpy is an open-source Python library
claims: []
provenance:
  collection: https://w3id.org/holobiomicslab/asb-skill/collection/metabolomics/v2
  assembled_by: scripts/collect_metabolomics_collection.py
  sources:
  - build: coll_dbdipy_cq
    doi: 10.1093/bioinformatics/btad088
    title: DBDIpy
  dedup_kept_from: coll_dbdipy_cq
schema_version: 0.2.0
attribution:
  generator: AgenticScienceBuilder
  original_doi: 10.1093/bioinformatics/btad088
  all_source_dois:
  - 10.1093/bioinformatics/btad088
  zenodo_doi: 10.5281/zenodo.20794027
  curators: []
  promoter: Louis-Félix Nothias
  sponsor: CNRS & Université Côte d'Azur
---

# mass-spectrometry-feature-intensity-normalization

## Summary

Standardize extracted ion chromatogram (XIC) intensity profiles across mass spectrometric features to remove absolute intensity differences before correlation analysis. This preprocessing step ensures that temporal dynamics rather than signal magnitude drive the identification of co-eluting adducts and in-source fragments in time-resolved DBDI-MS datasets.

## When to use

Apply this skill after aligning raw mass spectra into a 2D feature intensity matrix (features × time points) but before computing pointwise correlation to identify feature pairs with matching temporal profiles. Use it whenever features have widely varying absolute intensities but may share the same temporal dynamics—a common scenario in direct injection mass spectrometry where ionization efficiency and detector response vary across m/z values.

## When NOT to use

- Input is already a correlation or distance matrix (not raw intensities).
- Absolute intensity magnitude is a discriminative feature (e.g., abundance-based filtering or quantification is required after correlation).
- Features have zero or near-zero variance across time points (normalization will fail or produce NaN values).

## Inputs

- pandas.DataFrame: aligned and imputed feature intensity matrix (rows=features, columns=time points/scans)
- Optionally: m/z values for features (used for labeling output)

## Outputs

- pandas.DataFrame: normalized feature intensity matrix with same shape as input, standardized intensity values
- Normalization metadata: mean and standard deviation (or min/max) per feature, stored for optional denormalization

## How to apply

Load the aligned intensity matrix as a pandas DataFrame with features as rows and time points (scans) as columns. For each feature row, apply a standardization method (e.g., z-score normalization or min-max scaling) to remove absolute intensity differences while preserving temporal shape. The choice of normalization method affects downstream correlation sensitivity: z-score normalization centers each XIC and scales by its standard deviation, making temporal correlation robust to baseline shifts and amplitude variations. After normalization, verify that all XIC profiles have comparable dynamic ranges (typically 0–1 or mean=0, std=1 depending on method) before passing the normalized matrix to pointwise correlation calculation using Pearson correlation coefficients or equivalent metrics.

## Related tools

- **DBDIpy** (Provides impute_intensities() and identify_adducts() functions that accept normalized feature matrices and perform downstream correlation-based adduct detection.) — https://github.com/leopold-weidner/DBDIpy
- **pandas** (DataFrame manipulation and row-wise normalization operations.)
- **scikit-learn** (StandardScaler or MinMaxScaler for vectorized normalization of feature intensities.)
- **scipy.stats** (Manual z-score computation or alternative statistical normalization methods.)

## Examples

```
specs_aligned = specs_aligned.drop('mean', axis=1); specs_imputed = dbdi.impute_intensities(df=specs_aligned, method='linear'); specs_normalized = (specs_imputed - specs_imputed.mean(axis=1).values.reshape(-1, 1)) / specs_imputed.std(axis=1).values.reshape(-1, 1)
```

## Evaluation signals

- After normalization, each feature's intensity profile has zero mean and unit variance (z-score) or is bounded to [0, 1] (min-max), with no NaN or Inf values.
- Pointwise Pearson correlation coefficients between features with similar temporal dynamics remain high (e.g., r > 0.9) after normalization, demonstrating that temporal shape is preserved while absolute magnitude is removed.
- Downstream correlation-based adduct detection (using identify_adducts()) reports candidate pairs with mass differences matching known adduct rules (e.g., Δm/z ≈ 16 for [M+O+H]⁺) at expected correlation thresholds (default 0.9).
- Comparison of correlation matrices computed before and after normalization shows stronger clustering of true co-eluting features and reduced false positives caused by intensity magnitude differences alone.

## Limitations

- Normalization cannot recover temporal information from features with zero variance (constant intensity); such features should be filtered before normalization.
- Choice of normalization method (z-score vs. min-max vs. others) affects sensitivity to outlier time points; z-score is more robust to extreme values, while min-max preserves relative magnitude within each feature.
- Normalization assumes features are independent; highly correlated features with vastly different absolute intensities may still appear dissimilar after normalization if their temporal profiles differ even slightly.
- README does not explicitly specify which normalization method is used by default in DBDIpy; user must verify or apply custom normalization before calling identify_adducts().

## Evidence

- [other] Normalize or standardize intensity profiles for each feature to account for absolute intensity differences.: "Normalize or standardize intensity profiles for each feature to account for absolute intensity differences."
- [readme] Missing values within the detected signal region are interpolated in between. Second, a noisy baseline is generated for all XIC to be of uniform length.: "Missing values within the detected signal region are interpolated in between. Second, a noisy baseline is generated for all XIC to be of uniform length"
- [readme] calculation of pointwise correlation identifies features with matching temporal intensity profiles through the experiment.: "calculation of pointwise correlation identifies features with matching temporal intensity profiles through the experiment."
- [readme] By aplication of ``align_spectra()``, we transformed the list of spectra objects to a two-dimensional ``pandas.DataFrame``. Now you have a column for each mass spectrometric scan and features are aligned to rows.: "By aplication of ``align_spectra()``, we transformed the list of spectra objects to a two-dimensional ``pandas.DataFrame``. Now you have a column for each mass spectrometric scan and features are"

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.