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
nextflow.config — Add new parameter defaults (diann_precursor_qvalue = 0.01, diann_matrix_qvalue = 0.01, diann_matrix_spec_q = 0.05)
nextflow_schema.json — Add parameter definitions with accurate descriptions
modules/local/diann/final_quantification/main.nf — Use new parameters in diann command, add --matrix-qvalue and --matrix-spec-q to blocked flags list
modules/local/diann/diann_msstats/main.nf — Update --qvalue_threshold reference if needed
References
Problem
The pipeline parameter
protein_level_fdr_cutoff(default:0.01) is misleadingly named for DIA workflows. It maps to DIA-NN's--qvalueflag, which per the official documentation controls precursor-level q-value filtering: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
-proteinFDRin 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:
--qvalue [X]protein_level_fdr_cutoff(wrong name)--matrix-qvalue [X]--matrix-spec-q [X]Per DIA-NN docs:
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:
Proposed changes
Parameter renaming
protein_level_fdr_cutoffdiann_precursor_qvalue--qvaluediann_matrix_qvalue--matrix-qvaluediann_matrix_spec_q--matrix-spec-qDIA-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
nextflow.config— Add new parameter defaults (diann_precursor_qvalue = 0.01,diann_matrix_qvalue = 0.01,diann_matrix_spec_q = 0.05)nextflow_schema.json— Add parameter definitions with accurate descriptionsmodules/local/diann/final_quantification/main.nf— Use new parameters in diann command, add--matrix-qvalueand--matrix-spec-qto blocked flags listmodules/local/diann/diann_msstats/main.nf— Update--qvalue_thresholdreference if neededReferences