diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b7fcc43..90aa5d30 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # nf-core/mhcquant: Changelog +## v2.3.1 nfcore/mhcquant "White Gold Swallow" - 2022/05/10 + +### `Added` + +- [#210](https://github.com/nf-core/mhcquant/pull/210) - Icons to the different parameters in the `nextflow_schema.json` + +### `Fixed` + +- [#211](https://github.com/nf-core/mhcquant/issues/211) Resolved the problem that there was no output from `OPENMS_MZTABEXPORTER_QUANT` +- [#212](https://github.com/nf-core/mhcquant/issues/212) - Altered the CometAdapter functionalities for resolve the issue with the `fixed_mods` + +### `Dependencies` + +### `Deprecated` + ## v2.3.0 nfcore/mhcquant "White Gold Swallow" - 2022/04/05 ### `Added` diff --git a/conf/modules.config b/conf/modules.config index 9336a39b..9731f50d 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -134,10 +134,18 @@ process { ] } - withName: 'OPENMS_DECOYDATABASE|OPENMS_THERMORAWFILEPARSER|OPENMS_PEAKPICKERHIRES|OPENMS_PEPTIDEINDEXER|OPENMS_FALSEDISCOVERYRATE|OPENMS_IDMERGER|OPENMS_MAPRTTRANSFORMER.*ML|OPENMS_FEATURE.*|OPENMS_IDCONFLICTRESOLVER|OPENMS_MZTABEXPORTER' { + withName: 'OPENMS_DECOYDATABASE|OPENMS_THERMORAWFILEPARSER|OPENMS_PEAKPICKERHIRES|OPENMS_PEPTIDEINDEXER|OPENMS_FALSEDISCOVERYRATE|OPENMS_IDMERGER|OPENMS_MAPRTTRANSFORMER.*ML|OPENMS_FEATURE.*|OPENMS_IDCONFLICTRESOLVER' { publishDir = [ enabled: false ] } + withName: 'OPENMS_MZTABEXPORTER_QUANT' { + publishDir = [ + path: { "${params.outdir}/Intermediate_Results" }, + mode: params.publish_dir_mode, + pattern: '*.mzTab' + ] + } + withName: 'OPENMS_TEXTEXPORTER_UNQUANTIFIED|OPENMS_TEXTEXPORTER_QUANTIFIED' { ext.args = [ "-id:add_metavalues 0" diff --git a/modules/local/openms_cometadapter.nf b/modules/local/openms_cometadapter.nf index 7f43043d..25819d78 100644 --- a/modules/local/openms_cometadapter.nf +++ b/modules/local/openms_cometadapter.nf @@ -18,7 +18,7 @@ process OPENMS_COMETADAPTER { def prefix = task.ext.prefix ?: "${mzml.baseName}" def args = task.ext.args ?: '' - def mods = params.fixed_mods != " " ? "-fixed_modifications ${params.fixed_mods.tokenize(',').collect { "'${it}'"}.join(" ")}" : "" + def mods = params.fixed_mods != " " ? "-fixed_modifications ${params.fixed_mods.tokenize(',').collect { "'${it}'"}.join(" ")}" : "-fixed_modifications" def xions = params.use_x_ions ? "-use_X_ions true" : "" def zions = params.use_z_ions ? "-use_Z_ions true" : "" def aions = params.use_a_ions ? "-use_A_ions true" : "" diff --git a/nextflow.config b/nextflow.config index 62c90a23..436f107d 100644 --- a/nextflow.config +++ b/nextflow.config @@ -204,7 +204,7 @@ manifest { description = 'Identify and quantify peptides from mass spectrometry raw data' mainScript = 'main.nf' nextflowVersion = '!>=21.10.3' - version = '2.3.0' + version = '2.3.1' } // Function to ensure that resource requirements don't go beyond diff --git a/nextflow_schema.json b/nextflow_schema.json index 012c1beb..a6f1e83a 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -45,22 +45,25 @@ "database_options": { "title": "Database Options", "type": "object", + "fa_icon": "fas fa-database", "description": "", "default": "", "properties": { "fasta": { "type": "string", - "fa_icon": "fas fa-dna", + "fa_icon": "fas fa-file-code", "pattern": ".fasta$", "description": "Input FASTA protein database", "help_text": "If you have no genome reference available, the pipeline can build one using a FASTA file. This requires additional time and resources, so it's better to use a pre-build index if possible." }, "include_proteins_from_vcf": { "type": "boolean", + "fa_icon": "fas fa-file-code", "description": "Set depending on whether variants should be translated to proteins and included into your fasta for database search." }, "skip_decoy_generation": { "type": "boolean", + "fa_icon": "fas fa-fast-forward", "description": "Add this parameter when you want to skip the generation of the decoy database, the consequence is that it prevents the generation of variants and FDR refinement", "help_text": "If you want to use your own decoys, you can specify a dataset that includes decoy sequences. However, each database entry should keep the prefix 'DECOY_'.\nOne should consider though that this option will then prevent appending variants to the database and if not using reversed decoys the subset refinement FDR option will not work." } @@ -69,16 +72,19 @@ "preprocessing": { "title": "Preprocessing", "type": "object", + "fa_icon": "fas fa-microchip", "description": "", "default": "", "properties": { "pick_ms_levels": { "type": "integer", + "fa_icon": "fas fa-layer-group", "default": 2, "description": "Specify the MS levels for which the peak picking is applied (unless you use `--run_centroidisation`)." }, "run_centroidisation": { "type": "boolean", + "fa_icon": "fas fa-border-center-v", "default": false, "description": "Choose whether the specified ms_level in pick_ms_levels is centroided or not." } @@ -87,65 +93,77 @@ "mass_spectrometry_data_processing": { "title": "Mass Spectrometry Data Processing", "type": "object", + "fa_icon": "fas fa-waveform-lines", "description": "", "default": "", "properties": { "peptide_min_length": { "type": "integer", + "fa_icon": "fas fa-dash", "default": 8, "description": "Specify the minimum length of peptides to be considered after processing" }, "peptide_max_length": { "type": "integer", + "fa_icon": "fas fa-plus", "default": 12, "description": "Specify the maximum length of peptides to be considered after processing" }, "fragment_mass_tolerance": { "type": "number", "default": 0.02, + "fa_icon": "fas fa-indent", "description": "Specify the fragment mass tolerance to be used for the comet database search.", "help_text": "For High-Resolution instruments a fragment mass tolerance value of 0.02 is recommended. (See the Comet parameter documentation: eg. 0.02)" }, "precursor_mass_tolerance": { "type": "integer", + "fa_icon": "fas fa-indent", "default": 5, "description": "Specify the precursor mass tolerance to be used for the comet database search.", "help_text": " For High-Resolution instruments a precursor mass tolerance value of 5ppm is recommended. (eg. 5)" }, "fragment_bin_offset": { "type": "integer", + "fa_icon": "fas fa-indent", "default": 0, "description": "Specify the fragment bin offset to be used for the comet database search.", "help_text": "For High-Resolution instruments a fragment bin offset of 0 is recommended. (See the Comet parameter documentation: eg. 0)" }, "number_mods": { "type": "integer", + "fa_icon": "fas fa-hashtag", "default": 3, "description": "Specify the maximum number of modifications that should be contained in a peptide sequence match." }, "num_hits": { "type": "integer", + "fa_icon": "fas fa-hashtag", "default": 1, "description": "Specify the number of hits that should be reported for each spectrum." }, "digest_mass_range": { "type": "string", + "fa_icon": "fas fa-chard-line", "default": "800:2500", "description": "Specify the mass range that peptides should fulfill to be considered for peptide spectrum matching." }, "prec_charge": { "type": "string", + "fa_icon": "fas fa-input-numeric", "default": "2:3", "description": "Specify the precursor charge range that peptides should fulfill to be considered for peptide spectrum matching." }, "activation_method": { "type": "string", + "fa_icon": "fas fa-file-code", "default": "ALL", "description": "Specify which fragmentation method was used in the MS acquisition", "enum": ["ALL", "CID", "ECD", "ETD", "PQD", "HCD", "IRMPD"] }, "enzyme": { "type": "string", + "fa_icon": "fas fa-dna", "default": "unspecific cleavage", "description": "Specify which enzymatic restriction should be applied", "hidden": true, @@ -153,52 +171,63 @@ }, "max_rt_alignment_shift": { "type": "integer", + "fa_icon": "fas fa-slider", "default": 300, "description": "Set a maximum retention time shift for the linear rt alignment" }, "fixed_mods": { "type": "string", + "fa_icon": "fas fa-cubes-stacked", "description": "Specify which fixed modifications should be applied to the database search", "help_text": "e.g. 'Carbamidomethyl (C)' (see OpenMS modifications; for a list of options, see parameter description on https://abibuilder.informatik.uni-tuebingen.de/archive/openms/Documentation/nightly/html/TOPP_CometAdapter.html)" }, "variable_mods": { "type": "string", + "fa_icon": "fas fa-cubes-stacked", "default": "Oxidation (M)", "description": "Specify which variable modifications should be applied to the database search", "help_text": "e.g. 'Oxidation (M)' (see OpenMS modifications; for a list of options, see parameter description on https://abibuilder.informatik.uni-tuebingen.de/archive/openms/Documentation/nightly/html/TOPP_CometAdapter.html)" }, "use_x_ions": { "type": "boolean", + "fa_icon": "fas fa-file-code", "description": "Include x ions into the peptide spectrum matching" }, "use_z_ions": { "type": "boolean", + "fa_icon": "fas fa-file-code", "description": "Include z ions into the peptide spectrum matching" }, "use_a_ions": { "type": "boolean", + "fa_icon": "fas fa-file-code", "description": "Include a ions into the peptide spectrum matching" }, "use_c_ions": { "type": "boolean", + "fa_icon": "fas fa-file-code", "description": "Include c ions into the peptide spectrum matching" }, "use_NL_ions": { "type": "boolean", + "fa_icon": "fas fa-file-code", "description": "Include NL ions into the peptide spectrum matching" }, "remove_precursor_peak": { "type": "boolean", + "fa_icon": "fas fa-file-code", "description": "Include if you want to remove all peaks around precursor m/z", "default": false }, "spectrum_batch_size": { "type": "integer", + "fa_icon": "fas fa-wave-sine", "default": 500, "description": "Size of Spectrum batch for Comet processing (Decrease/Increase depending on Memory Availability)" }, "vcf_sheet": { "type": "string", + "fa_icon": "fas fa-file-code", "pattern": "^\\S+\\.tsv$", "description": "Specify a .tsv file containing the information about genomic variants (vcf files < v.4.2) for each sample.", "help_text": "| Sample | VCF_FileName |\n| -------------| :---------------------:|\n| MM15_Melanom | data/MM15_variants.vcf |\n| MM17_Melanom | data/MM17_variants.vcf |" @@ -208,42 +237,50 @@ "fdr_scoring": { "title": "FDR Scoring", "type": "object", + "fa_icon": "fas fa-star-half-stroke", "description": "", "default": "", "properties": { "fdr_level": { "type": "string", + "fa_icon": "fas fa-rectangle-code", "default": "peptide_level_fdrs", "description": "Specify the level at which the false discovery rate should be computed.", "enum": ["peptide_level_fdrs", "psm-level-fdrs", "protein_level_fdrs"] }, "fdr_threshold": { "type": "number", + "fa_icon": "fas fa-less-than", "default": 0.01, "description": "Specify the false discovery rate threshold at which peptide hits should be selected." }, "refine_fdr_on_predicted_subset": { "type": "boolean", + "fa_icon": "fas fa-arrows-repeat", "help_text": "SubsetFDR makes use of binding predictions applying the tool mhcflurry to subset all PSMs not passing the q-value threshold. If specified the FDR will be refined using Percolator on the subset of predicted binders among all PSMs resulting in an increased identification rate. (Please be aware that this option is only available for MHC class I data of alleles that are supported by mhcflurry)", "description": "Set if MHCquant should be run in SubsetFDR mode" }, "subset_affinity_threshold": { "type": "integer", + "fa_icon": "fas fa-pen", "default": 500, "description": "Affinity threshold (nM) used to define binders for PSM subset selection in the FDR refinement procedure" }, "description_correct_features": { "type": "integer", + "fa_icon": "fas fa-pen", "description": "Specify percolator descriptor feature set", "help_text": "See percolator description (https://github.com/percolator/percolator/wiki/Retention-time-and-calibration)" }, "klammer": { "type": "boolean", + "fa_icon": "fas fa-microchip", "description": "Use klammer retention time features for Percolator rescoring", "help_text": "https://pubs.acs.org/doi/10.1021/ac070262k" }, "subset_max_train": { "type": "integer", + "fa_icon": "fas fa-train-track", "description": "Maximum subset for percolator training iterations" } } @@ -251,15 +288,18 @@ "quantification_options": { "title": "Quantification Options", "type": "object", + "fa_icon": "fas fa-tally", "description": "", "default": "", "properties": { "skip_quantification": { "type": "boolean", + "fa_icon": "fas fa-fast-forward", "description": "Skip quantification and only yield peptide identifications" }, "quantification_fdr": { "type": "string", + "fa_icon": "fas fa-less-than", "description": "Compute FDR for the targeted approach", "help_text": "(Weisser H. and Choudhary J.S. J Proteome Res. 2017 Aug 4)" }, @@ -272,21 +312,25 @@ "mhc_affinity_prediction": { "title": "MHC affinity prediction", "type": "object", + "fa_icon": "fas fa-magnifying-glass", "description": "", "default": "", "properties": { "allele_sheet": { "type": "string", + "fa_icon": "fas fa-file-code", "pattern": "^\\S+\\.tsv$", "description": "Specify a .tsv file containing the MHC alleles of your probes as well as their metadata such as SampleID.", "help_text": "| Sample | HLA_Alleles_Class_1 | HLA_Alleles_Class_2 |\n| -------------| :----------------------------------------------:| ------------------------------------------:|\n| MM15_Melanom | A* 03:01;A* 68:01;B* 27:05;B* 35:03;C* 02:02;C* 04:01 |HLA-DRB1* 01:01;HLA-DQB1* 03:19;HLA-DQA1* 05:01|\n| MM17_Melanom | A* 02:01;B* 07:01;B* 26:01;C* 11:01;C* 01:01 |HLA-DRB1* 01:02;HLA-DRB3* 02:02;HLA-DRB4* 01:03|\n" }, "predict_class_1": { "type": "boolean", + "fa_icon": "fas fa-circle-1", "description": "Set flag depending on whether MHC class 1 binding predictions using the tool mhcflurry should be run." }, "predict_class_2": { "type": "boolean", + "fa_icon": "fas fa-circle-2", "description": "Set flag depending on whether MHC class 2 binding predictions using the tool mhcnuggets should be run." } } @@ -294,33 +338,39 @@ "variant_options": { "title": "Variant Options", "type": "object", + "fa_icon": "fas fa-dna", "description": "", "default": "", "properties": { "variant_reference": { "type": "string", + "fa_icon": "fas fa-file", "description": "Specify genomic reference used for variant annotation", "enum": ["GRCH37", "GRCH38"], "default": "GRCH38" }, "variant_annotation_style": { "type": "string", + "fa_icon": "fas fa-file", "description": "Specify style of tool used for variant annotation - currently supported", "enum": ["SNPEFF", "VEP", "ANNOVAR"], "default": "SNPEFF" }, "variant_indel_filter": { "type": "boolean", + "fa_icon": "fas fa-filter", "description": "Set this option to not consider insertions and deletions for variant translation", "default": false }, "variant_frameshift_filter": { "type": "boolean", + "fa_icon": "fas fa-filter", "description": "Set this option to not consider frameshifts for variant translation", "default": false }, "variant_snp_filter": { "type": "boolean", + "fa_icon": "fas fa-filter", "description": "Set this option to not consider snps for variant translation" } } @@ -328,11 +378,13 @@ "rt_prediction": { "title": "RT Prediction", "type": "object", + "fa_icon": "fas fa-timeline", "description": "", "default": "", "properties": { "predict_RT": { "type": "boolean", + "fa_icon": "fas fa-wrench", "description": "Set this option to predict retention times of all identified peptides and possible neoepitopes based on high scoring ids" } } diff --git a/subworkflows/local/post_quantification.nf b/subworkflows/local/post_quantification.nf index 9c720915..9f7fd6d5 100644 --- a/subworkflows/local/post_quantification.nf +++ b/subworkflows/local/post_quantification.nf @@ -6,7 +6,7 @@ include { OPENMS_FEATUREFINDERIDENTIFICATION } from include { OPENMS_FEATURELINKERUNLABELEDKD } from '../../modules/local/openms_featurelinkerunlabeledkd' include { OPENMS_IDCONFLICTRESOLVER } from '../../modules/local/openms_idconflictresolver' include { OPENMS_TEXTEXPORTER as OPENMS_TEXTEXPORTER_QUANTIFIED } from '../../modules/local/openms_textexporter' -include { OPENMS_MZTABEXPORTER } from '../../modules/local/openms_mztabexporter' +include { OPENMS_MZTABEXPORTER as OPENMS_MZTABEXPORTER_QUANT } from '../../modules/local/openms_mztabexporter' workflow POST_QUANTIFICATION { take: @@ -42,10 +42,10 @@ workflow POST_QUANTIFICATION { OPENMS_TEXTEXPORTER_QUANTIFIED(OPENMS_IDCONFLICTRESOLVER.out.consensusxml) ch_versions = ch_versions.mix(OPENMS_TEXTEXPORTER_QUANTIFIED.out.versions.first().ifEmpty(null)) // Export all information as mzTab - OPENMS_MZTABEXPORTER(OPENMS_IDCONFLICTRESOLVER.out.consensusxml) - ch_versions = ch_versions.mix(OPENMS_MZTABEXPORTER.out.versions.first().ifEmpty(null)) + OPENMS_MZTABEXPORTER_QUANT(OPENMS_IDCONFLICTRESOLVER.out.consensusxml) + ch_versions = ch_versions.mix(OPENMS_MZTABEXPORTER_QUANT.out.versions.first().ifEmpty(null)) emit: // Define the information that is returned by this workflow versions = ch_versions - mztab = OPENMS_MZTABEXPORTER.out.mztab + mztab = OPENMS_MZTABEXPORTER_QUANT.out.mztab }