From bc85bde688262ab210e676bcb496608174a36202 Mon Sep 17 00:00:00 2001 From: marissaDubbelaar Date: Wed, 24 Nov 2021 16:58:41 +0100 Subject: [PATCH 1/9] Remove the fastqc nf core module --- CHANGELOG.md | 2 +- modules.json | 3 - modules/local/generate_proteins_from_vcf.nf | 3 - modules/nf-core/modules/fastqc/functions.nf | 78 --------------------- modules/nf-core/modules/fastqc/main.nf | 54 -------------- modules/nf-core/modules/fastqc/meta.yml | 52 -------------- workflows/mhcquant.nf | 2 +- 7 files changed, 2 insertions(+), 192 deletions(-) delete mode 100644 modules/nf-core/modules/fastqc/functions.nf delete mode 100644 modules/nf-core/modules/fastqc/main.nf delete mode 100644 modules/nf-core/modules/fastqc/meta.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index 77ac83b1..d38e8aa2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ - Inclusion of assets/schema_input.json - Added the multiQC again to report the versions -- MHCquant parameters are now directly assigned to the argument of the +- MHCquant parameters are now directly assigned to the argument of the process ### `Fixed` diff --git a/modules.json b/modules.json index a817ae90..78c6a1b6 100644 --- a/modules.json +++ b/modules.json @@ -6,9 +6,6 @@ "custom/dumpsoftwareversions": { "git_sha": "3aacd46da2b221ed47aaa05c413a828538d2c2ae" }, - "fastqc": { - "git_sha": "3aacd46da2b221ed47aaa05c413a828538d2c2ae" - }, "multiqc": { "git_sha": "3aacd46da2b221ed47aaa05c413a828538d2c2ae" } diff --git a/modules/local/generate_proteins_from_vcf.nf b/modules/local/generate_proteins_from_vcf.nf index e63e45e4..fb4cb527 100644 --- a/modules/local/generate_proteins_from_vcf.nf +++ b/modules/local/generate_proteins_from_vcf.nf @@ -4,9 +4,6 @@ include { initOptions; saveFiles } from './functions' params.options = [:] options = initOptions(params.options) -def VERSIONFRED2 = '2.0.6' -def VERSIONMHCNUGGETS = '2.3.2' - process GENERATE_PROTEINS_FROM_VCF { tag "$meta" label 'process_medium' diff --git a/modules/nf-core/modules/fastqc/functions.nf b/modules/nf-core/modules/fastqc/functions.nf deleted file mode 100644 index 85628ee0..00000000 --- a/modules/nf-core/modules/fastqc/functions.nf +++ /dev/null @@ -1,78 +0,0 @@ -// -// Utility functions used in nf-core DSL2 module files -// - -// -// Extract name of software tool from process name using $task.process -// -def getSoftwareName(task_process) { - return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() -} - -// -// Extract name of module from process name using $task.process -// -def getProcessName(task_process) { - return task_process.tokenize(':')[-1] -} - -// -// Function to initialise default values and to generate a Groovy Map of available options for nf-core modules -// -def initOptions(Map args) { - def Map options = [:] - options.args = args.args ?: '' - options.args2 = args.args2 ?: '' - options.args3 = args.args3 ?: '' - options.publish_by_meta = args.publish_by_meta ?: [] - options.publish_dir = args.publish_dir ?: '' - options.publish_files = args.publish_files - options.suffix = args.suffix ?: '' - return options -} - -// -// Tidy up and join elements of a list to return a path string -// -def getPathFromList(path_list) { - def paths = path_list.findAll { item -> !item?.trim().isEmpty() } // Remove empty entries - paths = paths.collect { it.trim().replaceAll("^[/]+|[/]+\$", "") } // Trim whitespace and trailing slashes - return paths.join('/') -} - -// -// Function to save/publish module results -// -def saveFiles(Map args) { - def ioptions = initOptions(args.options) - def path_list = [ ioptions.publish_dir ?: args.publish_dir ] - - // Do not publish versions.yml unless running from pytest workflow - if (args.filename.equals('versions.yml') && !System.getenv("NF_CORE_MODULES_TEST")) { - return null - } - if (ioptions.publish_by_meta) { - def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta - for (key in key_list) { - if (args.meta && key instanceof String) { - def path = key - if (args.meta.containsKey(key)) { - path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] - } - path = path instanceof String ? path : '' - path_list.add(path) - } - } - } - if (ioptions.publish_files instanceof Map) { - for (ext in ioptions.publish_files) { - if (args.filename.endsWith(ext.key)) { - def ext_list = path_list.collect() - ext_list.add(ext.value) - return "${getPathFromList(ext_list)}/$args.filename" - } - } - } else if (ioptions.publish_files == null) { - return "${getPathFromList(path_list)}/$args.filename" - } -} diff --git a/modules/nf-core/modules/fastqc/main.nf b/modules/nf-core/modules/fastqc/main.nf deleted file mode 100644 index 9f6cfc55..00000000 --- a/modules/nf-core/modules/fastqc/main.nf +++ /dev/null @@ -1,54 +0,0 @@ -// Import generic module functions -include { initOptions; saveFiles; getSoftwareName; getProcessName } from './functions' - -params.options = [:] -options = initOptions(params.options) - -process FASTQC { - tag "$meta.id" - label 'process_medium' - publishDir "${params.outdir}", - mode: params.publish_dir_mode, - saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:getSoftwareName(task.process), meta:meta, publish_by_meta:['id']) } - - conda (params.enable_conda ? "bioconda::fastqc=0.11.9" : null) - if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { - container "https://depot.galaxyproject.org/singularity/fastqc:0.11.9--0" - } else { - container "quay.io/biocontainers/fastqc:0.11.9--0" - } - - input: - tuple val(meta), path(reads) - - output: - tuple val(meta), path("*.html"), emit: html - tuple val(meta), path("*.zip") , emit: zip - path "versions.yml" , emit: versions - - script: - // Add soft-links to original FastQs for consistent naming in pipeline - def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" - if (meta.single_end) { - """ - [ ! -f ${prefix}.fastq.gz ] && ln -s $reads ${prefix}.fastq.gz - fastqc $options.args --threads $task.cpus ${prefix}.fastq.gz - - cat <<-END_VERSIONS > versions.yml - ${getProcessName(task.process)}: - ${getSoftwareName(task.process)}: \$( fastqc --version | sed -e "s/FastQC v//g" ) - END_VERSIONS - """ - } else { - """ - [ ! -f ${prefix}_1.fastq.gz ] && ln -s ${reads[0]} ${prefix}_1.fastq.gz - [ ! -f ${prefix}_2.fastq.gz ] && ln -s ${reads[1]} ${prefix}_2.fastq.gz - fastqc $options.args --threads $task.cpus ${prefix}_1.fastq.gz ${prefix}_2.fastq.gz - - cat <<-END_VERSIONS > versions.yml - ${getProcessName(task.process)}: - ${getSoftwareName(task.process)}: \$( fastqc --version | sed -e "s/FastQC v//g" ) - END_VERSIONS - """ - } -} diff --git a/modules/nf-core/modules/fastqc/meta.yml b/modules/nf-core/modules/fastqc/meta.yml deleted file mode 100644 index b09553a3..00000000 --- a/modules/nf-core/modules/fastqc/meta.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: fastqc -description: Run FastQC on sequenced reads -keywords: - - quality control - - qc - - adapters - - fastq -tools: - - fastqc: - description: | - FastQC gives general quality metrics about your reads. - It provides information about the quality score distribution - across your reads, the per base sequence content (%A/C/G/T). - You get information about adapter contamination and other - overrepresented sequences. - homepage: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/ - documentation: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/Help/ - licence: ['GPL-2.0-only'] -input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: | - List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. -output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - html: - type: file - description: FastQC report - pattern: "*_{fastqc.html}" - - zip: - type: file - description: FastQC report archive - pattern: "*_{fastqc.zip}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" -authors: - - "@drpatelh" - - "@grst" - - "@ewels" - - "@FelixKrueger" diff --git a/workflows/mhcquant.nf b/workflows/mhcquant.nf index de46bdd0..fb3ad885 100644 --- a/workflows/mhcquant.nf +++ b/workflows/mhcquant.nf @@ -193,7 +193,7 @@ workflow MHCQUANT { .map(it -> [it[1], it[2], it[3]]) // If specified translate variants to proteins and include in reference fasta GENERATE_PROTEINS_FROM_VCF( ch_vcf ) - // ch_versions = ch_versions.mix(GENERATE_PROTEINS_FROM_VCF.out.versions.first().ifEmpty(null)) + ch_versions = ch_versions.mix(GENERATE_PROTEINS_FROM_VCF.out.versions.first().ifEmpty(null)) ch_fasta_file = GENERATE_PROTEINS_FROM_VCF.out.vcf_fasta } else { ch_fasta_file = input_fasta From bd1e8a09c9c48433a3f500d994c5fecf525317f4 Mon Sep 17 00:00:00 2001 From: marissaDubbelaar Date: Thu, 25 Nov 2021 09:18:49 +0100 Subject: [PATCH 2/9] Fix issue with zendodo link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f2b0f2be..9ee8190f 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![GitHub Actions CI Status](https://github.com/nf-core/mhcquant/workflows/nf-core%20CI/badge.svg)](https://github.com/nf-core/mhcquant/actions?query=workflow%3A%22nf-core+CI%22) [![GitHub Actions Linting Status](https://github.com/nf-core/mhcquant/workflows/nf-core%20linting/badge.svg)](https://github.com/nf-core/mhcquant/actions?query=workflow%3A%22nf-core+linting%22) [![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/mhcquant/results) -[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.5407955-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.1400710) +[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.5407955-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.5407955) [![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A521.04.0-23aa62.svg?labelColor=000000)](https://www.nextflow.io/) [![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/) From a7102f81476edfdd98665e00d77e8a9c19f41059 Mon Sep 17 00:00:00 2001 From: marissaDubbelaar Date: Thu, 25 Nov 2021 09:45:51 +0100 Subject: [PATCH 3/9] Resolve internal conflict --- README.md | 2 +- nextflow.config | 2 +- workflows/mhcquant.nf | 5 ----- 3 files changed, 2 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 9ee8190f..20157511 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ On release, automated continuous integration tests run the pipeline on a full-si 1. Install [`Nextflow`](https://www.nextflow.io/docs/latest/getstarted.html#installation) (`>=21.04.0`) -2. Install any of [`Docker`](https://docs.docker.com/engine/installation/), [`Singularity`](https://www.sylabs.io/guides/3.0/user-guide/), [`Podman`](https://podman.io/), [`Shifter`](https://nersc.gitlab.io/development/shifter/how-to-use/) or [`Charliecloud`](https://hpc.github.io/charliecloud/) for full pipeline reproducibility _(please only use [`Conda`](https://conda.io/miniconda.html) as a last resort; see [docs](https://nf-co.re/usage/configuration#basic-configuration-profiles))_. Note: This pipeline does not currently support running with Conda on macOS if the `--remove_ribo_rna` parameter is used because the latest version of the SortMeRNA package is not available for this platform. +2. Install any of [`Docker`](https://docs.docker.com/engine/installation/), [`Singularity`](https://www.sylabs.io/guides/3.0/user-guide/), [`Podman`](https://podman.io/), [`Shifter`](https://nersc.gitlab.io/development/shifter/how-to-use/) or [`Charliecloud`](https://hpc.github.io/charliecloud/) for full pipeline reproducibility _(please only use [`Conda`](https://conda.io/miniconda.html) as a last resort; see [docs](https://nf-co.re/usage/configuration#basic-configuration-profiles))_. 3. Download the pipeline and test it on a minimal dataset with a single command: diff --git a/nextflow.config b/nextflow.config index 138c3a52..cb09dc50 100644 --- a/nextflow.config +++ b/nextflow.config @@ -211,7 +211,7 @@ dag { manifest { name = 'nf-core/mhcquant' - author = 'Leon Bichmann' + author = 'Leon Bichmann, Marissa Dubbelaar' homePage = 'https://github.com/nf-core/mhcquant' description = 'Identify and quantify peptides from mass spectrometry raw data' mainScript = 'main.nf' diff --git a/workflows/mhcquant.nf b/workflows/mhcquant.nf index fb3ad885..a2ce1035 100644 --- a/workflows/mhcquant.nf +++ b/workflows/mhcquant.nf @@ -361,11 +361,6 @@ workflow MHCQUANT { // Resolve conflicting ids matching to the same feature OPENMS_IDCONFLICTRESOLVER(OPENMS_FEATURELINKERUNLABELEDKD.out.consensusxml) ch_versions = ch_versions.mix(OPENMS_IDCONFLICTRESOLVER.out.versions.first().ifEmpty(null)) - // Assign the outcome of the id conflict resolver as export content - //OPENMS_IDCONFLICTRESOLVER.out.consensusxml - //} else { - // // Assign the outcome of the filter q value as export content - // export_content = filter_q_value.map { it -> [it[1], it[2]] } // Export all information as text to csv OPENMS_TEXTEXPORTER(OPENMS_IDCONFLICTRESOLVER.out.consensusxml) ch_versions = ch_versions.mix(OPENMS_TEXTEXPORTER.out.versions.first().ifEmpty(null)) From a75c8408dc2c7add33d32a6c91f67f9f5dca75ce Mon Sep 17 00:00:00 2001 From: marissaDubbelaar Date: Thu, 25 Nov 2021 09:47:31 +0100 Subject: [PATCH 4/9] fix linting problems with the license --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index dcab23b0..43eea689 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) Leon Bichmann +Copyright (c) Leon Bichmann, Marissa Dubbelaar Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From 29e35344188dacf71c4df7ecd884e248673a12b9 Mon Sep 17 00:00:00 2001 From: marissaDubbelaar Date: Thu, 25 Nov 2021 09:51:34 +0100 Subject: [PATCH 5/9] Resolve internal conflict --- CITATIONS.md | 1 - modules/local/openms_thermorawfileparser.nf | 1 - 2 files changed, 2 deletions(-) diff --git a/CITATIONS.md b/CITATIONS.md index 71b78eef..68d4abe9 100644 --- a/CITATIONS.md +++ b/CITATIONS.md @@ -21,7 +21,6 @@ * [OpenMS](https://pubmed.ncbi.nlm.nih.gov/27575624/) > Röst H, Sachsenberg T, Aiche S, Bielow C, Weisser H, Aicheler F, Andreotti S, Ehrlich HC, Gutenbrunner P, Kenar E, Liang X, Nahnsen S, Nilse L, Pfeuffer J, Rosenberger G, Rurik M, Schmitt U, Veit J, Walzer M, Wojnar D, Wolski WE, Schilling O, Choudhary JS, Malmström L, Aebersold R, Reinert K, Kohlbacher O. OpenMS: a flexible open-source software platform for mass spectrometry data analysis. Nat Methods 13, 741–748 (2016). doi: 10.1038/nmeth.3959. PubMed PMID: 27575624 -* [FastQC](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/) * [MultiQC](https://www.ncbi.nlm.nih.gov/pubmed/27312411/) > Ewels P, Magnusson M, Lundin S, Käller M. MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics. 2016 Oct 1;32(19):3047-8. doi: 10.1093/bioinformatics/btw354. Epub 2016 Jun 16. PubMed PMID: 27312411; PubMed Central PMCID: PMC5039924. diff --git a/modules/local/openms_thermorawfileparser.nf b/modules/local/openms_thermorawfileparser.nf index 9ca958f1..85318312 100644 --- a/modules/local/openms_thermorawfileparser.nf +++ b/modules/local/openms_thermorawfileparser.nf @@ -30,7 +30,6 @@ process OPENMS_THERMORAWFILEPARSER { ThermoRawFileParser.sh -i=${rawfile} \\ -f=2 \\ -b=${prefix}.mzML - > ThermoRawFileParser.version.txt cat <<-END_VERSIONS > versions.yml ${getProcessName(task.process)}: From e8ad1acf4cc6a73d7f6ceee634b611d0cd15907b Mon Sep 17 00:00:00 2001 From: marissaDubbelaar Date: Thu, 25 Nov 2021 10:27:16 +0100 Subject: [PATCH 6/9] Remove fastqc from the README --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 20157511..d7698ca8 100644 --- a/README.md +++ b/README.md @@ -28,8 +28,7 @@ On release, automated continuous integration tests run the pipeline on a full-si ## Pipeline summary -1. Read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/)) -2. Present QC for raw reads ([`MultiQC`](http://multiqc.info/)) +1. Present QC for raw reads ([`MultiQC`](http://multiqc.info/)) ![overview](assets/MHCquant_scheme.png) (This chart was created with the help of [Lucidchart](https://www.lucidchart.com)) From 087d50408e616b7218aa93a535fe4ae4c97b06f2 Mon Sep 17 00:00:00 2001 From: marissaDubbelaar Date: Thu, 25 Nov 2021 16:33:46 +0100 Subject: [PATCH 7/9] Bump version 2.1.0dev -> 2.1.0 --- nextflow.config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nextflow.config b/nextflow.config index cb09dc50..46300942 100644 --- a/nextflow.config +++ b/nextflow.config @@ -216,7 +216,7 @@ manifest { description = 'Identify and quantify peptides from mass spectrometry raw data' mainScript = 'main.nf' nextflowVersion = '!>=21.04.0' - version = '2.1.0dev' + version = '2.1.0' } // Function to ensure that resource requirements don't go beyond @@ -250,4 +250,4 @@ def check_max(obj, type) { return obj } } -} +} \ No newline at end of file From 02b220de538b07f9f8c2f877a8db1ae35c416617 Mon Sep 17 00:00:00 2001 From: marissaDubbelaar Date: Thu, 25 Nov 2021 16:41:34 +0100 Subject: [PATCH 8/9] Add ending to nextflow.config --- nextflow.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nextflow.config b/nextflow.config index 46300942..77701d02 100644 --- a/nextflow.config +++ b/nextflow.config @@ -250,4 +250,4 @@ def check_max(obj, type) { return obj } } -} \ No newline at end of file +} From 44b1b112ff3c84ffe55ad498d984f6e5cb605c4c Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar <71317334+marissaDubbelaar@users.noreply.github.com> Date: Thu, 25 Nov 2021 17:20:39 +0100 Subject: [PATCH 9/9] Update nextflow.config --- nextflow.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nextflow.config b/nextflow.config index 77701d02..902ef037 100644 --- a/nextflow.config +++ b/nextflow.config @@ -216,7 +216,7 @@ manifest { description = 'Identify and quantify peptides from mass spectrometry raw data' mainScript = 'main.nf' nextflowVersion = '!>=21.04.0' - version = '2.1.0' + version = '2.1.0dev' } // Function to ensure that resource requirements don't go beyond