diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml
index bcbb910..fe81d27 100644
--- a/.github/workflows/awsfulltest.yml
+++ b/.github/workflows/awsfulltest.yml
@@ -28,3 +28,7 @@ jobs:
"outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/taxprofiler/results-${{ github.sha }}"
}
profiles: test_full,aws_tower
+ - uses: actions/upload-artifact@v3
+ with:
+ name: Tower debug log file
+ path: tower_action_*.log
diff --git a/.github/workflows/awstest.yml b/.github/workflows/awstest.yml
index 5d35eea..a580097 100644
--- a/.github/workflows/awstest.yml
+++ b/.github/workflows/awstest.yml
@@ -23,3 +23,7 @@ jobs:
"outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/taxprofiler/results-test-${{ github.sha }}"
}
profiles: test,aws_tower
+ - uses: actions/upload-artifact@v3
+ with:
+ name: Tower debug log file
+ path: tower_action_*.log
diff --git a/.prettierignore b/.prettierignore
index a48d0d5..f865061 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -1,4 +1,5 @@
email_template.html
+adaptivecard.json
.nextflow*
work/
data/
diff --git a/CITATION.cff b/CITATION.cff
index 4533e2f..017666c 100644
--- a/CITATION.cff
+++ b/CITATION.cff
@@ -13,8 +13,8 @@ authors:
given-names: Johannes
- family-names: Wilm
given-names: Andreas
- - family-names: Ulysse Garcia
- given-names: Maxime
+ - family-names: Garcia
+ given-names: Maxime Ulysse
- family-names: Di Tommaso
given-names: Paolo
- family-names: Nahnsen
@@ -39,8 +39,8 @@ prefered-citation:
given-names: Johannes
- family-names: Wilm
given-names: Andreas
- - family-names: Ulysse Garcia
- given-names: Maxime
+ - family-names: Garcia
+ given-names: Maxime Ulysse
- family-names: Di Tommaso
given-names: Paolo
- family-names: Nahnsen
diff --git a/assets/adaptivecard.json b/assets/adaptivecard.json
new file mode 100644
index 0000000..7880ea8
--- /dev/null
+++ b/assets/adaptivecard.json
@@ -0,0 +1,67 @@
+{
+ "type": "message",
+ "attachments": [
+ {
+ "contentType": "application/vnd.microsoft.card.adaptive",
+ "contentUrl": null,
+ "content": {
+ "\$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "msteams": {
+ "width": "Full"
+ },
+ "type": "AdaptiveCard",
+ "version": "1.2",
+ "body": [
+ {
+ "type": "TextBlock",
+ "size": "Large",
+ "weight": "Bolder",
+ "color": "<% if (success) { %>Good<% } else { %>Attention<%} %>",
+ "text": "nf-core/taxprofiler v${version} - ${runName}",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "spacing": "None",
+ "text": "Completed at ${dateComplete} (duration: ${duration})",
+ "isSubtle": true,
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "<% if (success) { %>Pipeline completed successfully!<% } else { %>Pipeline completed with errors. The full error message was: ${errorReport}.<% } %>",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "The command used to launch the workflow was as follows:",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "${commandLine}",
+ "isSubtle": true,
+ "wrap": true
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.ShowCard",
+ "title": "Pipeline Configuration",
+ "card": {
+ "type": "AdaptiveCard",
+ "\$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "body": [
+ {
+ "type": "FactSet",
+ "facts": [<% out << summary.collect{ k,v -> "{\"title\": \"$k\", \"value\" : \"$v\"}"}.join(",\n") %>
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ]
+}
diff --git a/assets/methods_description_template.yml b/assets/methods_description_template.yml
new file mode 100644
index 0000000..e4c292f
--- /dev/null
+++ b/assets/methods_description_template.yml
@@ -0,0 +1,25 @@
+id: "nf-core-taxprofiler-methods-description"
+description: "Suggested text and references to use when describing pipeline usage within the methods section of a publication."
+section_name: "nf-core/taxprofiler Methods Description"
+section_href: "https://github.com/nf-core/taxprofiler"
+plot_type: "html"
+## TODO nf-core: Update the HTML below to your prefered methods description, e.g. add publication citation for this pipeline
+## You inject any metadata in the Nextflow '${workflow}' object
+data: |
+
Methods
+ Data was processed using nf-core/taxprofiler v${workflow.manifest.version} ${doi_text} of the nf-core collection of workflows (Ewels et al., 2020).
+ The pipeline was executed with Nextflow v${workflow.nextflow.version} (Di Tommaso et al., 2017) with the following command:
+ ${workflow.commandLine}
+ References
+
+ - Di Tommaso, P., Chatzou, M., Floden, E. W., Barja, P. P., Palumbo, E., & Notredame, C. (2017). Nextflow enables reproducible computational workflows. Nature Biotechnology, 35(4), 316-319. https://doi.org/10.1038/nbt.3820
+ - Ewels, P. A., Peltzer, A., Fillinger, S., Patel, H., Alneberg, J., Wilm, A., Garcia, M. U., Di Tommaso, P., & Nahnsen, S. (2020). The nf-core framework for community-curated bioinformatics pipelines. Nature Biotechnology, 38(3), 276-278. https://doi.org/10.1038/s41587-020-0439-x
+
+
+
Notes:
+
+ ${nodoi_text}
+ - The command above does not include parameters contained in any configs or profiles that may have been used. Ensure the config file is also uploaded with your publication!
+ - You should also cite all software used within this run. Check the "Software Versions" of this report to get version information.
+
+
diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml
index d16ed7e..e2b5a6e 100644
--- a/assets/multiqc_config.yml
+++ b/assets/multiqc_config.yml
@@ -3,10 +3,12 @@ report_comment: >
analysis pipeline. For information about how to interpret these results, please see the
documentation.
report_section_order:
- software_versions:
+ "nf-core-taxprofiler-methods-description":
order: -1000
- "nf-core-taxprofiler-summary":
+ software_versions:
order: -1001
+ "nf-core-taxprofiler-summary":
+ order: -1002
export_plots: true
diff --git a/docs/usage.md b/docs/usage.md
index 252c84d..8b8b588 100644
--- a/docs/usage.md
+++ b/docs/usage.md
@@ -400,6 +400,14 @@ See the main [Nextflow documentation](https://www.nextflow.io/docs/latest/config
If you have any questions or issues please send us a message on [Slack](https://nf-co.re/join/slack) on the [`#configs` channel](https://nfcore.slack.com/channels/configs).
+## Azure Resource Requests
+
+To be used with the `azurebatch` profile by specifying the `-profile azurebatch`.
+We recommend providing a compute `params.vm_type` of `Standard_D16_v3` VMs by default but these options can be changed if required.
+
+Note that the choice of VM size depends on your quota and the overall workload during the analysis.
+For a thorough list, please refer the [Azure Sizes for virtual machines in Azure](https://docs.microsoft.com/en-us/azure/virtual-machines/sizes).
+
## Running in the background
Nextflow handles job submissions and supervises the running jobs. The Nextflow process must run until the pipeline is finished.
diff --git a/lib/NfcoreTemplate.groovy b/lib/NfcoreTemplate.groovy
index 2fc0a9b..27feb00 100755
--- a/lib/NfcoreTemplate.groovy
+++ b/lib/NfcoreTemplate.groovy
@@ -145,6 +145,61 @@ class NfcoreTemplate {
output_tf.withWriter { w -> w << email_txt }
}
+ //
+ // Construct and send adaptive card
+ // https://adaptivecards.io
+ //
+ public static void adaptivecard(workflow, params, summary_params, projectDir, log) {
+ def hook_url = params.hook_url
+
+ def summary = [:]
+ for (group in summary_params.keySet()) {
+ summary << summary_params[group]
+ }
+
+ def misc_fields = [:]
+ misc_fields['start'] = workflow.start
+ misc_fields['complete'] = workflow.complete
+ misc_fields['scriptfile'] = workflow.scriptFile
+ misc_fields['scriptid'] = workflow.scriptId
+ if (workflow.repository) misc_fields['repository'] = workflow.repository
+ if (workflow.commitId) misc_fields['commitid'] = workflow.commitId
+ if (workflow.revision) misc_fields['revision'] = workflow.revision
+ misc_fields['nxf_version'] = workflow.nextflow.version
+ misc_fields['nxf_build'] = workflow.nextflow.build
+ misc_fields['nxf_timestamp'] = workflow.nextflow.timestamp
+
+ def msg_fields = [:]
+ msg_fields['version'] = workflow.manifest.version
+ msg_fields['runName'] = workflow.runName
+ msg_fields['success'] = workflow.success
+ msg_fields['dateComplete'] = workflow.complete
+ msg_fields['duration'] = workflow.duration
+ msg_fields['exitStatus'] = workflow.exitStatus
+ msg_fields['errorMessage'] = (workflow.errorMessage ?: 'None')
+ msg_fields['errorReport'] = (workflow.errorReport ?: 'None')
+ msg_fields['commandLine'] = workflow.commandLine
+ msg_fields['projectDir'] = workflow.projectDir
+ msg_fields['summary'] = summary << misc_fields
+
+ // Render the JSON template
+ def engine = new groovy.text.GStringTemplateEngine()
+ def hf = new File("$projectDir/assets/adaptivecard.json")
+ def json_template = engine.createTemplate(hf).make(msg_fields)
+ def json_message = json_template.toString()
+
+ // POST
+ def post = new URL(hook_url).openConnection();
+ post.setRequestMethod("POST")
+ post.setDoOutput(true)
+ post.setRequestProperty("Content-Type", "application/json")
+ post.getOutputStream().write(json_message.getBytes("UTF-8"));
+ def postRC = post.getResponseCode();
+ if (! postRC.equals(200)) {
+ log.warn(post.getErrorStream().getText());
+ }
+ }
+
//
// Print pipeline summary on completion
//
diff --git a/lib/Utils.groovy b/lib/Utils.groovy
old mode 100755
new mode 100644
index 28567bd..8d030f4
--- a/lib/Utils.groovy
+++ b/lib/Utils.groovy
@@ -21,19 +21,26 @@ class Utils {
}
// Check that all channels are present
- def required_channels = ['conda-forge', 'bioconda', 'defaults']
- def conda_check_failed = !required_channels.every { ch -> ch in channels }
+ // This channel list is ordered by required channel priority.
+ def required_channels_in_order = ['conda-forge', 'bioconda', 'defaults']
+ def channels_missing = ((required_channels_in_order as Set) - (channels as Set)) as Boolean
// Check that they are in the right order
- conda_check_failed |= !(channels.indexOf('conda-forge') < channels.indexOf('bioconda'))
- conda_check_failed |= !(channels.indexOf('bioconda') < channels.indexOf('defaults'))
+ def channel_priority_violation = false
+ def n = required_channels_in_order.size()
+ for (int i = 0; i < n - 1; i++) {
+ channel_priority_violation |= !(channels.indexOf(required_channels_in_order[i]) < channels.indexOf(required_channels_in_order[i+1]))
+ }
- if (conda_check_failed) {
+ if (channels_missing | channel_priority_violation) {
log.warn "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" +
" There is a problem with your Conda configuration!\n\n" +
" You will need to set-up the conda-forge and bioconda channels correctly.\n" +
- " Please refer to https://bioconda.github.io/user/install.html#set-up-channels\n" +
- " NB: The order of the channels matters!\n" +
+ " Please refer to https://bioconda.github.io/\n" +
+ " The observed channel order is \n" +
+ " ${channels}\n" +
+ " but the following channel order is required:\n" +
+ " ${required_channels_in_order}\n" +
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
}
}
diff --git a/lib/WorkflowTaxprofiler.groovy b/lib/WorkflowTaxprofiler.groovy
index 48fab72..7bf44c9 100755
--- a/lib/WorkflowTaxprofiler.groovy
+++ b/lib/WorkflowTaxprofiler.groovy
@@ -2,6 +2,8 @@
// This file holds several functions specific to the workflow/taxprofiler.nf in the nf-core/taxprofiler pipeline
//
+import groovy.text.SimpleTemplateEngine
+
class WorkflowTaxprofiler {
//
@@ -42,6 +44,23 @@ class WorkflowTaxprofiler {
yaml_file_text += "data: |\n"
yaml_file_text += "${summary_section}"
return yaml_file_text
+ }
+
+ public static String methodsDescriptionText(run_workflow, mqc_methods_yaml) {
+ // Convert to a named map so can be used as with familar NXF ${workflow} variable syntax in the MultiQC YML file
+ def meta = [:]
+ meta.workflow = run_workflow.toMap()
+ meta["manifest_map"] = run_workflow.manifest.toMap()
+
+ meta["doi_text"] = meta.manifest_map.doi ? "(doi: ${meta.manifest_map.doi})" : ""
+ meta["nodoi_text"] = meta.manifest_map.doi ? "": "If available, make sure to update the text to include the Zenodo DOI of version of the pipeline used. "
+
+ def methods_text = mqc_methods_yaml.text
+
+ def engine = new SimpleTemplateEngine()
+ def description_html = engine.createTemplate(methods_text).make(meta)
+
+ return description_html
}//
// Exit pipeline if incorrect --genome key provided
//
diff --git a/main.nf b/main.nf
index 0e8e9b8..ff1c4ec 100644
--- a/main.nf
+++ b/main.nf
@@ -4,7 +4,8 @@
nf-core/taxprofiler
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Github : https://github.com/nf-core/taxprofiler
-Website: https://nf-co.re/taxprofiler
+
+ Website: https://nf-co.re/taxprofiler
Slack : https://nfcore.slack.com/channels/taxprofiler
----------------------------------------------------------------------------------------
*/
diff --git a/modules.json b/modules.json
index ee96e49..e9af665 100644
--- a/modules.json
+++ b/modules.json
@@ -2,156 +2,158 @@
"name": "nf-core/taxprofiler",
"homePage": "https://github.com/nf-core/taxprofiler",
"repos": {
- "nf-core/modules": {
- "git_url": "https://github.com/nf-core/modules.git",
+ "https://github.com/nf-core/modules.git": {
"modules": {
- "adapterremoval": {
- "branch": "master",
- "git_sha": "879d42c5e28661fe0a5e744c9e2c515868f9e08a"
- },
- "bbmap/bbduk": {
- "branch": "master",
- "git_sha": "848ee9a215d02d80be033bfa60881700f2bd914c"
- },
- "bowtie2/align": {
- "branch": "master",
- "git_sha": "848ee9a215d02d80be033bfa60881700f2bd914c"
- },
- "bowtie2/build": {
- "branch": "master",
- "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d"
- },
- "cat/fastq": {
- "branch": "master",
- "git_sha": "b034029b59b1198075da8019074bc02051a6100e"
- },
- "centrifuge/centrifuge": {
- "branch": "master",
- "git_sha": "d2726fcf75063960f06b36d2229a4c0966614108"
- },
- "centrifuge/kreport": {
- "branch": "master",
- "git_sha": "734d0db6079a4aa43b6509b207e5d6feb35d4838"
- },
- "custom/dumpsoftwareversions": {
- "branch": "master",
- "git_sha": "5e7b1ef9a5a2d9258635bcbf70fcf37dacd1b247"
- },
- "diamond/blastx": {
- "branch": "master",
- "git_sha": "3531824af826c16cd252bc5aa82ae169b244ebaa"
- },
- "eido/convert": {
- "branch": "master",
- "git_sha": "9764eef361ded86e9242075bda64c2662421386a"
- },
- "eido/validate": {
- "branch": "master",
- "git_sha": "38383cfaefc06cd35e25de99989a3e6ab9ed2980"
- },
- "fastp": {
- "branch": "master",
- "git_sha": "2c70c1c1951aaf884d2e8d8d9c871db79f7b35aa"
- },
- "fastqc": {
- "branch": "master",
- "git_sha": "49b18b1639f4f7104187058866a8fab33332bdfe"
- },
- "filtlong": {
- "branch": "master",
- "git_sha": "957cb9b83668075f4af101fc99502908cca487e3"
- },
- "gunzip": {
- "branch": "master",
- "git_sha": "fa37e0662690c4ec4260dae282fbce08777503e6"
- },
- "kaiju/kaiju": {
- "branch": "master",
- "git_sha": "8856f127c58f6af479128be8b8df4d42e442ddbe"
- },
- "kaiju/kaiju2krona": {
- "branch": "master",
- "git_sha": "2f0b19240430de6807b1232e6d9d0e8084e8a28f"
- },
- "kaiju/kaiju2table": {
- "branch": "master",
- "git_sha": "538dbac98ba9c8f799536cd5a617195501439457"
- },
- "kraken2/kraken2": {
- "branch": "master",
- "git_sha": "409a308ba46284d8ebb48c2c1befd6f6433db3f7"
- },
- "krakentools/combinekreports": {
- "branch": "master",
- "git_sha": "ee0346b4d14ffdc15ce7e093ca1363cd07c9bd78"
- },
- "krakentools/kreport2krona": {
- "branch": "master",
- "git_sha": "233fa70811a03a4cecb2ece483b5c8396e2cee1d"
- },
- "krona/ktimporttaxonomy": {
- "branch": "master",
- "git_sha": "0e9fd9370ad1845870b8a9c63fcc47d999a1739e"
- },
- "krona/ktimporttext": {
- "branch": "master",
- "git_sha": "cdefbec66999c0b49d8bfeea9d6f9d19056635a2"
- },
- "malt/run": {
- "branch": "master",
- "git_sha": "be8d7b3293cac26cc63e4dbfb364deb8ed6ec7e5"
- },
- "megan/rma2info": {
- "branch": "master",
- "git_sha": "2d38566eca4cc15142b2ffa7c11837569b39aece"
- },
- "metaphlan3/mergemetaphlantables": {
- "branch": "master",
- "git_sha": "36bcd675ae76a379a38165898a203f4915823f4f"
- },
- "metaphlan3/metaphlan3": {
- "branch": "master",
- "git_sha": "978087354eb72ac1f6e18a3f790fad9bc4d05840"
- },
- "minimap2/align": {
- "branch": "master",
- "git_sha": "1a5a9e7b4009dcf34e6867dd1a5a1d9a718b027b"
- },
- "minimap2/index": {
- "branch": "master",
- "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d"
- },
- "motus/merge": {
- "branch": "master",
- "git_sha": "54ff289487244bf15543ecfa62bd4df49be72b73"
- },
- "motus/profile": {
- "branch": "master",
- "git_sha": "b6ed584443ad68ac41e6975994139454a4f23c18"
- },
- "multiqc": {
- "branch": "master",
- "git_sha": "16eee433b87b303bda650131ac5a0b1ad725e166"
- },
- "porechop": {
- "branch": "master",
- "git_sha": "b78e19b9dae3671db2c7d4346fe04452c1debfab"
- },
- "prinseqplusplus": {
- "branch": "master",
- "git_sha": "f1c5384c31e985591716afdd732cf8c2ae29d05b"
- },
- "samtools/bam2fq": {
- "branch": "master",
- "git_sha": "5510ea39fe638594bc26ac34cadf4a84bf27d159"
- },
- "samtools/view": {
- "branch": "master",
- "git_sha": "5e7b1ef9a5a2d9258635bcbf70fcf37dacd1b247"
- },
- "untar": {
- "branch": "master",
- "git_sha": "393dbd6ddafe3f18eac02893dd4a21e4d45de679"
+ "nf-core": {
+ "adapterremoval": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "bbmap/bbduk": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "bowtie2/align": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "bowtie2/build": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "cat/fastq": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "centrifuge/centrifuge": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "centrifuge/kreport": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "custom/dumpsoftwareversions": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "diamond/blastx": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "eido/convert": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "eido/validate": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "fastp": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "fastqc": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "filtlong": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "gunzip": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "kaiju/kaiju": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "kaiju/kaiju2krona": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "kaiju/kaiju2table": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "kraken2/kraken2": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "krakentools/combinekreports": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "krakentools/kreport2krona": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "krona/ktimporttaxonomy": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "krona/ktimporttext": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "malt/run": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "megan/rma2info": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "metaphlan3/mergemetaphlantables": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "metaphlan3/metaphlan3": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "minimap2/align": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "minimap2/index": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905",
+ "patch": "modules/nf-core/minimap2/index/minimap2-index.diff"
+ },
+ "motus/merge": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "motus/profile": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "multiqc": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "porechop": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "prinseqplusplus": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "samtools/bam2fq": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "samtools/view": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ },
+ "untar": {
+ "branch": "master",
+ "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905"
+ }
}
}
}
diff --git a/modules/nf-core/modules/adapterremoval/main.nf b/modules/nf-core/adapterremoval/main.nf
similarity index 100%
rename from modules/nf-core/modules/adapterremoval/main.nf
rename to modules/nf-core/adapterremoval/main.nf
diff --git a/modules/nf-core/modules/adapterremoval/meta.yml b/modules/nf-core/adapterremoval/meta.yml
similarity index 100%
rename from modules/nf-core/modules/adapterremoval/meta.yml
rename to modules/nf-core/adapterremoval/meta.yml
diff --git a/modules/nf-core/modules/bbmap/bbduk/main.nf b/modules/nf-core/bbmap/bbduk/main.nf
similarity index 100%
rename from modules/nf-core/modules/bbmap/bbduk/main.nf
rename to modules/nf-core/bbmap/bbduk/main.nf
diff --git a/modules/nf-core/modules/bbmap/bbduk/meta.yml b/modules/nf-core/bbmap/bbduk/meta.yml
similarity index 100%
rename from modules/nf-core/modules/bbmap/bbduk/meta.yml
rename to modules/nf-core/bbmap/bbduk/meta.yml
diff --git a/modules/nf-core/modules/bowtie2/align/main.nf b/modules/nf-core/bowtie2/align/main.nf
similarity index 100%
rename from modules/nf-core/modules/bowtie2/align/main.nf
rename to modules/nf-core/bowtie2/align/main.nf
diff --git a/modules/nf-core/modules/bowtie2/align/meta.yml b/modules/nf-core/bowtie2/align/meta.yml
similarity index 100%
rename from modules/nf-core/modules/bowtie2/align/meta.yml
rename to modules/nf-core/bowtie2/align/meta.yml
diff --git a/modules/nf-core/modules/bowtie2/build/main.nf b/modules/nf-core/bowtie2/build/main.nf
similarity index 100%
rename from modules/nf-core/modules/bowtie2/build/main.nf
rename to modules/nf-core/bowtie2/build/main.nf
diff --git a/modules/nf-core/modules/bowtie2/build/meta.yml b/modules/nf-core/bowtie2/build/meta.yml
similarity index 100%
rename from modules/nf-core/modules/bowtie2/build/meta.yml
rename to modules/nf-core/bowtie2/build/meta.yml
diff --git a/modules/nf-core/modules/cat/fastq/main.nf b/modules/nf-core/cat/fastq/main.nf
similarity index 88%
rename from modules/nf-core/modules/cat/fastq/main.nf
rename to modules/nf-core/cat/fastq/main.nf
index d275f19..4fa365d 100644
--- a/modules/nf-core/modules/cat/fastq/main.nf
+++ b/modules/nf-core/cat/fastq/main.nf
@@ -1,6 +1,6 @@
process CAT_FASTQ {
tag "$meta.id"
- label 'process_low'
+ label 'process_single'
conda (params.enable_conda ? "conda-forge::sed=4.7" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
@@ -20,9 +20,9 @@ process CAT_FASTQ {
script:
def args = task.ext.args ?: ''
def prefix = task.ext.prefix ?: "${meta.id}"
- def readList = reads.collect{ it.toString() }
+ def readList = reads instanceof List ? reads.collect{ it.toString() } : [reads.toString()]
if (meta.single_end) {
- if (readList.size > 1) {
+ if (readList.size >= 1) {
"""
cat ${readList.join(' ')} > ${prefix}.merged.fastq.gz
@@ -33,7 +33,7 @@ process CAT_FASTQ {
"""
}
} else {
- if (readList.size > 2) {
+ if (readList.size >= 2) {
def read1 = []
def read2 = []
readList.eachWithIndex{ v, ix -> ( ix & 1 ? read2 : read1 ) << v }
@@ -51,7 +51,7 @@ process CAT_FASTQ {
stub:
def prefix = task.ext.prefix ?: "${meta.id}"
- def readList = reads.collect{ it.toString() }
+ def readList = reads instanceof List ? reads.collect{ it.toString() } : [reads.toString()]
if (meta.single_end) {
if (readList.size > 1) {
"""
diff --git a/modules/nf-core/modules/cat/fastq/meta.yml b/modules/nf-core/cat/fastq/meta.yml
similarity index 100%
rename from modules/nf-core/modules/cat/fastq/meta.yml
rename to modules/nf-core/cat/fastq/meta.yml
diff --git a/modules/nf-core/modules/centrifuge/centrifuge/main.nf b/modules/nf-core/centrifuge/centrifuge/main.nf
similarity index 100%
rename from modules/nf-core/modules/centrifuge/centrifuge/main.nf
rename to modules/nf-core/centrifuge/centrifuge/main.nf
diff --git a/modules/nf-core/modules/centrifuge/centrifuge/meta.yml b/modules/nf-core/centrifuge/centrifuge/meta.yml
similarity index 100%
rename from modules/nf-core/modules/centrifuge/centrifuge/meta.yml
rename to modules/nf-core/centrifuge/centrifuge/meta.yml
diff --git a/modules/nf-core/modules/centrifuge/kreport/main.nf b/modules/nf-core/centrifuge/kreport/main.nf
similarity index 97%
rename from modules/nf-core/modules/centrifuge/kreport/main.nf
rename to modules/nf-core/centrifuge/kreport/main.nf
index 381ddd6..8e5b741 100644
--- a/modules/nf-core/modules/centrifuge/kreport/main.nf
+++ b/modules/nf-core/centrifuge/kreport/main.nf
@@ -1,6 +1,6 @@
process CENTRIFUGE_KREPORT {
tag "$meta.id"
- label 'process_low'
+ label 'process_single'
conda (params.enable_conda ? "bioconda::centrifuge=1.0.4_beta" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
diff --git a/modules/nf-core/modules/centrifuge/kreport/meta.yml b/modules/nf-core/centrifuge/kreport/meta.yml
similarity index 100%
rename from modules/nf-core/modules/centrifuge/kreport/meta.yml
rename to modules/nf-core/centrifuge/kreport/meta.yml
diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/main.nf b/modules/nf-core/custom/dumpsoftwareversions/main.nf
similarity index 81%
rename from modules/nf-core/modules/custom/dumpsoftwareversions/main.nf
rename to modules/nf-core/custom/dumpsoftwareversions/main.nf
index 34b50b9..cebb6e0 100644
--- a/modules/nf-core/modules/custom/dumpsoftwareversions/main.nf
+++ b/modules/nf-core/custom/dumpsoftwareversions/main.nf
@@ -2,10 +2,10 @@ process CUSTOM_DUMPSOFTWAREVERSIONS {
label 'process_single'
// Requires `pyyaml` which does not have a dedicated container but is in the MultiQC container
- conda (params.enable_conda ? 'bioconda::multiqc=1.13a' : null)
+ conda (params.enable_conda ? 'bioconda::multiqc=1.13' : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/multiqc:1.13a--pyhdfd78af_1' :
- 'quay.io/biocontainers/multiqc:1.13a--pyhdfd78af_1' }"
+ 'https://depot.galaxyproject.org/singularity/multiqc:1.13--pyhdfd78af_0' :
+ 'quay.io/biocontainers/multiqc:1.13--pyhdfd78af_0' }"
input:
path versions
diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml b/modules/nf-core/custom/dumpsoftwareversions/meta.yml
similarity index 100%
rename from modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml
rename to modules/nf-core/custom/dumpsoftwareversions/meta.yml
diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py b/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py
similarity index 88%
rename from modules/nf-core/modules/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py
rename to modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py
index d139039..7c2abfa 100644
--- a/modules/nf-core/modules/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py
+++ b/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py
@@ -58,11 +58,12 @@ versions_by_module = {}
for process, process_versions in versions_by_process.items():
module = process.split(":")[-1]
try:
- assert versions_by_module[module] == process_versions, (
- "We assume that software versions are the same between all modules. "
- "If you see this error-message it means you discovered an edge-case "
- "and should open an issue in nf-core/tools. "
- )
+ if versions_by_module[module] != process_versions:
+ raise AssertionError(
+ "We assume that software versions are the same between all modules. "
+ "If you see this error-message it means you discovered an edge-case "
+ "and should open an issue in nf-core/tools. "
+ )
except KeyError:
versions_by_module[module] = process_versions
diff --git a/modules/nf-core/modules/diamond/blastx/main.nf b/modules/nf-core/diamond/blastx/main.nf
similarity index 100%
rename from modules/nf-core/modules/diamond/blastx/main.nf
rename to modules/nf-core/diamond/blastx/main.nf
diff --git a/modules/nf-core/modules/diamond/blastx/meta.yml b/modules/nf-core/diamond/blastx/meta.yml
similarity index 100%
rename from modules/nf-core/modules/diamond/blastx/meta.yml
rename to modules/nf-core/diamond/blastx/meta.yml
diff --git a/modules/nf-core/modules/eido/convert/main.nf b/modules/nf-core/eido/convert/main.nf
similarity index 97%
rename from modules/nf-core/modules/eido/convert/main.nf
rename to modules/nf-core/eido/convert/main.nf
index be4c02f..7ec4b8c 100644
--- a/modules/nf-core/modules/eido/convert/main.nf
+++ b/modules/nf-core/eido/convert/main.nf
@@ -1,5 +1,5 @@
process EIDO_CONVERT {
- tag '$samplesheet'
+ tag "$samplesheet"
label 'process_single'
conda (params.enable_conda ? "conda-forge::eido=0.1.9" : null)
diff --git a/modules/nf-core/modules/eido/convert/meta.yml b/modules/nf-core/eido/convert/meta.yml
similarity index 100%
rename from modules/nf-core/modules/eido/convert/meta.yml
rename to modules/nf-core/eido/convert/meta.yml
diff --git a/modules/nf-core/modules/eido/validate/main.nf b/modules/nf-core/eido/validate/main.nf
similarity index 97%
rename from modules/nf-core/modules/eido/validate/main.nf
rename to modules/nf-core/eido/validate/main.nf
index e564e83..798d3a0 100644
--- a/modules/nf-core/modules/eido/validate/main.nf
+++ b/modules/nf-core/eido/validate/main.nf
@@ -1,5 +1,5 @@
process EIDO_VALIDATE {
- tag '$samplesheet'
+ tag "$samplesheet"
label 'process_single'
conda (params.enable_conda ? "conda-forge::eido=0.1.9" : null)
diff --git a/modules/nf-core/modules/eido/validate/meta.yml b/modules/nf-core/eido/validate/meta.yml
similarity index 100%
rename from modules/nf-core/modules/eido/validate/meta.yml
rename to modules/nf-core/eido/validate/meta.yml
diff --git a/modules/nf-core/modules/fastp/main.nf b/modules/nf-core/fastp/main.nf
similarity index 100%
rename from modules/nf-core/modules/fastp/main.nf
rename to modules/nf-core/fastp/main.nf
diff --git a/modules/nf-core/modules/fastp/meta.yml b/modules/nf-core/fastp/meta.yml
similarity index 100%
rename from modules/nf-core/modules/fastp/meta.yml
rename to modules/nf-core/fastp/meta.yml
diff --git a/modules/nf-core/modules/fastqc/main.nf b/modules/nf-core/fastqc/main.nf
similarity index 100%
rename from modules/nf-core/modules/fastqc/main.nf
rename to modules/nf-core/fastqc/main.nf
diff --git a/modules/nf-core/modules/fastqc/meta.yml b/modules/nf-core/fastqc/meta.yml
similarity index 100%
rename from modules/nf-core/modules/fastqc/meta.yml
rename to modules/nf-core/fastqc/meta.yml
diff --git a/modules/nf-core/modules/filtlong/main.nf b/modules/nf-core/filtlong/main.nf
similarity index 100%
rename from modules/nf-core/modules/filtlong/main.nf
rename to modules/nf-core/filtlong/main.nf
diff --git a/modules/nf-core/modules/filtlong/meta.yml b/modules/nf-core/filtlong/meta.yml
similarity index 100%
rename from modules/nf-core/modules/filtlong/meta.yml
rename to modules/nf-core/filtlong/meta.yml
diff --git a/modules/nf-core/modules/gunzip/main.nf b/modules/nf-core/gunzip/main.nf
similarity index 97%
rename from modules/nf-core/modules/gunzip/main.nf
rename to modules/nf-core/gunzip/main.nf
index 7036704..fa6ba26 100644
--- a/modules/nf-core/modules/gunzip/main.nf
+++ b/modules/nf-core/gunzip/main.nf
@@ -1,6 +1,6 @@
process GUNZIP {
tag "$archive"
- label 'process_low'
+ label 'process_single'
conda (params.enable_conda ? "conda-forge::sed=4.7" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
diff --git a/modules/nf-core/modules/gunzip/meta.yml b/modules/nf-core/gunzip/meta.yml
similarity index 100%
rename from modules/nf-core/modules/gunzip/meta.yml
rename to modules/nf-core/gunzip/meta.yml
diff --git a/modules/nf-core/modules/kaiju/kaiju/main.nf b/modules/nf-core/kaiju/kaiju/main.nf
similarity index 100%
rename from modules/nf-core/modules/kaiju/kaiju/main.nf
rename to modules/nf-core/kaiju/kaiju/main.nf
diff --git a/modules/nf-core/modules/kaiju/kaiju/meta.yml b/modules/nf-core/kaiju/kaiju/meta.yml
similarity index 100%
rename from modules/nf-core/modules/kaiju/kaiju/meta.yml
rename to modules/nf-core/kaiju/kaiju/meta.yml
diff --git a/modules/nf-core/modules/kaiju/kaiju2krona/main.nf b/modules/nf-core/kaiju/kaiju2krona/main.nf
similarity index 97%
rename from modules/nf-core/modules/kaiju/kaiju2krona/main.nf
rename to modules/nf-core/kaiju/kaiju2krona/main.nf
index c95d5a7..3f35ce7 100644
--- a/modules/nf-core/modules/kaiju/kaiju2krona/main.nf
+++ b/modules/nf-core/kaiju/kaiju2krona/main.nf
@@ -1,6 +1,6 @@
process KAIJU_KAIJU2KRONA {
tag "$meta.id"
- label 'process_low'
+ label 'process_single'
conda (params.enable_conda ? "bioconda::kaiju=1.8.2" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
diff --git a/modules/nf-core/modules/kaiju/kaiju2krona/meta.yml b/modules/nf-core/kaiju/kaiju2krona/meta.yml
similarity index 100%
rename from modules/nf-core/modules/kaiju/kaiju2krona/meta.yml
rename to modules/nf-core/kaiju/kaiju2krona/meta.yml
diff --git a/modules/nf-core/modules/kaiju/kaiju2table/main.nf b/modules/nf-core/kaiju/kaiju2table/main.nf
similarity index 97%
rename from modules/nf-core/modules/kaiju/kaiju2table/main.nf
rename to modules/nf-core/kaiju/kaiju2table/main.nf
index 00739d1..8648d56 100644
--- a/modules/nf-core/modules/kaiju/kaiju2table/main.nf
+++ b/modules/nf-core/kaiju/kaiju2table/main.nf
@@ -1,6 +1,6 @@
process KAIJU_KAIJU2TABLE {
tag "$meta.id"
- label 'process_low'
+ label 'process_single'
conda (params.enable_conda ? "bioconda::kaiju=1.8.2" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
diff --git a/modules/nf-core/modules/kaiju/kaiju2table/meta.yml b/modules/nf-core/kaiju/kaiju2table/meta.yml
similarity index 100%
rename from modules/nf-core/modules/kaiju/kaiju2table/meta.yml
rename to modules/nf-core/kaiju/kaiju2table/meta.yml
diff --git a/modules/nf-core/modules/kraken2/kraken2/main.nf b/modules/nf-core/kraken2/kraken2/main.nf
similarity index 100%
rename from modules/nf-core/modules/kraken2/kraken2/main.nf
rename to modules/nf-core/kraken2/kraken2/main.nf
diff --git a/modules/nf-core/modules/kraken2/kraken2/meta.yml b/modules/nf-core/kraken2/kraken2/meta.yml
similarity index 100%
rename from modules/nf-core/modules/kraken2/kraken2/meta.yml
rename to modules/nf-core/kraken2/kraken2/meta.yml
diff --git a/modules/nf-core/modules/krakentools/combinekreports/main.nf b/modules/nf-core/krakentools/combinekreports/main.nf
similarity index 97%
rename from modules/nf-core/modules/krakentools/combinekreports/main.nf
rename to modules/nf-core/krakentools/combinekreports/main.nf
index 849f39c..fdcc245 100644
--- a/modules/nf-core/modules/krakentools/combinekreports/main.nf
+++ b/modules/nf-core/krakentools/combinekreports/main.nf
@@ -1,5 +1,5 @@
process KRAKENTOOLS_COMBINEKREPORTS {
- label 'process_low'
+ label 'process_single'
conda (params.enable_conda ? "bioconda::krakentools=1.2" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
diff --git a/modules/nf-core/modules/krakentools/combinekreports/meta.yml b/modules/nf-core/krakentools/combinekreports/meta.yml
similarity index 100%
rename from modules/nf-core/modules/krakentools/combinekreports/meta.yml
rename to modules/nf-core/krakentools/combinekreports/meta.yml
diff --git a/modules/nf-core/modules/krakentools/kreport2krona/main.nf b/modules/nf-core/krakentools/kreport2krona/main.nf
similarity index 97%
rename from modules/nf-core/modules/krakentools/kreport2krona/main.nf
rename to modules/nf-core/krakentools/kreport2krona/main.nf
index 1fcb1e4..8ed46f1 100644
--- a/modules/nf-core/modules/krakentools/kreport2krona/main.nf
+++ b/modules/nf-core/krakentools/kreport2krona/main.nf
@@ -1,6 +1,6 @@
process KRAKENTOOLS_KREPORT2KRONA {
tag "$meta.id"
- label 'process_low'
+ label 'process_single'
// WARN: Version information not provided by tool on CLI. Please update version string below when bumping container versions.
conda (params.enable_conda ? "bioconda::krakentools=1.2" : null)
diff --git a/modules/nf-core/modules/krakentools/kreport2krona/meta.yml b/modules/nf-core/krakentools/kreport2krona/meta.yml
similarity index 100%
rename from modules/nf-core/modules/krakentools/kreport2krona/meta.yml
rename to modules/nf-core/krakentools/kreport2krona/meta.yml
diff --git a/modules/nf-core/modules/krona/ktimporttaxonomy/main.nf b/modules/nf-core/krona/ktimporttaxonomy/main.nf
similarity index 97%
rename from modules/nf-core/modules/krona/ktimporttaxonomy/main.nf
rename to modules/nf-core/krona/ktimporttaxonomy/main.nf
index 9b03462..79c01d7 100644
--- a/modules/nf-core/modules/krona/ktimporttaxonomy/main.nf
+++ b/modules/nf-core/krona/ktimporttaxonomy/main.nf
@@ -1,6 +1,6 @@
process KRONA_KTIMPORTTAXONOMY {
tag "${meta.id}"
- label 'process_high'
+ label 'process_single'
// WARN: Version information not provided by tool on CLI. Please update version string below when bumping container versions.
conda (params.enable_conda ? "bioconda::krona=2.8" : null)
diff --git a/modules/nf-core/modules/krona/ktimporttaxonomy/meta.yml b/modules/nf-core/krona/ktimporttaxonomy/meta.yml
similarity index 100%
rename from modules/nf-core/modules/krona/ktimporttaxonomy/meta.yml
rename to modules/nf-core/krona/ktimporttaxonomy/meta.yml
diff --git a/modules/nf-core/modules/krona/ktimporttext/main.nf b/modules/nf-core/krona/ktimporttext/main.nf
similarity index 97%
rename from modules/nf-core/modules/krona/ktimporttext/main.nf
rename to modules/nf-core/krona/ktimporttext/main.nf
index de0cfc2..edf7aab 100644
--- a/modules/nf-core/modules/krona/ktimporttext/main.nf
+++ b/modules/nf-core/krona/ktimporttext/main.nf
@@ -1,6 +1,6 @@
process KRONA_KTIMPORTTEXT {
tag "$meta.id"
- label 'process_low'
+ label 'process_single'
conda (params.enable_conda ? "bioconda::krona=2.8.1" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
diff --git a/modules/nf-core/modules/krona/ktimporttext/meta.yml b/modules/nf-core/krona/ktimporttext/meta.yml
similarity index 100%
rename from modules/nf-core/modules/krona/ktimporttext/meta.yml
rename to modules/nf-core/krona/ktimporttext/meta.yml
diff --git a/modules/nf-core/modules/malt/run/main.nf b/modules/nf-core/malt/run/main.nf
similarity index 100%
rename from modules/nf-core/modules/malt/run/main.nf
rename to modules/nf-core/malt/run/main.nf
diff --git a/modules/nf-core/modules/malt/run/meta.yml b/modules/nf-core/malt/run/meta.yml
similarity index 100%
rename from modules/nf-core/modules/malt/run/meta.yml
rename to modules/nf-core/malt/run/meta.yml
diff --git a/modules/nf-core/modules/megan/rma2info/main.nf b/modules/nf-core/megan/rma2info/main.nf
similarity index 97%
rename from modules/nf-core/modules/megan/rma2info/main.nf
rename to modules/nf-core/megan/rma2info/main.nf
index 80d1975..9c6a094 100644
--- a/modules/nf-core/modules/megan/rma2info/main.nf
+++ b/modules/nf-core/megan/rma2info/main.nf
@@ -1,6 +1,6 @@
process MEGAN_RMA2INFO {
tag "$meta.id"
- label 'process_low'
+ label 'process_single'
conda (params.enable_conda ? "bioconda::megan=6.21.7" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
diff --git a/modules/nf-core/modules/megan/rma2info/meta.yml b/modules/nf-core/megan/rma2info/meta.yml
similarity index 100%
rename from modules/nf-core/modules/megan/rma2info/meta.yml
rename to modules/nf-core/megan/rma2info/meta.yml
diff --git a/modules/nf-core/modules/metaphlan3/mergemetaphlantables/main.nf b/modules/nf-core/metaphlan3/mergemetaphlantables/main.nf
similarity index 100%
rename from modules/nf-core/modules/metaphlan3/mergemetaphlantables/main.nf
rename to modules/nf-core/metaphlan3/mergemetaphlantables/main.nf
diff --git a/modules/nf-core/modules/metaphlan3/mergemetaphlantables/meta.yml b/modules/nf-core/metaphlan3/mergemetaphlantables/meta.yml
similarity index 100%
rename from modules/nf-core/modules/metaphlan3/mergemetaphlantables/meta.yml
rename to modules/nf-core/metaphlan3/mergemetaphlantables/meta.yml
diff --git a/modules/nf-core/modules/metaphlan3/metaphlan3/main.nf b/modules/nf-core/metaphlan3/metaphlan3/main.nf
similarity index 100%
rename from modules/nf-core/modules/metaphlan3/metaphlan3/main.nf
rename to modules/nf-core/metaphlan3/metaphlan3/main.nf
diff --git a/modules/nf-core/modules/metaphlan3/metaphlan3/meta.yml b/modules/nf-core/metaphlan3/metaphlan3/meta.yml
similarity index 100%
rename from modules/nf-core/modules/metaphlan3/metaphlan3/meta.yml
rename to modules/nf-core/metaphlan3/metaphlan3/meta.yml
diff --git a/modules/nf-core/modules/minimap2/align/main.nf b/modules/nf-core/minimap2/align/main.nf
similarity index 100%
rename from modules/nf-core/modules/minimap2/align/main.nf
rename to modules/nf-core/minimap2/align/main.nf
diff --git a/modules/nf-core/modules/minimap2/align/meta.yml b/modules/nf-core/minimap2/align/meta.yml
similarity index 100%
rename from modules/nf-core/modules/minimap2/align/meta.yml
rename to modules/nf-core/minimap2/align/meta.yml
diff --git a/modules/nf-core/modules/minimap2/index/main.nf b/modules/nf-core/minimap2/index/main.nf
similarity index 100%
rename from modules/nf-core/modules/minimap2/index/main.nf
rename to modules/nf-core/minimap2/index/main.nf
diff --git a/modules/nf-core/modules/minimap2/index/meta.yml b/modules/nf-core/minimap2/index/meta.yml
similarity index 72%
rename from modules/nf-core/modules/minimap2/index/meta.yml
rename to modules/nf-core/minimap2/index/meta.yml
index 3bf9f04..603c651 100644
--- a/modules/nf-core/modules/minimap2/index/meta.yml
+++ b/modules/nf-core/minimap2/index/meta.yml
@@ -12,11 +12,21 @@ tools:
documentation: https://github.com/lh3/minimap2#uguide
licence: ["MIT"]
input:
+ - meta:
+ type: map
+ description: |
+ Groovy Map containing sample information
+ e.g. [ id:'test', single_end:false ]
- fasta:
type: file
description: |
Reference database in FASTA format.
output:
+ - meta:
+ type: map
+ description: |
+ Groovy Map containing sample information
+ e.g. [ id:'test', single_end:false ]
- mmi:
type: file
description: Minimap2 fasta index.
diff --git a/modules/nf-core/minimap2/index/minimap2-index.diff b/modules/nf-core/minimap2/index/minimap2-index.diff
new file mode 100644
index 0000000..de306d5
--- /dev/null
+++ b/modules/nf-core/minimap2/index/minimap2-index.diff
@@ -0,0 +1,20 @@
+Changes in module 'nf-core/minimap2/index'
+--- modules/nf-core/minimap2/index/main.nf
++++ modules/nf-core/minimap2/index/main.nf
+@@ -7,11 +7,11 @@
+ 'quay.io/biocontainers/minimap2:2.21--h5bf99c6_0' }"
+
+ input:
+- tuple val(meta), path(fasta)
++ path fasta
+
+ output:
+- tuple val(meta), path("*.mmi"), emit: index
+- path "versions.yml" , emit: versions
++ path "*.mmi" , emit: index
++ path "versions.yml" , emit: versions
+
+ when:
+ task.ext.when == null || task.ext.when
+
+************************************************************
diff --git a/modules/nf-core/modules/motus/merge/main.nf b/modules/nf-core/motus/merge/main.nf
similarity index 98%
rename from modules/nf-core/modules/motus/merge/main.nf
rename to modules/nf-core/motus/merge/main.nf
index a050c7a..d9f091e 100644
--- a/modules/nf-core/modules/motus/merge/main.nf
+++ b/modules/nf-core/motus/merge/main.nf
@@ -2,7 +2,7 @@ VERSION = '3.0.1'
process MOTUS_MERGE {
tag "$meta.id"
- label 'process_low'
+ label 'process_single'
conda (params.enable_conda ? "bioconda::motus=3.0.1" : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
diff --git a/modules/nf-core/modules/motus/merge/meta.yml b/modules/nf-core/motus/merge/meta.yml
similarity index 100%
rename from modules/nf-core/modules/motus/merge/meta.yml
rename to modules/nf-core/motus/merge/meta.yml
diff --git a/modules/nf-core/modules/motus/profile/main.nf b/modules/nf-core/motus/profile/main.nf
similarity index 100%
rename from modules/nf-core/modules/motus/profile/main.nf
rename to modules/nf-core/motus/profile/main.nf
diff --git a/modules/nf-core/modules/motus/profile/meta.yml b/modules/nf-core/motus/profile/meta.yml
similarity index 100%
rename from modules/nf-core/modules/motus/profile/meta.yml
rename to modules/nf-core/motus/profile/meta.yml
diff --git a/modules/nf-core/modules/multiqc/main.nf b/modules/nf-core/multiqc/main.nf
similarity index 79%
rename from modules/nf-core/modules/multiqc/main.nf
rename to modules/nf-core/multiqc/main.nf
index c8e6ace..a8159a5 100644
--- a/modules/nf-core/modules/multiqc/main.nf
+++ b/modules/nf-core/multiqc/main.nf
@@ -1,14 +1,15 @@
process MULTIQC {
- label 'process_medium'
+ label 'process_single'
- conda (params.enable_conda ? 'bioconda::multiqc=1.13a' : null)
+ conda (params.enable_conda ? 'bioconda::multiqc=1.13' : null)
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/multiqc:1.13a--pyhdfd78af_1' :
- 'quay.io/biocontainers/multiqc:1.13a--pyhdfd78af_1' }"
+ 'https://depot.galaxyproject.org/singularity/multiqc:1.13--pyhdfd78af_0' :
+ 'quay.io/biocontainers/multiqc:1.13--pyhdfd78af_0' }"
input:
path multiqc_files, stageAs: "?/*"
path(multiqc_config)
+ path(extra_multiqc_config)
path(multiqc_logo)
output:
@@ -23,11 +24,13 @@ process MULTIQC {
script:
def args = task.ext.args ?: ''
def config = multiqc_config ? "--config $multiqc_config" : ''
+ def extra_config = extra_multiqc_config ? "--config $extra_multiqc_config" : ''
"""
multiqc \\
--force \\
- $config \\
$args \\
+ $config \\
+ $extra_config \\
.
cat <<-END_VERSIONS > versions.yml
diff --git a/modules/nf-core/modules/multiqc/meta.yml b/modules/nf-core/multiqc/meta.yml
similarity index 88%
rename from modules/nf-core/modules/multiqc/meta.yml
rename to modules/nf-core/multiqc/meta.yml
index a1029f3..ebc29b2 100644
--- a/modules/nf-core/modules/multiqc/meta.yml
+++ b/modules/nf-core/multiqc/meta.yml
@@ -22,6 +22,10 @@ input:
type: file
description: Optional config yml for MultiQC
pattern: "*.{yml,yaml}"
+ - extra_multiqc_config:
+ type: file
+ description: Second optional config yml for MultiQC. Will override common sections in multiqc_config.
+ pattern: "*.{yml,yaml}"
- multiqc_logo:
type: file
description: Optional logo file for MultiQC
diff --git a/modules/nf-core/modules/porechop/main.nf b/modules/nf-core/porechop/main.nf
similarity index 100%
rename from modules/nf-core/modules/porechop/main.nf
rename to modules/nf-core/porechop/main.nf
diff --git a/modules/nf-core/modules/porechop/meta.yml b/modules/nf-core/porechop/meta.yml
similarity index 100%
rename from modules/nf-core/modules/porechop/meta.yml
rename to modules/nf-core/porechop/meta.yml
diff --git a/modules/nf-core/modules/prinseqplusplus/main.nf b/modules/nf-core/prinseqplusplus/main.nf
similarity index 100%
rename from modules/nf-core/modules/prinseqplusplus/main.nf
rename to modules/nf-core/prinseqplusplus/main.nf
diff --git a/modules/nf-core/modules/prinseqplusplus/meta.yml b/modules/nf-core/prinseqplusplus/meta.yml
similarity index 100%
rename from modules/nf-core/modules/prinseqplusplus/meta.yml
rename to modules/nf-core/prinseqplusplus/meta.yml
diff --git a/modules/nf-core/modules/samtools/bam2fq/main.nf b/modules/nf-core/samtools/bam2fq/main.nf
similarity index 100%
rename from modules/nf-core/modules/samtools/bam2fq/main.nf
rename to modules/nf-core/samtools/bam2fq/main.nf
diff --git a/modules/nf-core/modules/samtools/bam2fq/meta.yml b/modules/nf-core/samtools/bam2fq/meta.yml
similarity index 100%
rename from modules/nf-core/modules/samtools/bam2fq/meta.yml
rename to modules/nf-core/samtools/bam2fq/meta.yml
diff --git a/modules/nf-core/modules/samtools/view/main.nf b/modules/nf-core/samtools/view/main.nf
similarity index 60%
rename from modules/nf-core/modules/samtools/view/main.nf
rename to modules/nf-core/samtools/view/main.nf
index 59ded5c..94da5d6 100644
--- a/modules/nf-core/modules/samtools/view/main.nf
+++ b/modules/nf-core/samtools/view/main.nf
@@ -10,31 +10,39 @@ process SAMTOOLS_VIEW {
input:
tuple val(meta), path(input), path(index)
path fasta
+ path qname
output:
- tuple val(meta), path("*.bam") , emit: bam , optional: true
- tuple val(meta), path("*.cram"), emit: cram, optional: true
- path "versions.yml" , emit: versions
+ tuple val(meta), path("*.bam"), emit: bam, optional: true
+ tuple val(meta), path("*.cram"), emit: cram, optional: true
+ tuple val(meta), path("*.sam"), emit: sam, optional: true
+ tuple val(meta), path("*.bai"), emit: bai, optional: true
+ tuple val(meta), path("*.csi"), emit: csi, optional: true
+ tuple val(meta), path("*.crai"), emit: crai, optional: true
+ path "versions.yml", emit: versions
when:
task.ext.when == null || task.ext.when
script:
def args = task.ext.args ?: ''
- def args2 = task.ext.args2 ?: ''
def prefix = task.ext.prefix ?: "${meta.id}"
- def reference = fasta ? "--reference ${fasta} -C" : ""
- def file_type = input.getExtension()
+ def reference = fasta ? "--reference ${fasta}" : ""
+ def readnames = qname ? "--qname-file ${qname}": ""
+ def file_type = args.contains("--output-fmt sam") ? "sam" :
+ args.contains("--output-fmt bam") ? "bam" :
+ args.contains("--output-fmt cram") ? "cram" :
+ input.getExtension()
if ("$input" == "${prefix}.${file_type}") error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!"
"""
samtools \\
view \\
--threads ${task.cpus-1} \\
${reference} \\
+ ${readnames} \\
$args \\
- $input \\
- $args2 \\
- > ${prefix}.${file_type}
+ -o ${prefix}.${file_type} \\
+ $input
cat <<-END_VERSIONS > versions.yml
"${task.process}":
diff --git a/modules/nf-core/modules/samtools/view/meta.yml b/modules/nf-core/samtools/view/meta.yml
similarity index 64%
rename from modules/nf-core/modules/samtools/view/meta.yml
rename to modules/nf-core/samtools/view/meta.yml
index a8b43ec..a52e4f8 100644
--- a/modules/nf-core/modules/samtools/view/meta.yml
+++ b/modules/nf-core/samtools/view/meta.yml
@@ -33,6 +33,10 @@ input:
type: optional file
description: Reference file the CRAM was created with
pattern: "*.{fasta,fa}"
+ - qname:
+ type: file
+ description: Optional file with read names to output only select alignments
+ pattern: "*.{txt,list}"
output:
- meta:
type: map
@@ -41,12 +45,29 @@ output:
e.g. [ id:'test', single_end:false ]
- bam:
type: file
- description: filtered/converted BAM/SAM file
- pattern: "*.{bam,sam}"
+ description: optional filtered/converted BAM file
+ pattern: "*.{bam}"
- cram:
type: file
- description: filtered/converted CRAM file
- pattern: "*.cram"
+ description: optional filtered/converted CRAM file
+ pattern: "*.{cram}"
+ - sam:
+ type: file
+ description: optional filtered/converted SAM file
+ pattern: "*.{sam}"
+ # bai, csi, and crai are created with `--write-index`
+ - bai:
+ type: file
+ description: optional BAM file index
+ pattern: "*.{bai}"
+ - csi:
+ type: file
+ description: optional tabix BAM file index
+ pattern: "*.{csi}"
+ - crai:
+ type: file
+ description: optional CRAM file index
+ pattern: "*.{crai}"
- versions:
type: file
description: File containing software versions
@@ -55,3 +76,4 @@ authors:
- "@drpatelh"
- "@joseespinosa"
- "@FriederikeHanssen"
+ - "@priyanka-surana"
diff --git a/modules/nf-core/modules/untar/main.nf b/modules/nf-core/untar/main.nf
similarity index 94%
rename from modules/nf-core/modules/untar/main.nf
rename to modules/nf-core/untar/main.nf
index 007871b..71eea7b 100644
--- a/modules/nf-core/modules/untar/main.nf
+++ b/modules/nf-core/untar/main.nf
@@ -27,7 +27,7 @@ process UNTAR {
## Ensures --strip-components only applied when top level of tar contents is a directory
## If just files or multiple directories, place all in output
- if [[ \$(tar -tzf ${archive} | grep "/\$" | wc -l) -eq 1 ]]; then
+ if [[ \$(tar -tzf ${archive} | grep -o -P "^.*?\\/" | uniq | wc -l) -eq 1 ]]; then
tar \\
-C output --strip-components 1 \\
-xzvf \\
diff --git a/modules/nf-core/modules/untar/meta.yml b/modules/nf-core/untar/meta.yml
similarity index 100%
rename from modules/nf-core/modules/untar/meta.yml
rename to modules/nf-core/untar/meta.yml
diff --git a/nextflow.config b/nextflow.config
index 80fce40..efb5aff 100644
--- a/nextflow.config
+++ b/nextflow.config
@@ -21,7 +21,9 @@ params {
// MultiQC options
multiqc_config = null
multiqc_title = null
+ multiqc_logo = null
max_multiqc_email_size = '25.MB'
+ multiqc_methods_description = null
// Boilerplate options
outdir = null
@@ -31,6 +33,7 @@ params {
email_on_fail = null
plaintext_email = false
monochrome_logs = false
+ hook_url = null
help = false
validate_params = true
show_hidden_params = false
@@ -159,7 +162,6 @@ try {
}
-
profiles {
debug { process.beforeScript = 'echo $HOSTNAME' }
conda {
@@ -280,6 +282,7 @@ manifest {
mainScript = 'main.nf'
nextflowVersion = '!>=21.10.3'
version = '1.0dev'
+ doi = ''
}
// Load modules.config for DSL2 module specific options
diff --git a/nextflow_schema.json b/nextflow_schema.json
index 4a9237d..f88443f 100644
--- a/nextflow_schema.json
+++ b/nextflow_schema.json
@@ -586,12 +586,30 @@
"fa_icon": "fas fa-palette",
"hidden": true
},
+ "hook_url": {
+ "type": "string",
+ "description": "Incoming hook URL for messaging service",
+ "fa_icon": "fas fa-people-group",
+ "help_text": "Incoming hook URL for messaging service. Currently, only MS Teams is supported.",
+ "hidden": true
+ },
"multiqc_config": {
"type": "string",
"description": "Custom config file to supply to MultiQC.",
"fa_icon": "fas fa-cog",
"hidden": true
},
+ "multiqc_logo": {
+ "type": "string",
+ "description": "Custom logo file to supply to MultiQC. File name must also be set in the MultiQC config file",
+ "fa_icon": "fas fa-image",
+ "hidden": true
+ },
+ "multiqc_methods_description": {
+ "type": "string",
+ "description": "Custom MultiQC yaml file containing HTML including a methods description.",
+ "fa_icon": "fas fa-cog"
+ },
"tracedir": {
"type": "string",
"description": "Directory to keep pipeline Nextflow logs and reports.",
diff --git a/subworkflows/local/db_check.nf b/subworkflows/local/db_check.nf
index 7b440c6..5d0c4eb 100644
--- a/subworkflows/local/db_check.nf
+++ b/subworkflows/local/db_check.nf
@@ -3,7 +3,7 @@
//
include { DATABASE_CHECK } from '../../modules/local/database_check'
-include { UNTAR } from '../../modules/nf-core/modules/untar/main'
+include { UNTAR } from '../../modules/nf-core/untar/main'
workflow DB_CHECK {
take:
diff --git a/subworkflows/local/input_check.nf b/subworkflows/local/input_check.nf
index e8d5e7a..46baff2 100644
--- a/subworkflows/local/input_check.nf
+++ b/subworkflows/local/input_check.nf
@@ -2,8 +2,8 @@
// Check input samplesheet and get read channels
//
-include { EIDO_VALIDATE } from '../../modules/nf-core/modules/eido/validate/main'
-include { EIDO_CONVERT } from '../../modules/nf-core/modules/eido/convert/main'
+include { EIDO_VALIDATE } from '../../modules/nf-core/eido/validate/main'
+include { EIDO_CONVERT } from '../../modules/nf-core/eido/convert/main'
workflow INPUT_CHECK {
take:
diff --git a/subworkflows/local/longread_hostremoval.nf b/subworkflows/local/longread_hostremoval.nf
index 7db020b..751f4e1 100644
--- a/subworkflows/local/longread_hostremoval.nf
+++ b/subworkflows/local/longread_hostremoval.nf
@@ -2,10 +2,10 @@
// Remove host reads via alignment and export off-target reads
//
-include { MINIMAP2_INDEX } from '../../modules/nf-core/modules/minimap2/index/main'
-include { MINIMAP2_ALIGN } from '../../modules/nf-core/modules/minimap2/align/main'
-include { SAMTOOLS_VIEW } from '../../modules/nf-core/modules/samtools/view/main'
-include { SAMTOOLS_BAM2FQ } from '../../modules/nf-core/modules/samtools/bam2fq/main'
+include { MINIMAP2_INDEX } from '../../modules/nf-core/minimap2/index/main'
+include { MINIMAP2_ALIGN } from '../../modules/nf-core/minimap2/align/main'
+include { SAMTOOLS_VIEW } from '../../modules/nf-core/samtools/view/main'
+include { SAMTOOLS_BAM2FQ } from '../../modules/nf-core/samtools/bam2fq/main'
workflow LONGREAD_HOSTREMOVAL {
take:
@@ -33,7 +33,7 @@ workflow LONGREAD_HOSTREMOVAL {
}
- SAMTOOLS_VIEW ( ch_minimap2_mapped , [] )
+ SAMTOOLS_VIEW ( ch_minimap2_mapped , [], [] )
ch_versions = ch_versions.mix( SAMTOOLS_VIEW.out.versions.first() )
SAMTOOLS_BAM2FQ ( SAMTOOLS_VIEW.out.bam, false )
diff --git a/subworkflows/local/longread_preprocessing.nf b/subworkflows/local/longread_preprocessing.nf
index c04207e..ce537e8 100644
--- a/subworkflows/local/longread_preprocessing.nf
+++ b/subworkflows/local/longread_preprocessing.nf
@@ -2,9 +2,9 @@
// Process long raw reads with porechop
//
-include { FASTQC as FASTQC_PROCESSED } from '../../modules/nf-core/modules/fastqc/main'
-include { PORECHOP } from '../../modules/nf-core/modules/porechop/main'
-include { FILTLONG } from '../../modules/nf-core/modules/filtlong/main'
+include { FASTQC as FASTQC_PROCESSED } from '../../modules/nf-core/fastqc/main'
+include { PORECHOP } from '../../modules/nf-core/porechop/main'
+include { FILTLONG } from '../../modules/nf-core/filtlong/main'
workflow LONGREAD_PREPROCESSING {
take:
diff --git a/subworkflows/local/profiling.nf b/subworkflows/local/profiling.nf
index c2ef508..11c4a72 100644
--- a/subworkflows/local/profiling.nf
+++ b/subworkflows/local/profiling.nf
@@ -2,15 +2,15 @@
// Run profiling
//
-include { MALT_RUN } from '../../modules/nf-core/modules/malt/run/main'
-include { MEGAN_RMA2INFO as MEGAN_RMA2INFO_TSV } from '../../modules/nf-core/modules/megan/rma2info/main'
-include { KRAKEN2_KRAKEN2 } from '../../modules/nf-core/modules/kraken2/kraken2/main'
-include { CENTRIFUGE_CENTRIFUGE } from '../../modules/nf-core/modules/centrifuge/centrifuge/main'
-include { CENTRIFUGE_KREPORT } from '../../modules/nf-core/modules/centrifuge/kreport/main'
-include { METAPHLAN3_METAPHLAN3 } from '../../modules/nf-core/modules/metaphlan3/metaphlan3/main'
-include { KAIJU_KAIJU } from '../../modules/nf-core/modules/kaiju/kaiju/main'
-include { DIAMOND_BLASTX } from '../../modules/nf-core/modules/diamond/blastx/main'
-include { MOTUS_PROFILE } from '../../modules/nf-core/modules/motus/profile/main'
+include { MALT_RUN } from '../../modules/nf-core/malt/run/main'
+include { MEGAN_RMA2INFO as MEGAN_RMA2INFO_TSV } from '../../modules/nf-core/megan/rma2info/main'
+include { KRAKEN2_KRAKEN2 } from '../../modules/nf-core/kraken2/kraken2/main'
+include { CENTRIFUGE_CENTRIFUGE } from '../../modules/nf-core/centrifuge/centrifuge/main'
+include { CENTRIFUGE_KREPORT } from '../../modules/nf-core/centrifuge/kreport/main'
+include { METAPHLAN3_METAPHLAN3 } from '../../modules/nf-core/metaphlan3/metaphlan3/main'
+include { KAIJU_KAIJU } from '../../modules/nf-core/kaiju/kaiju/main'
+include { DIAMOND_BLASTX } from '../../modules/nf-core/diamond/blastx/main'
+include { MOTUS_PROFILE } from '../../modules/nf-core/motus/profile/main'
workflow PROFILING {
take:
diff --git a/subworkflows/local/shortread_adapterremoval.nf b/subworkflows/local/shortread_adapterremoval.nf
index e491423..a5a43fe 100644
--- a/subworkflows/local/shortread_adapterremoval.nf
+++ b/subworkflows/local/shortread_adapterremoval.nf
@@ -2,9 +2,9 @@
// Process short raw reads with AdapterRemoval
//
-include { ADAPTERREMOVAL as ADAPTERREMOVAL_SINGLE } from '../../modules/nf-core/modules/adapterremoval/main'
-include { ADAPTERREMOVAL as ADAPTERREMOVAL_PAIRED } from '../../modules/nf-core/modules/adapterremoval/main'
-include { CAT_FASTQ } from '../../modules/nf-core/modules/cat/fastq/main'
+include { ADAPTERREMOVAL as ADAPTERREMOVAL_SINGLE } from '../../modules/nf-core/adapterremoval/main'
+include { ADAPTERREMOVAL as ADAPTERREMOVAL_PAIRED } from '../../modules/nf-core/adapterremoval/main'
+include { CAT_FASTQ } from '../../modules/nf-core/cat/fastq/main'
workflow SHORTREAD_ADAPTERREMOVAL {
diff --git a/subworkflows/local/shortread_complexityfiltering.nf b/subworkflows/local/shortread_complexityfiltering.nf
index a34440d..844cd15 100644
--- a/subworkflows/local/shortread_complexityfiltering.nf
+++ b/subworkflows/local/shortread_complexityfiltering.nf
@@ -2,8 +2,8 @@
// Check input samplesheet and get read channels
//
-include { BBMAP_BBDUK } from '../../modules/nf-core/modules/bbmap/bbduk/main'
-include { PRINSEQPLUSPLUS } from '../../modules/nf-core/modules/prinseqplusplus/main'
+include { BBMAP_BBDUK } from '../../modules/nf-core/bbmap/bbduk/main'
+include { PRINSEQPLUSPLUS } from '../../modules/nf-core/prinseqplusplus/main'
workflow SHORTREAD_COMPLEXITYFILTERING {
take:
diff --git a/subworkflows/local/shortread_fastp.nf b/subworkflows/local/shortread_fastp.nf
index 05e0f3d..d466041 100644
--- a/subworkflows/local/shortread_fastp.nf
+++ b/subworkflows/local/shortread_fastp.nf
@@ -2,8 +2,8 @@
// Process short raw reads with FastP
//
-include { FASTP as FASTP_SINGLE } from '../../modules/nf-core/modules/fastp/main'
-include { FASTP as FASTP_PAIRED } from '../../modules/nf-core/modules/fastp/main'
+include { FASTP as FASTP_SINGLE } from '../../modules/nf-core/fastp/main'
+include { FASTP as FASTP_PAIRED } from '../../modules/nf-core/fastp/main'
workflow SHORTREAD_FASTP {
take:
diff --git a/subworkflows/local/shortread_hostremoval.nf b/subworkflows/local/shortread_hostremoval.nf
index c5f15c7..d181a34 100644
--- a/subworkflows/local/shortread_hostremoval.nf
+++ b/subworkflows/local/shortread_hostremoval.nf
@@ -2,8 +2,8 @@
// Remove host reads via alignment and export off-target reads
//
-include { BOWTIE2_BUILD } from '../../modules/nf-core/modules/bowtie2/build/main'
-include { BOWTIE2_ALIGN } from '../../modules/nf-core/modules/bowtie2/align/main'
+include { BOWTIE2_BUILD } from '../../modules/nf-core/bowtie2/build/main'
+include { BOWTIE2_ALIGN } from '../../modules/nf-core/bowtie2/align/main'
workflow SHORTREAD_HOSTREMOVAL {
take:
diff --git a/subworkflows/local/shortread_preprocessing.nf b/subworkflows/local/shortread_preprocessing.nf
index 977a317..859c1d5 100644
--- a/subworkflows/local/shortread_preprocessing.nf
+++ b/subworkflows/local/shortread_preprocessing.nf
@@ -5,7 +5,7 @@
include { SHORTREAD_FASTP } from './shortread_fastp'
include { SHORTREAD_ADAPTERREMOVAL } from './shortread_adapterremoval'
-include { FASTQC as FASTQC_PROCESSED } from '../../modules/nf-core/modules/fastqc/main'
+include { FASTQC as FASTQC_PROCESSED } from '../../modules/nf-core/fastqc/main'
workflow SHORTREAD_PREPROCESSING {
take:
diff --git a/subworkflows/local/standardisation_profiles.nf b/subworkflows/local/standardisation_profiles.nf
index 7a441ff..cbb0fab 100644
--- a/subworkflows/local/standardisation_profiles.nf
+++ b/subworkflows/local/standardisation_profiles.nf
@@ -2,11 +2,11 @@
// Standardise output files e.g. aggregation
//
-include { KAIJU_KAIJU2TABLE } from '../../modules/nf-core/modules/kaiju/kaiju2table/main'
-include { KRAKENTOOLS_COMBINEKREPORTS } from '../../modules/nf-core/modules/krakentools/combinekreports/main'
-include { KRAKENTOOLS_COMBINEKREPORTS as KRAKENTOOLS_COMBINEKREPORTS_CENTRIFUGE } from '../../modules/nf-core/modules/krakentools/combinekreports/main'
-include { METAPHLAN3_MERGEMETAPHLANTABLES } from '../../modules/nf-core/modules/metaphlan3/mergemetaphlantables/main'
-include { MOTUS_MERGE } from '../../modules/nf-core/modules/motus/merge/main'
+include { KAIJU_KAIJU2TABLE } from '../../modules/nf-core/kaiju/kaiju2table/main'
+include { KRAKENTOOLS_COMBINEKREPORTS } from '../../modules/nf-core/krakentools/combinekreports/main'
+include { KRAKENTOOLS_COMBINEKREPORTS as KRAKENTOOLS_COMBINEKREPORTS_CENTRIFUGE } from '../../modules/nf-core/krakentools/combinekreports/main'
+include { METAPHLAN3_MERGEMETAPHLANTABLES } from '../../modules/nf-core/metaphlan3/mergemetaphlantables/main'
+include { MOTUS_MERGE } from '../../modules/nf-core/motus/merge/main'
workflow STANDARDISATION_PROFILES {
take:
@@ -99,7 +99,7 @@ workflow STANDARDISATION_PROFILES {
ch_versions = ch_versions.mix( KRAKENTOOLS_COMBINEKREPORTS.out.versions )
// MetaPhlAn3
-
+
ch_profiles_for_metaphlan3 = ch_input_profiles.metaphlan3
.map { [it[0]['db_name'], it[1]] }
.groupTuple()
diff --git a/subworkflows/local/visualization_krona.nf b/subworkflows/local/visualization_krona.nf
index f06768a..7d8e4f0 100644
--- a/subworkflows/local/visualization_krona.nf
+++ b/subworkflows/local/visualization_krona.nf
@@ -2,13 +2,13 @@
// Create Krona visualizations
//
-include { MEGAN_RMA2INFO as MEGAN_RMA2INFO_KRONA } from '../../modules/nf-core/modules/megan/rma2info/main'
-include { KAIJU_KAIJU2KRONA } from '../../modules/nf-core/modules/kaiju/kaiju2krona/main'
-include { KRAKENTOOLS_KREPORT2KRONA } from '../../modules/nf-core/modules/krakentools/kreport2krona/main'
+include { MEGAN_RMA2INFO as MEGAN_RMA2INFO_KRONA } from '../../modules/nf-core/megan/rma2info/main'
+include { KAIJU_KAIJU2KRONA } from '../../modules/nf-core/kaiju/kaiju2krona/main'
+include { KRAKENTOOLS_KREPORT2KRONA } from '../../modules/nf-core/krakentools/kreport2krona/main'
include { KRONA_CLEANUP } from '../../modules/local/krona_cleanup'
-include { KRONA_KTIMPORTTEXT } from '../../modules/nf-core/modules/krona/ktimporttext/main'
-include { KRONA_KTIMPORTTAXONOMY } from '../../modules/nf-core/modules/krona/ktimporttaxonomy/main'
-include { GUNZIP } from '../../modules/nf-core/modules/gunzip/main'
+include { KRONA_KTIMPORTTEXT } from '../../modules/nf-core/krona/ktimporttext/main'
+include { KRONA_KTIMPORTTAXONOMY } from '../../modules/nf-core/krona/ktimporttaxonomy/main'
+include { GUNZIP } from '../../modules/nf-core/gunzip/main'
workflow VISUALIZATION_KRONA {
take:
diff --git a/workflows/taxprofiler.nf b/workflows/taxprofiler.nf
index 6f7becf..8b9edb7 100644
--- a/workflows/taxprofiler.nf
+++ b/workflows/taxprofiler.nf
@@ -48,7 +48,10 @@ if (params.run_malt && params.run_krona && !params.krona_taxonomy_directory) log
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
-ch_multiqc_config = params.multiqc_config ? file( params.multiqc_config, checkIfExists: true ) : file("$projectDir/assets/multiqc_config.yml", checkIfExists: true)
+ch_multiqc_config = Channel.fromPath("$projectDir/assets/multiqc_config.yml", checkIfExists: true)
+ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath( params.multiqc_config, checkIfExists: true ) : Channel.empty()
+ch_multiqc_logo = params.multiqc_logo ? Channel.fromPath( params.multiqc_logo, checkIfExists: true ) : Channel.empty()
+ch_multiqc_custom_methods_description = params.multiqc_methods_description ? file(params.multiqc_methods_description, checkIfExists: true) : file("$projectDir/assets/methods_description_template.yml", checkIfExists: true)
/*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -80,11 +83,10 @@ include { STANDARDISATION_PROFILES } from '../subworkflows/local/standardis
//
// MODULE: Installed directly from nf-core/modules
//
-include { FASTQC } from '../modules/nf-core/modules/fastqc/main'
-include { MULTIQC } from '../modules/nf-core/modules/multiqc/main'
-include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/nf-core/modules/custom/dumpsoftwareversions/main'
-
-include { CAT_FASTQ } from '../modules/nf-core/modules/cat/fastq/main'
+include { FASTQC } from '../modules/nf-core/fastqc/main'
+include { MULTIQC } from '../modules/nf-core/multiqc/main'
+include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/nf-core/custom/dumpsoftwareversions/main'
+include { CAT_FASTQ } from '../modules/nf-core/cat/fastq/main'
/*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -245,9 +247,12 @@ workflow TAXPROFILER {
workflow_summary = WorkflowTaxprofiler.paramsSummaryMultiqc(workflow, summary_params)
ch_workflow_summary = Channel.value(workflow_summary)
- ch_multiqc_files = Channel.empty()
+ methods_description = WorkflowTaxprofiler.methodsDescriptionText(workflow, ch_multiqc_custom_methods_description)
+ ch_methods_description = Channel.value(methods_description)
+ ch_multiqc_files = Channel.empty()
ch_multiqc_files = ch_multiqc_files.mix(ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml'))
+ ch_multiqc_files = ch_multiqc_files.mix(ch_methods_description.collectFile(name: 'methods_description_mqc.yaml'))
ch_multiqc_files = ch_multiqc_files.mix(CUSTOM_DUMPSOFTWAREVERSIONS.out.mqc_yml.collect())
ch_multiqc_files = ch_multiqc_files.mix(FASTQC.out.zip.collect{it[1]}.ifEmpty([]))
@@ -276,8 +281,9 @@ workflow TAXPROFILER {
// TODO create multiQC module for metaphlan
MULTIQC (
ch_multiqc_files.collect(),
- ch_multiqc_config,
- ch_multiqc_logo
+ ch_multiqc_config.collect().ifEmpty([]),
+ ch_multiqc_custom_config.collect().ifEmpty([]),
+ ch_multiqc_logo.collect().ifEmpty([])
)
multiqc_report = MULTIQC.out.report.toList()
ch_versions = ch_versions.mix(MULTIQC.out.versions)
@@ -294,6 +300,9 @@ workflow.onComplete {
NfcoreTemplate.email(workflow, params, summary_params, projectDir, log, multiqc_report)
}
NfcoreTemplate.summary(workflow, params, log)
+ if (params.hook_url) {
+ NfcoreTemplate.adaptivecard(workflow, params, summary_params, projectDir, log)
+ }
}
/*