Skip to content

Clarify DIA-NN FDR parameters: rename protein_level_fdr_cutoff and expose matrix-level FDR controls #42

@ypriverol

Description

@ypriverol

Problem

The pipeline parameter protein_level_fdr_cutoff (default: 0.01) is misleadingly named for DIA workflows. It maps to DIA-NN's --qvalue flag, which per the official documentation controls precursor-level q-value filtering:

--qvalue [X] specifies the precursor-level q-value filtering threshold

The current schema description says "The experiment-wide protein (group)-level FDR cutoff" — this is inaccurate for DIA-NN.

Historical context

The parameter name was originally aligned with the DDA/OpenMS pathway, where it correctly maps to -proteinFDR in ProteomicsLFQ and isobaric workflow modules. Now that quantmsdiann is a standalone workflow, this alignment is no longer necessary and causes confusion.

Missing matrix-level FDR parameters

DIA-NN provides matrix-level FDR controls that are not exposed as pipeline parameters:

DIA-NN flag Description Currently exposed?
--qvalue [X] Precursor-level q-value threshold for main report Yes, as protein_level_fdr_cutoff (wrong name)
--matrix-qvalue [X] Q-value threshold for output matrices (pg_matrix, pr_matrix, etc.) No
--matrix-spec-q [X] Run-specific protein q-value filtering for protein/gene matrices No

Per DIA-NN docs:

"They [matrices] are filtered at 1% FDR, using global q-values for protein groups and both global and run-specific q-values for precursors. Additional 5% run-specific protein-level FDR filter is applied to the protein matrices, use --matrix-spec-q to adjust it."

Use case: proteogenomics / variant detection

This is especially important for proteogenomics workflows (e.g., COSMIC variant detection). Variant proteins are typically supported by only 1-2 unique peptides, so:

  • Precursor-level FDR (Q.Value) is the relevant filter — variant-specific peptides pass at 1%
  • Protein-level FDR (Protein.Q.Value) is always 1.0 for variants because they lack enough unique peptides for independent protein-level confidence
  • Users need explicit control over matrix filtering to avoid losing valid variant detections

Proposed changes

Parameter renaming

Current Proposed Maps to Description
protein_level_fdr_cutoff diann_precursor_qvalue --qvalue Precursor-level q-value threshold (DIA-NN main report)
(not exposed) diann_matrix_qvalue --matrix-qvalue Q-value threshold for output matrices
(not exposed) diann_matrix_spec_q --matrix-spec-q Run-specific protein q-value for protein matrices

Note: protein_level_fdr_cutoff should be kept for the DDA/OpenMS pathway where it correctly maps to -proteinFDR. The new DIA-NN-specific parameters only apply when running the DIA workflow.

DIA-NN version compatibility

  • --qvalue: Available in all supported versions (1.8.1+)
  • --matrix-qvalue: Available since DIA-NN 1.8+
  • --matrix-spec-q: Available since DIA-NN 1.8+ (documented in README for adjusting the default 5% run-specific protein-level FDR on matrices)

The pipeline currently supports DIA-NN versions 1.8.1 through 2.3.2, so all three parameters are compatible with all supported versions.

Files to modify

  1. nextflow.config — Add new parameter defaults (diann_precursor_qvalue = 0.01, diann_matrix_qvalue = 0.01, diann_matrix_spec_q = 0.05)
  2. nextflow_schema.json — Add parameter definitions with accurate descriptions
  3. modules/local/diann/final_quantification/main.nf — Use new parameters in diann command, add --matrix-qvalue and --matrix-spec-q to blocked flags list
  4. modules/local/diann/diann_msstats/main.nf — Update --qvalue_threshold reference if needed

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions