Skip to content

Phase 3: plexDIA support (mTRAQ, SILAC, Dimethyl multiplexing) #666

@ypriverol

Description

@ypriverol

Part of the DIA-NN refactoring epic: #TBD_MAIN
Depends on: Phase 1 (#TBD_1) — container flexibility + config parsing fix
Min DIA-NN version: v1.9

Overview

plexDIA enables non-isobaric multiplexing in DIA. Samples are labeled (mTRAQ, SILAC, or Dimethyl), mixed, and acquired in a single DIA run. DIA-NN demultiplexes channels using mass-shift-based definitions.

DIA-NN flags:

  • --fixed-mod <Name>,<mass>,<sites>[,label] — multiplexing modification
  • --channels <Name>,<Channel>,<Sites>,<Mass1>:<Mass2>; ... — channel mass shifts
  • --lib-fixed-mod <Name> — apply modification in silico to library
  • --original-mods — prevent conversion to UniMod format
  • --channel-run-norm / --channel-spec-norm — normalization modes

Prerequisites

PRIDE Ontology (DONE, needs release)

mTRAQ + Dimethyl terms committed on remote dev branch (PRIDE:0000843-0000853). SILAC terms already existed.

sdrf-pipelines DIA-NN Converter (code written, NOT committed)

Located at src/sdrf_pipelines/converters/diann/. Implements:

  • detect_plexdia_type() — detect mTRAQ/SILAC/Dimethyl from SDRF labels
  • build_channels_flag() — generate --channels flag value
  • build_fixed_mod_flag() — generate --fixed-mod ... label flag
  • diann_filemap.tsv — per-file channel/label/tolerance mapping

Must be committed and released (Phase 1, #TBD_1).

Tasks

quantms Pipeline Changes

  1. create_input_channel: Remove hardcoded "DIA = LFQ only" assumption. Detect non-LFQ labels and set meta.plexdia = true
  2. GENERATE_CFG: Emit --channels, --fixed-mod ... label, --lib-fixed-mod, --original-mods
  3. INSILICO_LIBRARY_GENERATION: Two-step library for chemical labels (mTRAQ, Dimethyl use --lib-fixed-mod; SILAC does not)
  4. FINAL_QUANTIFICATION: Add --channel-run-norm and --channel-spec-norm params

Channel-to-Sample Mapping

In SDRF, each file has multiple rows for plexDIA (one per channel):

  • comment[data file] + comment[label]source name (sample)
  • DIA-NN output: Run + Channel columns → matched via diann_filemap.tsv

QPX Converter (qpx)

  • Handle channel-specific DIA-NN columns: Channel, Channel.Q.Value, Channel.Evidence
  • Emit per-channel intensities: {label: "MTRAQ0", intensity: ...} instead of hardcoded {label: "LFQ", ...}
  • PG adapter needs channel-aware protein group quantification

New params:

Parameter Type Default DIA-NN Flag
diann_channel_run_norm boolean false --channel-run-norm
diann_channel_spec_norm boolean false --channel-spec-norm

Test Plan

  • Run PXD039578 (SILAC 3-plex HeLa, has SDRF) — verify channels detected, config generated
  • Verify diann_config.cfg contains --channels, --fixed-mod ... label, --lib-fixed-mod
  • Verify QPX output contains per-channel intensities
  • Run with --diann_channel_spec_norm true

Test Datasets:

Dataset Labels Instrument SDRF
PXD039578 SILAC 3-plex Q Exactive HF Yes (12 samples, 36 rows) — best for CI/CD
PXD052080 SILAC (DIA-SiS) Exploris 480 + timsTOF Pro 2 Yes
PXD029531 mTRAQ 3-plex Q Exactive No (MassIVE)

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions