iona-denoise-400m

iona-denoise-400m scores every peak of a tandem mass spectrum (MS/MS) as signal or noise. It is the Iona 400m encoder with a per-peak classification head, fine-tuned for noise-peak detection.

Model details

  • Architecture: Iona encoder (20 layers, hidden size 1280, 20 heads) plus a two-layer classification head (hidden size 512). 396.2M parameters in total.
  • Input: a centroided spectrum given as parallel mz and intensity arrays, with at most 512 peaks.
  • Output: one logit per peak. Noise is the positive class, so sigmoid(logit) is the predicted probability that a peak is noise.

Usage

The checkpoint includes its modeling code, so it loads with trust_remote_code=True. You need torch, transformers, sentence-transformers and pytorch-metric-learning installed.

import torch
from transformers import AutoModelForTokenClassification, AutoProcessor

repo = "path/to/iona-denoise-400m"  # this repository's Hub ID, or a local copy
processor = AutoProcessor.from_pretrained(repo, trust_remote_code=True)
model = AutoModelForTokenClassification.from_pretrained(repo, trust_remote_code=True).eval()

mz = [175.119, 262.151, 363.198, 476.282]
intensity = [1200.0, 5300.0, 800.0, 2400.0]
inputs = processor(mz, intensity, return_tensors="pt")

with torch.no_grad():
    noise_prob = torch.sigmoid(model(**inputs).logits.float())  # (batch, peaks)
keep = (noise_prob < 0.5) & inputs["attention_mask"].bool()

Pass raw intensity values; the processor normalizes them. To denoise whole mzML files, use the iona-denoise command from the Iona package.

Training

  • Pretraining: masked-intensity modeling on about 100 million consensus tandem mass spectra for 220,000 steps (see iona-base-400m).
  • Fine-tuning: per-peak noise classification on a dataset of MS/MS spectra with per-peak noise labels, 4 epochs, learning rate 2e-4 (0.5ร— for the encoder) with cosine decay, effective batch size 12, bf16, seed 1.
  • Checkpoint selection: the best of 3 seeds across the pretraining checkpoints available at this scale, by validation AUPRC. The test split wasn't used for selection.

Evaluation

On the validation and test splits of the noise-labeled dataset. The splits share no peptides with the training split or with each other.

Metric Validation Test
AUPRC 0.9503 0.9507
AUROC โ€“ 0.9438
F1 (logit โ‰ฅ 0) โ€“ 0.8770
Per-spectrum AUROC (mean) โ€“ 0.9487

Limitations

  • Inputs must be centroided spectra with between 1 and 512 peaks. Longer spectra were excluded from training and evaluation.
  • The model was fine-tuned and evaluated on one dataset. Performance on other instruments, fragmentation methods or sample types hasn't been characterized.
Downloads last month
26
Safetensors
Model size
0.4B params
Tensor type
BF16
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support