From 6ad318726203671ce4605757f4a83ad2d2e8e652 Mon Sep 17 00:00:00 2001 From: jpfeuffer Date: Fri, 20 May 2022 14:42:39 +0000 Subject: [PATCH 1/4] [FIX/FEATURE] Add exp. wide PSM-FDR. Rename FDR params. Slightly change usage. --- conf/modules.config | 6 +- conf/test_lfq.config | 1 + conf/test_localize.config | 1 + conf/test_tmt.config | 3 +- modules/local/openms/proteomicslfq/main.nf | 11 +- nextflow.config | 8 +- nextflow_schema.json | 217 +++++++++++---------- 7 files changed, 128 insertions(+), 119 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index 51d21db3..c3f00ce9 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -161,9 +161,11 @@ process { } // IDFILTER on PROTEIN LEVEL + level = params.protein_quant == 'strictly_unique_peptides' ? 'prot' : 'protgroup' withName: '.*:TMT:PROTEININFERENCE:IDFILTER' { ext.args = [ - "-score:prot \"$params.protein_level_fdr_cutoff\"", + "-score:${level} \"$params.protein_level_fdr_cutoff\"", + "-score:pep \"$params.psm_level_fdr_cutoff\"", "-delete_unreferenced_peptide_hits", "-remove_decoys" ].join(' ').trim() @@ -218,7 +220,7 @@ process { // IDFILTER withName: '.*:ID:PSMFDRCONTROL:IDFILTER' { - ext.args = "-score:pep \"$params.psm_pep_fdr_cutoff\"" + ext.args = "-score:pep \"$params.run_fdr_cutoff\"" ext.suffix = '.idXML' publishDir = [ path: { "${params.outdir}/idfilter" }, diff --git a/conf/test_lfq.config b/conf/test_lfq.config index 4e4e61f0..037b8fb9 100644 --- a/conf/test_lfq.config +++ b/conf/test_lfq.config @@ -32,5 +32,6 @@ params { enable_qc = true add_triqler_output = true protein_level_fdr_cutoff = 1.0 + psm_level_fdr_cutoff = 1.0 acquisition_method = "dda" } diff --git a/conf/test_localize.config b/conf/test_localize.config index b8c71108..ba5d5366 100644 --- a/conf/test_localize.config +++ b/conf/test_localize.config @@ -28,5 +28,6 @@ params { enable_mod_localization = true search_engines = 'comet,msgf' enable_qc = true + psm_level_fdr_cutoff = 1.0 skip_post_msstats = true } diff --git a/conf/test_tmt.config b/conf/test_tmt.config index c49e8718..2a40c35b 100644 --- a/conf/test_tmt.config +++ b/conf/test_tmt.config @@ -28,8 +28,7 @@ params { database = 'https://raw.githubusercontent.com/nf-core/test-datasets/quantms/testdata/tmt_ci/erwinia_carotovora.fasta' posterior_probabilities = "percolator" search_engines = "comet,msgf" - protein_level_fdr_cutoff = 0.01 - psm_pep_fdr_cutoff = 0.01 + psm_level_fdr_cutoff = 1.0 decoy_affix = "rev" label = 'tmt6plex' fragment_method = 'HCD' diff --git a/modules/local/openms/proteomicslfq/main.nf b/modules/local/openms/proteomicslfq/main.nf index 28b61291..d3e4de85 100644 --- a/modules/local/openms/proteomicslfq/main.nf +++ b/modules/local/openms/proteomicslfq/main.nf @@ -35,6 +35,7 @@ process PROTEOMICSLFQ { """ ProteomicsLFQ \\ + -threads ${task.cpus} \\ -in ${(mzmls as List).join(' ')} \\ -ids ${(id_files as List).join(' ')} \\ -design ${expdes} \\ @@ -46,14 +47,14 @@ process PROTEOMICSLFQ { -transfer_ids ${params.transfer_ids} \\ -protein_quantification ${params.protein_quant} \\ -alignment_order ${params.alignment_order} \\ - -picked_proteinFDR true \\ + ${decoys_present} \\ + -psmFDR ${params.psm_level_fdr_cutoff} \\ + -proteinFDR ${params.protein_level_fdr_cutoff} \\ + -picked_proteinFDR ${params.picked_fdr} \\ + -out_cxml ${expdes.baseName - ~/_design$/}.consensusXML \\ -out ${expdes.baseName - ~/_design$/}.mzTab \\ - -threads ${task.cpus} \\ ${msstats_present} \\ ${triqler_present} \\ - ${decoys_present} \\ - -out_cxml ${expdes.baseName - ~/_design$/}.consensusXML \\ - -proteinFDR ${params.protein_level_fdr_cutoff} \\ $args \\ |& tee proteomicslfq.log diff --git a/nextflow.config b/nextflow.config index b01bb619..0b1dcde6 100644 --- a/nextflow.config +++ b/nextflow.config @@ -21,8 +21,9 @@ params { add_decoys = false enable_pmultiqc = true search_engines = 'comet' - psm_pep_fdr_cutoff = 0.10 - protein_level_fdr_cutoff = 0.05 + run_fdr_cutoff = 0.10 + protein_level_fdr_cutoff = 0.01 + psm_level_fdr_cutoff = 0.01 // Debug level decoydatabase_debug = 0 @@ -93,9 +94,6 @@ params { // IDPEP flags outlier_handling = "none" - // Falsediscoveryrate - protein = false - // Percolator flags train_FDR = 0.05 test_FDR = 0.05 diff --git a/nextflow_schema.json b/nextflow_schema.json index 7ca72984..762955d2 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -46,38 +46,38 @@ "type": "string", "description": "Overwrite the file type/extension of the filename as specified in the SDRF/design", "fa_icon": "fas fa-file-invoice", - "help_text": "If the above [`--root_folder`](#params_root_folder) was given to load local input files, this overwrites the file type/extension of\nthe filename as specified in the SDRF/design. Usually used in case you have an mzML-converted version of the files already. Needs to be\none of 'mzML' or 'raw' (the letter cases should match your files exactly)." + "help_text": "If the above [`--root_folder`](#root_folder) was given to load local input files, this overwrites the file type/extension of\nthe filename as specified in the SDRF/design. Usually used in case you have an mzML-converted version of the files already. Needs to be\none of 'mzML' or 'raw' (the letter cases should match your files exactly)." } } }, "protein_database": { "title": "Protein database", "type": "object", - "description": "Settings that relate to the mandatory protein database and the optional generation of decoy entries.", + "description": "Settings that relate to the mandatory protein database and the optional generation of decoy entries. Note: Decoys for DIA will be created internally.", "default": "", "properties": { "database": { "type": "string", - "description": "The `fasta` protein database used during database search.", + "description": "The `fasta` protein database used during database search. *Note:* For DIA data, it must not contain decoys.", "fa_icon": "fas fa-file", - "help_text": "Since the database is not included in an SDRF, this parameter always needs to be given to specify the input protein database\nwhen you run the pipeline. Remember to include contaminants (and decoys if not added in the pipeline with \\-\\-add-decoys)\n\n```bash\n--database '[path to Fasta protein database]'\n```" + "help_text": "Since the database is not included in an SDRF, this parameter always needs to be given to specify the input protein database\nwhen you run the pipeline. Remember to include contaminants (and decoys if not in DIA mode and if not added in the pipeline with [`--add_decoys`](#add_decoys))\n\n```bash\n--database '[path to fasta protein database]'\n```" }, "add_decoys": { "type": "boolean", "description": "Generate and append decoys to the given protein database", "fa_icon": "fas fa-coins", - "help_text": "If decoys were not yet included in the input database, they have to be appended by OpenMS DecoyGenerator by adding this flag (TODO allow specifying type).\nDefault: pseudo-reverse peptides" + "help_text": "If decoys were not yet included in the input database, they have to be appended by OpenMS DecoyGenerator by adding this flag (TODO allow specifying generator type).\nDefault: pseudo-reverse peptides" }, "decoy_string": { "type": "string", "description": "Pre- or suffix of decoy proteins in their accession", "default": "DECOY_", "fa_icon": "fas fa-font", - "help_text": "If [`--add-decoys`](#params_add_decoys) was set, this setting is used during generation and passed to all tools that need decoy information.\n If decoys were appended to the database externally, this setting needs to match the used affix. (While OpenMS tools can infer the affix automatically, some thirdparty tools might not.)\nTypical values are 'rev', 'decoy', 'dec'. Look for them in your database." + "help_text": "If [`--add-decoys`](#add_decoys) was set, this setting is used during generation and passed to all tools that need decoy information.\n If decoys were appended to the database externally, this setting needs to match the used affix. (While OpenMS tools can infer the affix automatically, some thirdparty tools might not.)\nTypical values are 'rev', 'decoy', 'dec'. Look for them in your database." }, "decoy_string_position": { "type": "string", - "description": "Location of the decoy marker string in the fasta accession. Before (prefix) or after (suffix)", + "description": "Location of the decoy marker string in the `fasta` accession. Before (prefix) or after (suffix)", "default": "prefix", "fa_icon": "fas fa-list-ol", "help_text": "Prefix is highly recommended. Only in case an external tool marked decoys with a suffix, e.g. `sp|Q12345|ProteinA_DECOY` change this parameter to suffix." @@ -150,7 +150,7 @@ "description": "A comma separated list of search engines. Valid: comet, msgf", "default": "comet", "fa_icon": "fas fa-tasks", - "help_text": "A comma-separated list of search engines to run in parallel on each mzML file. Currently supported: comet and msgf (default: comet)\nIf more than one search engine is given, results are combined based on posterior error probabilities (see the different types\nof estimation procedures under [`--posterior_probabilities`](#--posterior_probabilities)). Combination is done with\n[ConsensusID](https://abibuilder.informatik.uni-tuebingen.de/archive/openms/Documentation/release/latest/html/TOPP_ConsensusID.html).\nSee also its corresponding [`--consensusid_algorithm`](#--consensusid_algorithm) parameter for different combination strategies.\nCombinations may profit from an increased [`--num_hits`](#--num_hits) parameter." + "help_text": "A comma-separated list of search engines to run in parallel on each mzML file. Currently supported: comet and msgf (default: comet)\nIf more than one search engine is given, results are combined based on posterior error probabilities (see the different types\nof estimation procedures under [`--posterior_probabilities`](#posterior_probabilities)). Combination is done with\n[ConsensusID](https://abibuilder.informatik.uni-tuebingen.de/archive/openms/Documentation/release/latest/html/TOPP_ConsensusID.html).\nSee also its corresponding [`--consensusid_algorithm`](#--consensusid_algorithm) parameter for different combination strategies.\nCombinations may profit from an increased [`--num_hits`](#--num_hits) parameter." }, "enzyme": { "type": "string", @@ -174,7 +174,7 @@ }, "precursor_mass_tolerance": { "type": "integer", - "description": "Precursor mass tolerance used for database search. For High-Resolution instruments a precursor mass tolerance value of 5 ppm is recommended (i.e. 5). See also [`--precursor_mass_tolerance_unit`](#--precursor_mass_tolerance_unit).", + "description": "Precursor mass tolerance used for database search. For High-Resolution instruments a precursor mass tolerance value of 5 ppm is recommended (i.e. 5). See also [`--precursor_mass_tolerance_unit`](#precursor_mass_tolerance_unit).", "default": 5, "fa_icon": "fas fa-sliders-h" }, @@ -368,9 +368,9 @@ "default": "percolator", "enum": ["percolator", "fit_distributions"] }, - "psm_pep_fdr_cutoff": { + "run_fdr_cutoff": { "type": "number", - "description": "FDR cutoff on PSM level (or potential peptide level; see Percolator options) before going into feature finding, map alignment and inference.", + "description": "FDR cutoff on PSM level (or peptide level; see Percolator options) *per run* before going into feature finding, map alignment and inference. This can be seen as a pre-filter. See ", "default": 0.01, "fa_icon": "fas fa-filter" }, @@ -401,7 +401,7 @@ "psm_re_scoring_percolator": { "title": "PSM re-scoring (Percolator)", "type": "object", - "description": "In the following you can find help for the Percolator specific options that are only used if [`--posterior_probabilities`](#--posterior_probabilities) was set to 'percolator'.\nNote that there are currently some restrictions to the original options of Percolator:\n\n* no Percolator protein FDR possible (currently OpenMS' FDR is used on protein level)\n* no support for separate target and decoy databases (i.e. no min-max q-value calculation or target-decoy competition strategy)\n* no support for combined or experiment-wide peptide re-scoring. Currently search results per input file are submitted to Percolator independently.", + "description": "In the following you can find help for the Percolator specific options that are only used if [`--posterior_probabilities`](#posterior_probabilities) was set to 'percolator'.\nNote that there are currently some restrictions to the original options of Percolator:\n\n* no Percolator protein FDR possible (currently OpenMS' FDR is used on protein level)\n* no support for separate target and decoy databases (i.e. no min-max q-value calculation or target-decoy competition strategy)\n* no support for combined or experiment-wide peptide re-scoring. Currently search results per input file are submitted to Percolator independently.", "default": "", "properties": { "FDR_level": { @@ -425,7 +425,7 @@ }, "subset_max_train": { "type": "integer", - "description": "Only train an SVM on a subset of PSMs, and use the resulting score vector to evaluate the other PSMs. Recommended when analyzing huge numbers (>1 million) of PSMs. When set to 0, all PSMs are used for training as normal. This is a runtime vs. discriminability tradeoff. Default: 300,000", + "description": "Only train an SVM on a subset of PSMs, and use the resulting score vector to evaluate the other PSMs. Recommended when analyzing huge numbers (>1 million) of PSMs. When set to 0, all PSMs are used for training as normal. This is a runtime vs. quality tradeoff. Default: 300,000", "default": 300000, "fa_icon": "fas fa-sliders-h" }, @@ -502,7 +502,7 @@ }, "min_consensus_support": { "type": "integer", - "description": "A threshold for the ratio of occurence/similarity scores of a peptide in other runs, to be reported. See help.", + "description": "A threshold for the ratio of occurrence/similarity scores of a peptide in other runs, to be reported. See help.", "fa_icon": "fas fa-filter", "help_text": "This allows filtering of peptide hits based on agreement between search engines. Every peptide sequence in the analysis has been identified by at least one search run. This parameter defines which fraction (between 0 and 1) of the remaining search runs must 'support' a peptide identification that should be kept. The meaning of 'support' differs slightly between algorithms: For best, worst, average and rank, each search run supports peptides that it has also identified among its top `consensusid_considered_top_hits` candidates. So `min_consensus_support` simply gives the fraction of additional search engines that must have identified a peptide. (For example, if there are three search runs, and only peptides identified by at least two of them should be kept, set `min_support` to 0.5.) For the similarity-based algorithms PEPMatrix and PEPIons, the 'support' for a peptide is the average similarity of the most-similar peptide from each (other) search run. (In the context of the JPR publication, this is the average of the similarity scores used in the consensus score calculation for a peptide.) Note: For most of the subsequent algorithms, only the best identification per spectrum is used." }, @@ -516,6 +516,78 @@ }, "fa_icon": "fas fa-code-branch" }, + "isobaric_analyzer": { + "title": "Isobaric analyzer", + "type": "object", + "description": "Extracts and normalizes labeling information", + "default": "", + "properties": { + "select_activation": { + "type": "string", + "description": "Operate only on MSn scans where any of its precursors features a certain activation method. Set to empty to disable.", + "fa_icon": "fas fa-font", + "enum": ["HCD", "CID", "ETD", "ECD"] + }, + "reporter_mass_shift": { + "type": "number", + "description": "Allowed shift (left to right) in Th from the expected position", + "default": 0.002, + "fa_icon": "fas fa-sliders-h" + }, + "min_precursor_intensity": { + "type": "number", + "description": "Minimum intensity of the precursor to be extracted", + "default": 1.0, + "fa_icon": "fas fa-sliders-h" + }, + "min_precursor_purity": { + "type": "number", + "description": "Minimum fraction of the total intensity. 0.0:1.0", + "default": 0.0, + "fa_icon": "fas fa-sliders-h", + "help_text": "Minimum fraction of the total intensity in the isolation window of the precursor spectrum" + }, + "min_reporter_intensity": { + "type": "number", + "description": "Minimum intensity of the individual reporter ions to be extracted.", + "default": 0.0, + "fa_icon": "fas fa-sliders-h" + }, + "precursor_isotope_deviation": { + "type": "number", + "description": "Maximum allowed deviation (in ppm) between theoretical and observed isotopic peaks of the precursor peak", + "default": 10.0, + "fa_icon": "fas fa-sliders-h" + }, + "isotope_correction": { + "type": "boolean", + "description": "Enable isotope correction (highly recommended)", + "default": true, + "fa_icon": "fas fa-toggle-on" + }, + "iso_normalization": { + "type": "boolean", + "description": "Enable normalization of the channel intensities", + "default": false, + "fa_icon": "fas fa-toggle-on", + "help_text": "The normalization is done by using the Median of Ratios. Also the ratios the medians is provided as control measure." + }, + "reference_channel": { + "type": "integer", + "description": "The reference channel, e.g. for calculating ratios.", + "fa_icon": "fas fa-list-ol", + "default": 126 + }, + "iso_debug": { + "type": "integer", + "description": "Set the debug level", + "fa_icon": "fas fa-bug", + "default": 0, + "hidden": true + } + }, + "fa_icon": "far fa-chart-bar" + }, "feature_mapper": { "title": "Feature Mapper", "type": "object", @@ -545,19 +617,6 @@ "help_text": "Infer proteins through:\n\n* 'aggregation' = aggregates all peptide scores across a protein (by calculating the maximum) (default)\n* 'bayesian' = compute a posterior probability for every protein based on a Bayesian network (i.e. using Epifany)\n* ('percolator' not yet supported)\n\n**Note:** If protein grouping is performed also depends on the `protein_quant` parameter (i.e. if peptides have to be unique or unique to a group only)", "enum": ["aggregation", "bayesian"] }, - "protein_level_fdr_cutoff": { - "type": "number", - "description": "The experiment-wide protein (group)-level FDR cutoff. Default: 0.05", - "default": 0.01, - "fa_icon": "fas fa-filter", - "help_text": "This can be protein level if 'strictly_unique_peptides' are used for protein quantification. See [`--protein_quant`](#params_protein_quant)" - }, - "picked_fdr": { - "type": "boolean", - "description": "Use picked protein FDRs", - "default": true, - "fa_icon": "fas fa-list-ol" - }, "protein_score": { "type": "string", "description": "[Ignored in Bayesian] How to aggregate scores of peptides matching to the same protein", @@ -590,6 +649,26 @@ "fa_icon": "fas fa-list-ol", "hidden": true }, + "protein_level_fdr_cutoff": { + "type": "number", + "description": "The experiment-wide protein (group)-level FDR cutoff. Default: 0.01", + "default": 0.01, + "fa_icon": "fas fa-filter", + "help_text": "This can be protein level if 'strictly_unique_peptides' are used for protein quantification. See [`--protein_quant`](#protein_quant)" + }, + "picked_fdr": { + "type": "boolean", + "description": "Use picked protein FDRs", + "default": true, + "fa_icon": "fas fa-list-ol" + }, + "psm_level_fdr_cutoff": { + "type": "number", + "description": "The experiment-wide PSM-level FDR cutoff. Default: 0.01", + "default": 0.01, + "fa_icon": "fas fa-filter", + "help_text": "After applying protein-level FDR cutoff, this additionally filters PSMs to be used for quantification and reporting." + }, "protein_inference_debug": { "type": "integer", "description": "Debug level for the protein inference step. Increase for verbose logging", @@ -713,8 +792,8 @@ }, "quantify_decoys": { "type": "boolean", - "description": "Also quantify decoys? (Usually only needed for Triqler post-processing output with `--add_triqler_output`, where it is auto-enabled)", "default": false, + "description": "Also quantify decoys? (Usually only needed for Triqler post-processing output with [`--add_triqler_output`](#add_triqler_output), where it is auto-enabled)", "fa_icon": "far fa-check-square" }, "plfq_debug": { @@ -727,78 +806,6 @@ }, "fa_icon": "fas fa-braille" }, - "isobaric_analyzer": { - "title": "Isobaric analyzer", - "type": "object", - "description": "Extracts and normalizes labeling information", - "default": "", - "properties": { - "select_activation": { - "type": "string", - "description": "Operate only on MSn scans where any of its precursors features a certain activation method. Set to empty to disable.", - "fa_icon": "fas fa-font", - "enum": ["HCD", "CID", "ETD", "ECD"] - }, - "reporter_mass_shift": { - "type": "number", - "description": "Allowed shift (left to right) in Th from the expected position", - "default": 0.002, - "fa_icon": "fas fa-sliders-h" - }, - "min_precursor_intensity": { - "type": "number", - "description": "Minimum intensity of the precursor to be extracted", - "default": 1.0, - "fa_icon": "fas fa-sliders-h" - }, - "min_precursor_purity": { - "type": "number", - "description": "Minimum fraction of the total intensity. 0.0:1.0", - "default": 0.0, - "fa_icon": "fas fa-sliders-h", - "help_text": "Minimum fraction of the total intensity in the isolation window of the precursor spectrum" - }, - "min_reporter_intensity": { - "type": "number", - "description": "Minimum intensity of the individual reporter ions to be extracted.", - "default": 0.0, - "fa_icon": "fas fa-sliders-h" - }, - "precursor_isotope_deviation": { - "type": "number", - "description": "Maximum allowed deviation (in ppm) between theoretical and observed isotopic peaks of the precursor peak", - "default": 10.0, - "fa_icon": "fas fa-sliders-h" - }, - "isotope_correction": { - "type": "boolean", - "description": "Enable isotope correction (highly recommended)", - "default": true, - "fa_icon": "fas fa-toggle-on" - }, - "iso_normalization": { - "type": "boolean", - "description": "Enable normalization of the channel intensities", - "default": false, - "fa_icon": "fas fa-toggle-on", - "help_text": "The normalization is done by using the Median of Ratios. Also the ratios the medians is provided as control measure." - }, - "reference_channel": { - "type": "integer", - "description": "The reference channel, e.g. for calculating ratios.", - "fa_icon": "fas fa-list-ol", - "default": 126 - }, - "iso_debug": { - "type": "integer", - "description": "Set the debug level", - "fa_icon": "fas fa-bug", - "default": 0, - "hidden": true - } - }, - "fa_icon": "far fa-chart-bar" - }, "DIA-NN": { "title": "DIA-NN", "type": "object", @@ -924,12 +931,12 @@ }, "ref_condition": { "type": "string", - "description": "Instead of all pairwise contrasts (default), uses the given condition name/number (corresponding to your experimental design) as a reference and creates pairwise contrasts against it. (TODO not yet fully implemented)", + "description": "Experimental: Instead of all pairwise contrasts (default), uses the given condition name/number (corresponding to your experimental design) as a reference and creates pairwise contrasts against it.", "fa_icon": "fas fa-font" }, "contrasts": { "type": "string", - "description": "Allows full control over contrasts by specifying a set of contrasts in a semicolon seperated list of R-compatible contrasts with the condition names/numbers as variables (e.g. `1-2;1-3;2-3`). Overwrites '--ref_condition' (TODO not yet fully implemented)", + "description": "Experimental: Allows full control over contrasts by specifying a set of contrasts in a semicolon separated list of R-compatible contrasts with the condition names/numbers as variables (e.g. `1-2;1-3;2-3`). Overwrites [`--ref_condition`](#ref_condition).", "fa_icon": "fas fa-font" }, "add_triqler_output": { @@ -1250,6 +1257,9 @@ { "$ref": "#/definitions/feature_mapper" }, + { + "$ref": "#/definitions/isobaric_analyzer" + }, { "$ref": "#/definitions/protein_inference" }, @@ -1259,9 +1269,6 @@ { "$ref": "#/definitions/protein_quantification_lfq" }, - { - "$ref": "#/definitions/isobaric_analyzer" - }, { "$ref": "#/definitions/DIA-NN" }, From 99ba1bf653a27246f9c70504b133a88035fb17f4 Mon Sep 17 00:00:00 2001 From: jpfeuffer Date: Fri, 20 May 2022 14:57:34 +0000 Subject: [PATCH 2/4] major fix. before inference FDR always has to be PSM --- conf/modules.config | 14 ++++++++++++++ modules/local/openms/falsediscoveryrate/main.nf | 1 - nextflow_schema.json | 6 ------ 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index c3f00ce9..e3a730ef 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -137,6 +137,20 @@ if (params.enable_mod_localization) { } } +process { + // FDRCONSENSUSID + withName: '.*:FDRCONSENSUSID' { + ext.args = "-PSM true" + } +} + +process { + // FDRIDPEP + withName: '.*:FDRIDPEP' { + ext.args = "-PSM true" + } +} + process { // ISOBARICANALYZER withName: '.*:TMT:.*:ISOBARICANALYZER' { diff --git a/modules/local/openms/falsediscoveryrate/main.nf b/modules/local/openms/falsediscoveryrate/main.nf index febd4f61..186a6306 100644 --- a/modules/local/openms/falsediscoveryrate/main.nf +++ b/modules/local/openms/falsediscoveryrate/main.nf @@ -26,7 +26,6 @@ process FALSEDISCOVERYRATE { -in ${id_file} \\ -out ${id_file.baseName}_fdr.idXML \\ -threads $task.cpus \\ - -protein $params.protein \\ -algorithm:add_decoy_peptides \\ -algorithm:add_decoy_proteins \\ $args \\ diff --git a/nextflow_schema.json b/nextflow_schema.json index 762955d2..2f548135 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -464,12 +464,6 @@ "fa_icon": "fas fa-list-ol", "enum": ["none", "ignore_iqr_outliers", "set_iqr_to_closest_valid", "ignore_extreme_percentiles"] }, - "protein": { - "type": "boolean", - "description": "Perform FDR calculation on protein level", - "default": false, - "fa_icon": "fas fa-ban" - }, "idpep_debug": { "type": "integer", "description": "Debug level for IDPEP step. Increase for verbose logging", From 35316a064c12498b398012c5f6346d72b33e43f5 Mon Sep 17 00:00:00 2001 From: Julianus Pfeuffer Date: Fri, 20 May 2022 21:12:54 +0200 Subject: [PATCH 3/4] Disable protein FDR before inference --- conf/modules.config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index e3a730ef..dab69338 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -140,14 +140,14 @@ if (params.enable_mod_localization) { process { // FDRCONSENSUSID withName: '.*:FDRCONSENSUSID' { - ext.args = "-PSM true" + ext.args = "-PSM true -protein false" } } process { // FDRIDPEP withName: '.*:FDRIDPEP' { - ext.args = "-PSM true" + ext.args = "-PSM true -protein false" } } From bc6532756c8473c247d0b072de64eaaf320427e2 Mon Sep 17 00:00:00 2001 From: Julianus Pfeuffer Date: Fri, 20 May 2022 22:36:33 +0200 Subject: [PATCH 4/4] Set protein FDR in localize back to 0.05 --- conf/test_localize.config | 1 + 1 file changed, 1 insertion(+) diff --git a/conf/test_localize.config b/conf/test_localize.config index ba5d5366..e6d140d8 100644 --- a/conf/test_localize.config +++ b/conf/test_localize.config @@ -28,6 +28,7 @@ params { enable_mod_localization = true search_engines = 'comet,msgf' enable_qc = true + protein_level_fdr_cutoff = 0.05 psm_level_fdr_cutoff = 1.0 skip_post_msstats = true }