From 4f0877bb97672b8f819ca3b5e6e32bea8e592a83 Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Date: Wed, 15 Jan 2025 13:35:19 -0500 Subject: [PATCH 01/20] Update nf-core modules --- modules/nf-core/multiqc/environment.yml | 2 +- modules/nf-core/multiqc/main.nf | 4 ++-- modules/nf-core/multiqc/tests/main.nf.test.snap | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/nf-core/multiqc/environment.yml b/modules/nf-core/multiqc/environment.yml index 6f5b867..439a7c2 100644 --- a/modules/nf-core/multiqc/environment.yml +++ b/modules/nf-core/multiqc/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::multiqc=1.25.1 + - bioconda::multiqc=1.26 diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index cc0643e..775b3ff 100644 --- a/modules/nf-core/multiqc/main.nf +++ b/modules/nf-core/multiqc/main.nf @@ -3,8 +3,8 @@ process MULTIQC { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.25.1--pyhdfd78af_0' : - 'biocontainers/multiqc:1.25.1--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.26--pyhdfd78af_0' : + 'biocontainers/multiqc:1.26--pyhdfd78af_0' }" input: path multiqc_files, stageAs: "?/*" diff --git a/modules/nf-core/multiqc/tests/main.nf.test.snap b/modules/nf-core/multiqc/tests/main.nf.test.snap index 2fcbb5f..ee01208 100644 --- a/modules/nf-core/multiqc/tests/main.nf.test.snap +++ b/modules/nf-core/multiqc/tests/main.nf.test.snap @@ -2,7 +2,7 @@ "multiqc_versions_single": { "content": [ [ - "versions.yml:md5,41f391dcedce7f93ca188f3a3ffa0916" + "versions.yml:md5,4cab99fb04e679fd2d72e29eda1b9646" ] ], "meta": { @@ -17,7 +17,7 @@ "multiqc_report.html", "multiqc_data", "multiqc_plots", - "versions.yml:md5,41f391dcedce7f93ca188f3a3ffa0916" + "versions.yml:md5,4cab99fb04e679fd2d72e29eda1b9646" ] ], "meta": { @@ -29,7 +29,7 @@ "multiqc_versions_config": { "content": [ [ - "versions.yml:md5,41f391dcedce7f93ca188f3a3ffa0916" + "versions.yml:md5,4cab99fb04e679fd2d72e29eda1b9646" ] ], "meta": { From 5b438c98e6a19df6f03c0b8d2066e832f902ddbc Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Date: Wed, 15 Jan 2025 13:35:33 -0500 Subject: [PATCH 02/20] Switch output metadata from typePan to fromPan --- modules.json | 12 +++--- .../formatnetmhcpan/tests/main.nf.test.snap | 42 +++++++++---------- modules/msk/netmhc3/main.nf | 2 +- modules/msk/netmhc3/tests/main.nf.test.snap | 38 ++++++++--------- modules/msk/netmhcpan4/main.nf | 2 +- .../msk/netmhcpan4/tests/main.nf.test.snap | 38 ++++++++--------- modules/msk/netmhcstabpan/main.nf | 2 +- .../msk/netmhcstabpan/tests/main.nf.test.snap | 38 ++++++++--------- .../netmhcstabandpan/tests/main.nf.test.snap | 34 +++++++-------- 9 files changed, 104 insertions(+), 104 deletions(-) diff --git a/modules.json b/modules.json index 107a356..f2314e5 100644 --- a/modules.json +++ b/modules.json @@ -22,7 +22,7 @@ }, "neoantigenutils/formatnetmhcpan": { "branch": "develop", - "git_sha": "e6bbb12a2dc237b9ea18163e96dbe9d780ddce5f", + "git_sha": "939507da8ef974fa8b9f53abd5f9d54492bafab0", "installed_by": ["modules", "netmhcstabandpan"] }, "neoantigenutils/generatehlastring": { @@ -42,7 +42,7 @@ }, "netmhc3": { "branch": "develop", - "git_sha": "9baf08c136733d9e4c0b16c169b7eebfb98d3291", + "git_sha": "0ccb264740ff8fe681f0e298133e52e51bf68994", "installed_by": ["modules", "netmhcstabandpan"] }, "netmhcpan": { @@ -52,12 +52,12 @@ }, "netmhcpan4": { "branch": "develop", - "git_sha": "e64e6e100302131d575881363a9632936499918d", + "git_sha": "9e23d0e98023dec8b7a9b0faa20eea2f1f9cee3f", "installed_by": ["modules", "netmhcstabandpan"] }, "netmhcstabpan": { "branch": "develop", - "git_sha": "3c39dd8d3d0a92aa33fda4352749e35fc22d3e87", + "git_sha": "0ccb264740ff8fe681f0e298133e52e51bf68994", "installed_by": ["modules", "netmhcstabandpan"] }, "phylowgs/createinput": { @@ -91,7 +91,7 @@ }, "netmhcstabandpan": { "branch": "develop", - "git_sha": "307cbffd9077e238176acb5044f9db85784e8aad", + "git_sha": "848ad2b5cffd9a4bd15a628cfe59aba93807a252", "installed_by": ["subworkflows"] }, "phylowgs": { @@ -107,7 +107,7 @@ "nf-core": { "multiqc": { "branch": "master", - "git_sha": "cf17ca47590cc578dfb47db1c2a44ef86f89976d", + "git_sha": "f80914f78fb7fa1c00b14cfeb29575ee12240d9c", "installed_by": ["modules"] } } diff --git a/modules/msk/neoantigenutils/formatnetmhcpan/tests/main.nf.test.snap b/modules/msk/neoantigenutils/formatnetmhcpan/tests/main.nf.test.snap index f821cd3..b84f7d6 100644 --- a/modules/msk/neoantigenutils/formatnetmhcpan/tests/main.nf.test.snap +++ b/modules/msk/neoantigenutils/formatnetmhcpan/tests/main.nf.test.snap @@ -33,10 +33,10 @@ } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-11-22T17:15:16.841503839" + "timestamp": "2024-12-17T14:45:38.840591896" }, "neoantigenutils_formatnetmhcpan - output(WT,netmhc) - tsv": { "content": [ @@ -72,10 +72,10 @@ } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-11-22T17:15:34.581815855" + "timestamp": "2024-12-17T14:46:02.600939484" }, "neoantigenutils_formatnetmhcpan - output(MUT,netmhcpan) - tsv - stub": { "content": [ @@ -111,10 +111,10 @@ } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-11-22T17:15:51.298318927" + "timestamp": "2024-12-17T14:46:25.074173512" }, "neoantigenutils_formatnetmhcpan - output(MUT,netmhc) - tsv": { "content": [ @@ -150,10 +150,10 @@ } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-11-22T17:15:28.833554691" + "timestamp": "2024-12-17T14:45:55.288256594" }, "neoantigenutils_formatnetmhcpan - output(WT,netmhcpan) - tsv": { "content": [ @@ -189,10 +189,10 @@ } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-11-22T17:15:23.00992256" + "timestamp": "2024-12-17T14:45:47.34586791" }, "neoantigenutils_formatnetmhcpan - output(MUT,netmhcpanstab) - tsv": { "content": [ @@ -228,10 +228,10 @@ } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-11-22T17:15:40.122191248" + "timestamp": "2024-12-17T14:46:10.256554716" }, "neoantigenutils_formatnetmhcpan - output(WT,netmhcpanstab) - tsv": { "content": [ @@ -267,9 +267,9 @@ } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-11-22T17:15:45.911170919" + "timestamp": "2024-12-17T14:46:17.955083074" } } \ No newline at end of file diff --git a/modules/msk/netmhc3/main.nf b/modules/msk/netmhc3/main.nf index 8a4c013..42ec13d 100644 --- a/modules/msk/netmhc3/main.nf +++ b/modules/msk/netmhc3/main.nf @@ -26,7 +26,7 @@ process NETMHC3 { output_meta = meta.clone() output_meta.typeMut = inputType == "MUT" ? true : false output_meta.fromStab = false - output_meta.typePan = false + output_meta.fromPan = false def NETMHC_VERSION = "3.4" def tmpDir = "netmhc-tmp" def tmpDirFullPath = "\$PWD/${tmpDir}/" // must set full path to tmp directories for netMHC and netMHCpan to work; for some reason doesn't work with /scratch, so putting them in the process workspace diff --git a/modules/msk/netmhc3/tests/main.nf.test.snap b/modules/msk/netmhc3/tests/main.nf.test.snap index ac230cb..ae10569 100644 --- a/modules/msk/netmhc3/tests/main.nf.test.snap +++ b/modules/msk/netmhc3/tests/main.nf.test.snap @@ -9,16 +9,16 @@ "single_end": false, "typeMut": true, "fromStab": false, - "typePan": false + "fromPan": false }, "test.MUT.xls", "test.MUT.netmhc.output" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-11-25T09:00:51.333935874" + "timestamp": "2024-12-17T12:08:28.261935482" }, "netmhc3 - xls,output,fa - stub": { "content": [ @@ -36,10 +36,10 @@ "test.MUT.netmhc.output" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-11-25T09:02:00.341675799" + "timestamp": "2024-12-17T12:09:30.886623638" }, "netmhc3 - WT,SV - xls,output,fa": { "content": [ @@ -51,16 +51,16 @@ "single_end": false, "typeMut": false, "fromStab": false, - "typePan": false + "fromPan": false }, "test.WT.xls", "test.WT.netmhc.output" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-11-25T09:01:14.49522341" + "timestamp": "2024-12-17T12:08:47.429513751" }, "netmhc3 - WT - xls,output,fa": { "content": [ @@ -72,16 +72,16 @@ "single_end": false, "typeMut": false, "fromStab": false, - "typePan": false + "fromPan": false }, "test.WT.xls", "test.WT.netmhc.output" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-11-25T09:01:55.331175249" + "timestamp": "2024-12-17T12:09:21.112597962" }, "netmhc3 - MUT - xls,output,fa": { "content": [ @@ -93,15 +93,15 @@ "single_end": false, "typeMut": true, "fromStab": false, - "typePan": false + "fromPan": false }, "test.MUT.xls", "test.MUT.netmhc.output" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-11-25T09:01:34.648692712" + "timestamp": "2024-12-17T12:09:04.393123362" } } \ No newline at end of file diff --git a/modules/msk/netmhcpan4/main.nf b/modules/msk/netmhcpan4/main.nf index d6c603f..4533d57 100644 --- a/modules/msk/netmhcpan4/main.nf +++ b/modules/msk/netmhcpan4/main.nf @@ -25,7 +25,7 @@ process NETMHCPAN4 { output_meta = meta.clone() output_meta.typeMut = inputType == "MUT" ? true : false output_meta.fromStab = false - output_meta.typePan = true + output_meta.fromPan = true def NETMHCPAN_VERSION = "4.1" def tmpDir = "netmhc-tmp" def tmpDirFullPath = "\$PWD/${tmpDir}/" // must set full path to tmp directories for netMHC and netMHCpan to work; for some reason doesn't work with /scratch, so putting them in the process workspace diff --git a/modules/msk/netmhcpan4/tests/main.nf.test.snap b/modules/msk/netmhcpan4/tests/main.nf.test.snap index fa054ef..e345b82 100644 --- a/modules/msk/netmhcpan4/tests/main.nf.test.snap +++ b/modules/msk/netmhcpan4/tests/main.nf.test.snap @@ -9,16 +9,16 @@ "single_end": false, "typeMut": false, "fromStab": false, - "typePan": true + "fromPan": true }, "test.WT.xls", "test.WT.netmhcpan.output" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-11-25T10:29:28.616914826" + "timestamp": "2024-12-17T09:55:05.982792409" }, "netmhcpan4 - MUT - xls,output,fa": { "content": [ @@ -30,16 +30,16 @@ "single_end": false, "typeMut": true, "fromStab": false, - "typePan": true + "fromPan": true }, "test.MUT.xls", "test.MUT.netmhcpan.output" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-11-25T10:26:02.108432464" + "timestamp": "2024-12-17T09:50:25.440240126" }, "netmhcpan4 - xls,output,fa - stub": { "content": [ @@ -57,10 +57,10 @@ "test.MUT.netmhcpan.output" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-11-25T10:29:33.956254062" + "timestamp": "2024-12-17T09:55:12.561294254" }, "netmhcpan4 - MUT,SV - xls,output,fa": { "content": [ @@ -72,16 +72,16 @@ "single_end": false, "typeMut": true, "fromStab": false, - "typePan": true + "fromPan": true }, "test.MUT.xls", "test.MUT.netmhcpan.output" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-11-25T10:20:37.334041838" + "timestamp": "2024-12-17T09:42:24.952790532" }, "netmhcpan4 - WT,SV - xls,output,fa": { "content": [ @@ -93,15 +93,15 @@ "single_end": false, "typeMut": false, "fromStab": false, - "typePan": true + "fromPan": true }, "test.WT.xls", "test.WT.netmhcpan.output" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-11-25T10:24:39.739383639" + "timestamp": "2024-12-17T09:47:58.298355664" } } \ No newline at end of file diff --git a/modules/msk/netmhcstabpan/main.nf b/modules/msk/netmhcstabpan/main.nf index da1dce3..114c106 100644 --- a/modules/msk/netmhcstabpan/main.nf +++ b/modules/msk/netmhcstabpan/main.nf @@ -25,7 +25,7 @@ process NETMHCSTABPAN { output_meta = meta.clone() output_meta.typeMut = inputType == "MUT" ? true : false output_meta.fromStab = true - output_meta.typePan = true + output_meta.fromPan = true def NETMHCPAN_VERSION = "4.1" def NETMHCSTABPAN_VERSION = "1.0" diff --git a/modules/msk/netmhcstabpan/tests/main.nf.test.snap b/modules/msk/netmhcstabpan/tests/main.nf.test.snap index eda2c92..b99a46d 100644 --- a/modules/msk/netmhcstabpan/tests/main.nf.test.snap +++ b/modules/msk/netmhcstabpan/tests/main.nf.test.snap @@ -9,15 +9,15 @@ "single_end": false, "typeMut": true, "fromStab": true, - "typePan": true + "fromPan": true }, "test.MUT.netmhcstabpan.output" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-11-25T09:20:13.007454444" + "timestamp": "2024-12-17T13:19:10.187818681" }, "netmhcstabpan - WT,SV - xls,output,fa": { "content": [ @@ -29,15 +29,15 @@ "single_end": false, "typeMut": false, "fromStab": true, - "typePan": true + "fromPan": true }, "test.WT.netmhcstabpan.output" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-11-25T09:15:21.840510308" + "timestamp": "2024-12-17T13:15:25.815673176" }, "netmhcstabpan - xls,output,fa - stub": { "content": [ @@ -54,10 +54,10 @@ "test.MUT.netmhcstabpan.output" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-11-25T09:25:26.180428087" + "timestamp": "2024-12-17T13:23:26.483556017" }, "netmhcstabpan - WT - xls,output,fa": { "content": [ @@ -69,15 +69,15 @@ "single_end": false, "typeMut": false, "fromStab": true, - "typePan": true + "fromPan": true }, "test.WT.netmhcstabpan.output" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-11-25T09:25:21.015015849" + "timestamp": "2024-12-17T13:23:16.341803658" }, "netmhcstabpan - MUT,SV - xls,output,fa": { "content": [ @@ -89,14 +89,14 @@ "single_end": false, "typeMut": true, "fromStab": true, - "typePan": true + "fromPan": true }, "test.MUT.netmhcstabpan.output" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-11-25T09:09:53.461848085" + "timestamp": "2024-12-17T13:11:09.443476183" } } \ No newline at end of file diff --git a/subworkflows/msk/netmhcstabandpan/tests/main.nf.test.snap b/subworkflows/msk/netmhcstabandpan/tests/main.nf.test.snap index b77b94a..aeeee53 100644 --- a/subworkflows/msk/netmhcstabandpan/tests/main.nf.test.snap +++ b/subworkflows/msk/netmhcstabandpan/tests/main.nf.test.snap @@ -1,15 +1,15 @@ { "netmhcstabandpan - tsv,xls,fa": { "content": [ - "test_netmhc.output.WT.tsv", + "test_netmhcpan.output.WT.tsv", "test.MUT_sequences.fa:md5,7fdb7d3f0fe5a6f439ed294b612c2d70", "test.WT_sequences.fa:md5,7595ed6cf0c98500b00c9ad027125b38" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-12-02T17:16:20.890584183" + "timestamp": "2024-12-17T15:32:48.122038795" }, "netmhcstabandpan - tsv,xls,fa - stub": { "content": [ @@ -18,10 +18,10 @@ "test.WT_sequences.fa:md5,d41d8cd98f00b204e9800998ecf8427e" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-12-02T17:17:10.765080369" + "timestamp": "2024-12-17T15:33:59.951435808" }, "netmhcstabandnetmhc3 - SV - tsv,xls,fa": { "content": [ @@ -30,22 +30,22 @@ "test.WT_sequences.fa:md5,bb7dfff23ae47cf64ec4854ee48ec78d" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-12-02T17:15:41.011763441" + "timestamp": "2024-12-17T15:31:41.007610492" }, "netmhcstabandpan - SV - tsv,xls,fa": { "content": [ - "test_netmhc.output.WT.tsv", + "test_netmhcpan.output.WT.tsv", "test.MUT_sequences.fa:md5,118b48df96c7217675b9f9ac14309a25", "test.WT_sequences.fa:md5,bb7dfff23ae47cf64ec4854ee48ec78d" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-12-02T17:14:23.137692552" + "timestamp": "2024-12-17T15:29:06.330489514" }, "netmhcstabandnetmhc3 - tsv,xls,fa": { "content": [ @@ -54,9 +54,9 @@ "test.WT_sequences.fa:md5,7595ed6cf0c98500b00c9ad027125b38" ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-12-02T17:17:01.585453593" + "timestamp": "2024-12-17T15:33:45.014740679" } } \ No newline at end of file From 047a898e201e595cdd19b6f4d47303755cc73d04 Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Date: Wed, 15 Jan 2025 13:50:19 -0500 Subject: [PATCH 03/20] Enable apptainer for singularity testing --- nextflow.config | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nextflow.config b/nextflow.config index 94e5971..41ff50f 100644 --- a/nextflow.config +++ b/nextflow.config @@ -102,7 +102,8 @@ profiles { podman.enabled = false shifter.enabled = false charliecloud.enabled = false - apptainer.enabled = false + apptainer.enabled = true + apptainer.autoMounts = true } podman { podman.enabled = true From 0c1879cd8de07ee59a3d09d9dff90d1de0c47a82 Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Date: Wed, 15 Jan 2025 14:05:29 -0500 Subject: [PATCH 04/20] Template update for nf-core/tools version 3.0.2 --- .nf-core.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.nf-core.yml b/.nf-core.yml index 9a5c55c..ffc189b 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -14,11 +14,12 @@ lint: - docs/images/nf-core-neoantigenpipeline_logo_light.png - docs/images/nf-core-neoantigenpipeline_logo_dark.png - .github/ISSUE_TEMPLATE/bug_report.yml + included_configs: false multiqc_config: - report_comment nextflow_config: false nf_core_version: 3.0.2 -org_path: null +org_path: msk repository_type: pipeline template: author: Nikhil Kumar From cbde2de15b91a9b4c094caea991da5f8c8e1c301 Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Date: Wed, 15 Jan 2025 14:11:54 -0500 Subject: [PATCH 05/20] Make sure our lines are all in order --- .nf-core.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.nf-core.yml b/.nf-core.yml index 4012bf8..ffc189b 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -18,7 +18,6 @@ lint: multiqc_config: - report_comment nextflow_config: false - included_configs: false nf_core_version: 3.0.2 org_path: msk repository_type: pipeline From aa39d3c8aacbcffe22ad2da72073290feab6e6b6 Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Date: Wed, 15 Jan 2025 14:16:54 -0500 Subject: [PATCH 06/20] Template update for nf-core/tools version 3.1.1 --- .editorconfig | 4 + .github/CONTRIBUTING.md | 12 +- .github/workflows/branch.yml | 18 +- .github/workflows/ci.yml | 2 +- .github/workflows/download_pipeline.yml | 49 +-- .github/workflows/fix-linting.yml | 4 +- .github/workflows/linting.yml | 10 +- .github/workflows/linting_comment.yml | 2 +- .../workflows/template_version_comment.yml | 2 +- .gitpod.yml | 11 +- .nf-core.yml | 5 +- .prettierignore | 1 + .vscode/settings.json | 3 + CITATIONS.md | 4 +- LICENSE | 2 +- README.md | 11 +- conf/base.config | 2 +- conf/modules.config | 1 + docs/output.md | 11 +- docs/usage.md | 32 +- modules.json | 8 +- modules/nf-core/fastqc/main.nf | 2 +- modules/nf-core/fastqc/meta.yml | 1 + nextflow.config | 37 ++- nextflow_schema.json | 6 + ro-crate-metadata.json | 311 ++++++++++++++++++ .../main.nf | 5 +- .../nf-core/utils_nextflow_pipeline/main.nf | 2 + .../tests/main.workflow.nf.test | 10 +- .../nf-core/utils_nfcore_pipeline/main.nf | 89 ++--- .../tests/main.function.nf.test | 46 ++- .../tests/main.function.nf.test.snap | 30 -- .../utils_nfschema_plugin/tests/main.nf.test | 4 +- workflows/neoantigenpipeline.nf | 2 +- 34 files changed, 497 insertions(+), 242 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 ro-crate-metadata.json diff --git a/.editorconfig b/.editorconfig index 72dda28..6d9b74c 100644 --- a/.editorconfig +++ b/.editorconfig @@ -31,3 +31,7 @@ indent_size = unset # ignore python and markdown [*.{py,md}] indent_style = unset + +# ignore ro-crate metadata files +[**/ro-crate-metadata.json] +insert_final_newline = unset diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 782771b..d713109 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -1,4 +1,4 @@ -# mskcc/neoantigenpipeline: Contributing Guidelines +# `mskcc/neoantigenpipeline`: Contributing Guidelines Hi there! Many thanks for taking an interest in improving mskcc/neoantigenpipeline. @@ -52,19 +52,19 @@ These tests are run both with the latest available version of `Nextflow` and als :warning: Only in the unlikely and regretful event of a release happening with a bug. -- On your own fork, make a new branch `patch` based on `upstream/master`. +- On your own fork, make a new branch `patch` based on `upstream/main` or `upstream/master`. - Fix the bug, and bump version (X.Y.Z+1). -- A PR should be made on `master` from patch to directly this particular bug. +- Open a pull-request from `patch` to `main`/`master` with the changes. ## Pipeline contribution conventions -To make the mskcc/neoantigenpipeline code and processing logic more understandable for new contributors and to ensure quality, we semi-standardise the way the code and other contributions are written. +To make the `mskcc/neoantigenpipeline` code and processing logic more understandable for new contributors and to ensure quality, we semi-standardise the way the code and other contributions are written. ### Adding a new step If you wish to contribute a new step, please use the following coding standards: -1. Define the corresponding input channel into your new process from the expected previous process channel +1. Define the corresponding input channel into your new process from the expected previous process channel. 2. Write the process block (see below). 3. Define the output channel if needed (see below). 4. Add any new parameters to `nextflow.config` with a default (see below). @@ -77,7 +77,7 @@ If you wish to contribute a new step, please use the following coding standards: ### Default values -Parameters should be initialised / defined with default values in `nextflow.config` under the `params` scope. +Parameters should be initialised / defined with default values within the `params` scope in `nextflow.config`. Once there, use `nf-core pipelines schema build` to add to `nextflow_schema.json`. diff --git a/.github/workflows/branch.yml b/.github/workflows/branch.yml index 1133371..d60d2b1 100644 --- a/.github/workflows/branch.yml +++ b/.github/workflows/branch.yml @@ -1,15 +1,17 @@ name: nf-core branch protection -# This workflow is triggered on PRs to master branch on the repository -# It fails when someone tries to make a PR against the nf-core `master` branch instead of `dev` +# This workflow is triggered on PRs to `main`/`master` branch on the repository +# It fails when someone tries to make a PR against the nf-core `main`/`master` branch instead of `dev` on: pull_request_target: - branches: [master] + branches: + - main + - master jobs: test: runs-on: ubuntu-latest steps: - # PRs to the nf-core repo master branch are only ok if coming from the nf-core repo `dev` or any `patch` branches + # PRs to the nf-core repo main/master branch are only ok if coming from the nf-core repo `dev` or any `patch` branches - name: Check PRs if: github.repository == 'mskcc/neoantigenpipeline' run: | @@ -22,7 +24,7 @@ jobs: uses: mshick/add-pr-comment@b8f338c590a895d50bcbfa6c5859251edc8952fc # v2 with: message: | - ## This PR is against the `master` branch :x: + ## This PR is against the `${{github.event.pull_request.base.ref}}` branch :x: * Do not close this PR * Click _Edit_ and change the `base` to `dev` @@ -32,9 +34,9 @@ jobs: Hi @${{ github.event.pull_request.user.login }}, - It looks like this pull-request is has been made against the [${{github.event.pull_request.head.repo.full_name }}](https://github.com/${{github.event.pull_request.head.repo.full_name }}) `master` branch. - The `master` branch on nf-core repositories should always contain code from the latest release. - Because of this, PRs to `master` are only allowed if they come from the [${{github.event.pull_request.head.repo.full_name }}](https://github.com/${{github.event.pull_request.head.repo.full_name }}) `dev` branch. + It looks like this pull-request is has been made against the [${{github.event.pull_request.head.repo.full_name }}](https://github.com/${{github.event.pull_request.head.repo.full_name }}) ${{github.event.pull_request.base.ref}} branch. + The ${{github.event.pull_request.base.ref}} branch on nf-core repositories should always contain code from the latest release. + Because of this, PRs to ${{github.event.pull_request.base.ref}} are only allowed if they come from the [${{github.event.pull_request.head.repo.full_name }}](https://github.com/${{github.event.pull_request.head.repo.full_name }}) `dev` branch. You do not need to close this PR, you can change the target branch to `dev` by clicking the _"Edit"_ button at the top of this page. Note that even after this, the test will continue to show as failing until you push a new commit. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 06b04b2..6576327 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -45,7 +45,7 @@ jobs: profile: "singularity" steps: - name: Check out pipeline code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: Set up Nextflow uses: nf-core/setup-nextflow@v2 diff --git a/.github/workflows/download_pipeline.yml b/.github/workflows/download_pipeline.yml index 713dc3e..13b51e2 100644 --- a/.github/workflows/download_pipeline.yml +++ b/.github/workflows/download_pipeline.yml @@ -2,7 +2,7 @@ name: Test successful pipeline download with 'nf-core pipelines download' # Run the workflow when: # - dispatched manually -# - when a PR is opened or reopened to master branch +# - when a PR is opened or reopened to main/master branch # - the head branch of the pull request is updated, i.e. if fixes for a release are pushed last minute to dev. on: workflow_dispatch: @@ -17,17 +17,23 @@ on: - edited - synchronize branches: + - main - master pull_request_target: branches: + - main - master env: NXF_ANSI_LOG: false jobs: - download: + configure: runs-on: ubuntu-latest + outputs: + REPO_LOWERCASE: ${{ steps.get_repo_properties.outputs.REPO_LOWERCASE }} + REPOTITLE_LOWERCASE: ${{ steps.get_repo_properties.outputs.REPOTITLE_LOWERCASE }} + REPO_BRANCH: ${{ steps.get_repo_properties.outputs.REPO_BRANCH }} steps: - name: Install Nextflow uses: nf-core/setup-nextflow@v2 @@ -35,7 +41,7 @@ jobs: - name: Disk space cleanup uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 - - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5 with: python-version: "3.12" architecture: "x64" @@ -51,37 +57,42 @@ jobs: pip install git+https://github.com/nf-core/tools.git@dev - name: Get the repository name and current branch set as environment variable + id: get_repo_properties run: | - echo "REPO_LOWERCASE=${GITHUB_REPOSITORY,,}" >> ${GITHUB_ENV} - echo "REPOTITLE_LOWERCASE=$(basename ${GITHUB_REPOSITORY,,})" >> ${GITHUB_ENV} - echo "REPO_BRANCH=${{ github.event.inputs.testbranch || 'dev' }}" >> ${GITHUB_ENV} + echo "REPO_LOWERCASE=${GITHUB_REPOSITORY,,}" >> "$GITHUB_OUTPUT" + echo "REPOTITLE_LOWERCASE=$(basename ${GITHUB_REPOSITORY,,})" >> "$GITHUB_OUTPUT" + echo "REPO_BRANCH=${{ github.event.inputs.testbranch || 'dev' }}" >> "$GITHUB_OUTPUT" - name: Make a cache directory for the container images run: | mkdir -p ./singularity_container_images + download: + runs-on: ubuntu-latest + needs: configure + steps: - name: Download the pipeline env: NXF_SINGULARITY_CACHEDIR: ./singularity_container_images run: | - nf-core pipelines download ${{ env.REPO_LOWERCASE }} \ - --revision ${{ env.REPO_BRANCH }} \ - --outdir ./${{ env.REPOTITLE_LOWERCASE }} \ + nf-core pipelines download ${{ needs.configure.outputs.REPO_LOWERCASE }} \ + --revision ${{ needs.configure.outputs.REPO_BRANCH }} \ + --outdir ./${{ needs.configure.outputs.REPOTITLE_LOWERCASE }} \ --compress "none" \ --container-system 'singularity' \ - --container-library "quay.io" -l "docker.io" -l "community.wave.seqera.io" \ + --container-library "quay.io" -l "docker.io" -l "community.wave.seqera.io/library/" \ --container-cache-utilisation 'amend' \ --download-configuration 'yes' - name: Inspect download - run: tree ./${{ env.REPOTITLE_LOWERCASE }} + run: tree ./${{ needs.configure.outputs.REPOTITLE_LOWERCASE }} - name: Count the downloaded number of container images id: count_initial run: | image_count=$(ls -1 ./singularity_container_images | wc -l | xargs) echo "Initial container image count: $image_count" - echo "IMAGE_COUNT_INITIAL=$image_count" >> ${GITHUB_ENV} + echo "IMAGE_COUNT_INITIAL=$image_count" >> "$GITHUB_OUTPUT" - name: Run the downloaded pipeline (stub) id: stub_run_pipeline @@ -89,27 +100,27 @@ jobs: env: NXF_SINGULARITY_CACHEDIR: ./singularity_container_images NXF_SINGULARITY_HOME_MOUNT: true - run: nextflow run ./${{ env.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ env.REPO_BRANCH }}) -stub -profile test,singularity --outdir ./results + run: nextflow run ./${{needs.configure.outputs.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ needs.configure.outputs.REPO_BRANCH }}) -stub -profile test,singularity --outdir ./results - name: Run the downloaded pipeline (stub run not supported) id: run_pipeline - if: ${{ job.steps.stub_run_pipeline.status == failure() }} + if: ${{ steps.stub_run_pipeline.outcome == 'failure' }} env: NXF_SINGULARITY_CACHEDIR: ./singularity_container_images NXF_SINGULARITY_HOME_MOUNT: true - run: nextflow run ./${{ env.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ env.REPO_BRANCH }}) -profile test,singularity --outdir ./results + run: nextflow run ./${{ needs.configure.outputs.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ needs.configure.outputs.REPO_BRANCH }}) -profile test,singularity --outdir ./results - name: Count the downloaded number of container images id: count_afterwards run: | image_count=$(ls -1 ./singularity_container_images | wc -l | xargs) echo "Post-pipeline run container image count: $image_count" - echo "IMAGE_COUNT_AFTER=$image_count" >> ${GITHUB_ENV} + echo "IMAGE_COUNT_AFTER=$image_count" >> "$GITHUB_OUTPUT" - name: Compare container image counts run: | - if [ "${{ env.IMAGE_COUNT_INITIAL }}" -ne "${{ env.IMAGE_COUNT_AFTER }}" ]; then - initial_count=${{ env.IMAGE_COUNT_INITIAL }} - final_count=${{ env.IMAGE_COUNT_AFTER }} + if [ "${{ steps.count_initial.outputs.IMAGE_COUNT_INITIAL }}" -ne "${{ steps.count_afterwards.outputs.IMAGE_COUNT_AFTER }}" ]; then + initial_count=${{ steps.count_initial.outputs.IMAGE_COUNT_INITIAL }} + final_count=${{ steps.count_afterwards.outputs.IMAGE_COUNT_AFTER }} difference=$((final_count - initial_count)) echo "$difference additional container images were \n downloaded at runtime . The pipeline has no support for offline runs!" tree ./singularity_container_images diff --git a/.github/workflows/fix-linting.yml b/.github/workflows/fix-linting.yml index 1087b5c..1ef6d0c 100644 --- a/.github/workflows/fix-linting.yml +++ b/.github/workflows/fix-linting.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: # Use the @nf-core-bot token to check out so we can push later - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 with: token: ${{ secrets.nf_core_bot_auth_token }} @@ -32,7 +32,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.nf_core_bot_auth_token }} # Install and run pre-commit - - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5 with: python-version: "3.12" diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index a502573..dbd52d5 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -14,10 +14,10 @@ jobs: pre-commit: runs-on: ubuntu-latest steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: Set up Python 3.12 - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5 with: python-version: "3.12" @@ -31,12 +31,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out pipeline code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: Install Nextflow uses: nf-core/setup-nextflow@v2 - - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5 with: python-version: "3.12" architecture: "x64" @@ -74,7 +74,7 @@ jobs: - name: Upload linting log file artifact if: ${{ always() }} - uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4 + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4 with: name: linting-logs path: | diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml index 42e519b..0bed96d 100644 --- a/.github/workflows/linting_comment.yml +++ b/.github/workflows/linting_comment.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Download lint results - uses: dawidd6/action-download-artifact@bf251b5aa9c2f7eeb574a96ee720e24f801b7c11 # v6 + uses: dawidd6/action-download-artifact@80620a5d27ce0ae443b965134db88467fc607b43 # v7 with: workflow: linting.yml workflow_conclusion: completed diff --git a/.github/workflows/template_version_comment.yml b/.github/workflows/template_version_comment.yml index e8aafe4..537529b 100644 --- a/.github/workflows/template_version_comment.yml +++ b/.github/workflows/template_version_comment.yml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out pipeline code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 with: ref: ${{ github.event.pull_request.head.sha }} diff --git a/.gitpod.yml b/.gitpod.yml index 4611863..83599f6 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -6,12 +6,5 @@ tasks: nextflow self-update vscode: - extensions: # based on nf-core.nf-core-extensionpack - #- esbenp.prettier-vscode # Markdown/CommonMark linting and style checking for Visual Studio Code - - EditorConfig.EditorConfig # override user/workspace settings with settings found in .editorconfig files - - Gruntfuggly.todo-tree # Display TODO and FIXME in a tree view in the activity bar - - mechatroner.rainbow-csv # Highlight columns in csv files in different colors - - nextflow.nextflow # Nextflow syntax highlighting - - oderwat.indent-rainbow # Highlight indentation level - - streetsidesoftware.code-spell-checker # Spelling checker for source code - - charliermarsh.ruff # Code linter Ruff + extensions: + - nf-core.nf-core-extensionpack # https://github.com/nf-core/vscode-extensionpack diff --git a/.nf-core.yml b/.nf-core.yml index ffc189b..063aca9 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -1,4 +1,3 @@ -bump_version: null lint: files_exist: - CODE_OF_CONDUCT.md @@ -18,8 +17,7 @@ lint: multiqc_config: - report_comment nextflow_config: false -nf_core_version: 3.0.2 -org_path: msk +nf_core_version: 3.1.1 repository_type: pipeline template: author: Nikhil Kumar @@ -31,4 +29,3 @@ template: outdir: . skip_features: [] version: 1.0.0 -update: null diff --git a/.prettierignore b/.prettierignore index 437d763..edd29f0 100644 --- a/.prettierignore +++ b/.prettierignore @@ -10,3 +10,4 @@ testing/ testing* *.pyc bin/ +ro-crate-metadata.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..a33b527 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "markdown.styles": ["public/vscode_markdown.css"] +} diff --git a/CITATIONS.md b/CITATIONS.md index 69a3272..e111486 100644 --- a/CITATIONS.md +++ b/CITATIONS.md @@ -12,9 +12,7 @@ - [FastQC](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/) -> Andrews, S. (2010). FastQC: A Quality Control Tool for High Throughput Sequence Data [Online]. - -- [MultiQC](https://pubmed.ncbi.nlm.nih.gov/27312411/) +> Andrews, S. (2010). FastQC: A Quality Control Tool for High Throughput Sequence Data [Online].- [MultiQC](https://pubmed.ncbi.nlm.nih.gov/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/LICENSE b/LICENSE index f463703..95832a0 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) Nikhil Kumar +Copyright (c) The mskcc/neoantigenpipeline team Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index b257b15..058eecd 100644 --- a/README.md +++ b/README.md @@ -22,15 +22,12 @@ - - -1. Read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/)) -2. Present QC for raw reads ([`MultiQC`](http://multiqc.info/)) +1. Read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/))2. Present QC for raw reads ([`MultiQC`](http://multiqc.info/)) ## Usage > [!NOTE] -> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) with `-profile test` before running the workflow on actual data. +> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how to set-up Nextflow.Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) with `-profile test` before running the workflow on actual data. - - - + An extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file. diff --git a/conf/base.config b/conf/base.config index 310b234..1c56d3e 100644 --- a/conf/base.config +++ b/conf/base.config @@ -20,7 +20,7 @@ process { maxErrors = '-1' // Process-specific resource requirements - // NOTE - Please try and re-use the labels below as much as possible. + // NOTE - Please try and reuse the labels below as much as possible. // These labels are used and recognised by default in DSL2 files hosted on nf-core/modules. // If possible, it would be nice to keep the same label naming convention when // adding in your local modules too. diff --git a/conf/modules.config b/conf/modules.config index d266a38..d203d2b 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -21,6 +21,7 @@ process { withName: FASTQC { ext.args = '--quiet' } + withName: 'MULTIQC' { ext.args = { params.multiqc_title ? "--title \"$params.multiqc_title\"" : '' } publishDir = [ diff --git a/docs/output.md b/docs/output.md index c02341d..e09dfa5 100644 --- a/docs/output.md +++ b/docs/output.md @@ -12,8 +12,7 @@ The directories listed below will be created in the results directory after the The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes data using the following steps: -- [FastQC](#fastqc) - Raw read QC -- [MultiQC](#multiqc) - Aggregate report describing results and QC from the whole pipeline +- [FastQC](#fastqc) - Raw read QC- [MultiQC](#multiqc) - Aggregate report describing results and QC from the whole pipeline - [Pipeline information](#pipeline-information) - Report metrics generated during the workflow execution ### FastQC @@ -27,9 +26,7 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes d -[FastQC](http://www.bioinformatics.babraham.ac.uk/projects/fastqc/) gives general quality metrics about your sequenced reads. It provides information about the quality score distribution across your reads, per base sequence content (%A/T/G/C), adapter contamination and overrepresented sequences. For further reading and documentation see the [FastQC help pages](http://www.bioinformatics.babraham.ac.uk/projects/fastqc/Help/). - -### MultiQC +[FastQC](http://www.bioinformatics.babraham.ac.uk/projects/fastqc/) gives general quality metrics about your sequenced reads. It provides information about the quality score distribution across your reads, per base sequence content (%A/T/G/C), adapter contamination and overrepresented sequences. For further reading and documentation see the [FastQC help pages](http://www.bioinformatics.babraham.ac.uk/projects/fastqc/Help/).### MultiQC
Output files @@ -43,9 +40,7 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes d [MultiQC](http://multiqc.info) is a visualization tool that generates a single HTML report summarising all samples in your project. Most of the pipeline QC results are visualised in the report and further statistics are available in the report data directory. -Results generated by MultiQC collate pipeline QC from supported tools e.g. FastQC. The pipeline has special steps which also allow the software versions to be reported in the MultiQC output for future traceability. For more information about how to use MultiQC reports, see . - -### Pipeline information +Results generated by MultiQC collate pipeline QC from supported tools e.g. FastQC. The pipeline has special steps which also allow the software versions to be reported in the MultiQC output for future traceability. For more information about how to use MultiQC reports, see .### Pipeline information
Output files diff --git a/docs/usage.md b/docs/usage.md index ce3c54f..ae5560f 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -73,9 +73,8 @@ If you wish to repeatedly use the same parameters for multiple runs, rather than Pipeline settings can be provided in a `yaml` or `json` file via `-params-file `. -:::warning -Do not use `-c ` to specify parameters as this will result in errors. Custom config files specified with `-c` must only be used for [tuning process resource specifications](https://nf-co.re/docs/usage/configuration#tuning-workflow-resources), other infrastructural tweaks (such as output directories), or module arguments (args). -::: +> [!WARNING] +> Do not use `-c ` to specify parameters as this will result in errors. Custom config files specified with `-c` must only be used for [tuning process resource specifications](https://nf-co.re/docs/usage/configuration#tuning-workflow-resources), other infrastructural tweaks (such as output directories), or module arguments (args). The above pipeline run specified with a params file in yaml format: @@ -104,23 +103,21 @@ nextflow pull mskcc/neoantigenpipeline ### Reproducibility -It is a good idea to specify a pipeline version when running the pipeline on your data. This ensures that a specific version of the pipeline code and software are used when you run your pipeline. If you keep using the same tag, you'll be running the same version of the pipeline, even if there have been changes to the code since. +It is a good idea to specify the pipeline version when running the pipeline on your data. This ensures that a specific version of the pipeline code and software are used when you run your pipeline. If you keep using the same tag, you'll be running the same version of the pipeline, even if there have been changes to the code since. First, go to the [mskcc/neoantigenpipeline releases page](https://github.com/mskcc/neoantigenpipeline/releases) and find the latest pipeline version - numeric only (eg. `1.3.1`). Then specify this when running the pipeline with `-r` (one hyphen) - eg. `-r 1.3.1`. Of course, you can switch to another version by changing the number after the `-r` flag. This version number will be logged in reports when you run the pipeline, so that you'll know what you used when you look back in the future. For example, at the bottom of the MultiQC reports. -To further assist in reproducbility, you can use share and re-use [parameter files](#running-the-pipeline) to repeat pipeline runs with the same settings without having to write out a command with every single parameter. +To further assist in reproducibility, you can use share and reuse [parameter files](#running-the-pipeline) to repeat pipeline runs with the same settings without having to write out a command with every single parameter. -:::tip -If you wish to share such profile (such as upload as supplementary material for academic publications), make sure to NOT include cluster specific paths to files, nor institutional specific profiles. -::: +> [!TIP] +> If you wish to share such profile (such as upload as supplementary material for academic publications), make sure to NOT include cluster specific paths to files, nor institutional specific profiles. ## Core Nextflow arguments -:::note -These options are part of Nextflow and use a _single_ hyphen (pipeline parameters use a double-hyphen). -::: +> [!NOTE] +> These options are part of Nextflow and use a _single_ hyphen (pipeline parameters use a double-hyphen) ### `-profile` @@ -128,16 +125,15 @@ Use this parameter to choose a configuration profile. Profiles can give configur Several generic profiles are bundled with the pipeline which instruct the pipeline to use software packaged using different methods (Docker, Singularity, Podman, Shifter, Charliecloud, Apptainer, Conda) - see below. -:::info -We highly recommend the use of Docker or Singularity containers for full pipeline reproducibility, however when this is not possible, Conda is also supported. -::: +> [!IMPORTANT] +> We highly recommend the use of Docker or Singularity containers for full pipeline reproducibility, however when this is not possible, Conda is also supported. -The pipeline also dynamically loads configurations from [https://github.com/nf-core/configs](https://github.com/nf-core/configs) when it runs, making multiple config profiles for various institutional clusters available at run time. For more information and to see if your system is available in these configs please see the [nf-core/configs documentation](https://github.com/nf-core/configs#documentation). +The pipeline also dynamically loads configurations from [https://github.com/nf-core/configs](https://github.com/nf-core/configs) when it runs, making multiple config profiles for various institutional clusters available at run time. For more information and to check if your system is supported, please see the [nf-core/configs documentation](https://github.com/nf-core/configs#documentation). Note that multiple profiles can be loaded, for example: `-profile test,docker` - the order of arguments is important! They are loaded in sequence, so later profiles can overwrite earlier profiles. -If `-profile` is not specified, the pipeline will run locally and expect all software to be installed and available on the `PATH`. This is _not_ recommended, since it can lead to different results on different machines dependent on the computer enviroment. +If `-profile` is not specified, the pipeline will run locally and expect all software to be installed and available on the `PATH`. This is _not_ recommended, since it can lead to different results on different machines dependent on the computer environment. - `test` - A profile with a complete configuration for automated testing @@ -173,13 +169,13 @@ Specify the path to a specific config file (this is a core Nextflow command). Se ### Resource requests -Whilst the default requirements set within the pipeline will hopefully work for most people and with most input data, you may find that you want to customise the compute resources that the pipeline requests. Each step in the pipeline has a default set of requirements for number of CPUs, memory and time. For most of the steps in the pipeline, if the job exits with any of the error codes specified [here](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/conf/base.config#L18) it will automatically be resubmitted with higher requests (2 x original, then 3 x original). If it still fails after the third attempt then the pipeline execution is stopped. +Whilst the default requirements set within the pipeline will hopefully work for most people and with most input data, you may find that you want to customise the compute resources that the pipeline requests. Each step in the pipeline has a default set of requirements for number of CPUs, memory and time. For most of the pipeline steps, if the job exits with any of the error codes specified [here](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/conf/base.config#L18) it will automatically be resubmitted with higher resources request (2 x original, then 3 x original). If it still fails after the third attempt then the pipeline execution is stopped. To change the resource requests, please see the [max resources](https://nf-co.re/docs/usage/configuration#max-resources) and [tuning workflow resources](https://nf-co.re/docs/usage/configuration#tuning-workflow-resources) section of the nf-core website. ### Custom Containers -In some cases you may wish to change which container or conda environment a step of the pipeline uses for a particular tool. By default nf-core pipelines use containers and software from the [biocontainers](https://biocontainers.pro/) or [bioconda](https://bioconda.github.io/) projects. However in some cases the pipeline specified version maybe out of date. +In some cases, you may wish to change the container or conda environment used by a pipeline steps for a particular tool. By default, nf-core pipelines use containers and software from the [biocontainers](https://biocontainers.pro/) or [bioconda](https://bioconda.github.io/) projects. However, in some cases the pipeline specified version maybe out of date. To use a different container from the default container or conda environment specified in a pipeline, please see the [updating tool versions](https://nf-co.re/docs/usage/configuration#updating-tool-versions) section of the nf-core website. diff --git a/modules.json b/modules.json index de59444..6e07ad5 100644 --- a/modules.json +++ b/modules.json @@ -7,7 +7,7 @@ "nf-core": { "fastqc": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "dc94b6ee04a05ddb9f7ae050712ff30a13149164", "installed_by": ["modules"] }, "multiqc": { @@ -21,17 +21,17 @@ "nf-core": { "utils_nextflow_pipeline": { "branch": "master", - "git_sha": "3aa0aec1d52d492fe241919f0c6100ebf0074082", + "git_sha": "c2b22d85f30a706a3073387f30380704fcae013b", "installed_by": ["subworkflows"] }, "utils_nfcore_pipeline": { "branch": "master", - "git_sha": "1b6b9a3338d011367137808b49b923515080e3ba", + "git_sha": "51ae5406a030d4da1e49e4dab49756844fdd6c7a", "installed_by": ["subworkflows"] }, "utils_nfschema_plugin": { "branch": "master", - "git_sha": "bbd5a41f4535a8defafe6080e00ea74c45f4f96c", + "git_sha": "2fd2cd6d0e7b273747f32e465fdc6bcc3ae0814e", "installed_by": ["subworkflows"] } } diff --git a/modules/nf-core/fastqc/main.nf b/modules/nf-core/fastqc/main.nf index d8989f4..752c3a1 100644 --- a/modules/nf-core/fastqc/main.nf +++ b/modules/nf-core/fastqc/main.nf @@ -24,7 +24,7 @@ process FASTQC { // Make list of old name and new name pairs to use for renaming in the bash while loop def old_new_pairs = reads instanceof Path || reads.size() == 1 ? [[ reads, "${prefix}.${reads.extension}" ]] : reads.withIndex().collect { entry, index -> [ entry, "${prefix}_${index + 1}.${entry.extension}" ] } def rename_to = old_new_pairs*.join(' ').join(' ') - def renamed_files = old_new_pairs.collect{ old_name, new_name -> new_name }.join(' ') + def renamed_files = old_new_pairs.collect{ _old_name, new_name -> new_name }.join(' ') // The total amount of allocated RAM by FastQC is equal to the number of threads defined (--threads) time the amount of RAM defined (--memory) // https://github.com/s-andrews/FastQC/blob/1faeea0412093224d7f6a07f777fad60a5650795/fastqc#L211-L222 diff --git a/modules/nf-core/fastqc/meta.yml b/modules/nf-core/fastqc/meta.yml index 4827da7..2b2e62b 100644 --- a/modules/nf-core/fastqc/meta.yml +++ b/modules/nf-core/fastqc/meta.yml @@ -11,6 +11,7 @@ tools: 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/ diff --git a/nextflow.config b/nextflow.config index 2b5b899..ec7891c 100644 --- a/nextflow.config +++ b/nextflow.config @@ -38,8 +38,7 @@ params { show_hidden = false version = false pipelines_testdata_base_path = 'https://raw.githubusercontent.com/nf-core/test-datasets/' - - // Config options + trace_report_suffix = new java.util.Date().format( 'yyyy-MM-dd_HH-mm-ss')// Config options config_profile_name = null config_profile_description = null @@ -153,6 +152,13 @@ profiles { executor.name = 'local' executor.cpus = 4 executor.memory = 8.GB + process { + resourceLimits = [ + memory: 8.GB, + cpus : 4, + time : 1.h + ] + } } test { includeConfig 'conf/test.config' } test_full { includeConfig 'conf/test_full.config' } @@ -201,30 +207,41 @@ set -C # No clobber - prevent output redirection from overwriting files. // Disable process selector warnings by default. Use debug profile to enable warnings. nextflow.enable.configProcessNamesValidation = false -def trace_timestamp = new java.util.Date().format( 'yyyy-MM-dd_HH-mm-ss') timeline { enabled = true - file = "${params.outdir}/pipeline_info/execution_timeline_${trace_timestamp}.html" + file = "${params.outdir}/pipeline_info/execution_timeline_${params.trace_report_suffix}.html" } report { enabled = true - file = "${params.outdir}/pipeline_info/execution_report_${trace_timestamp}.html" + file = "${params.outdir}/pipeline_info/execution_report_${params.trace_report_suffix}.html" } trace { enabled = true - file = "${params.outdir}/pipeline_info/execution_trace_${trace_timestamp}.txt" + file = "${params.outdir}/pipeline_info/execution_trace_${params.trace_report_suffix}.txt" } dag { enabled = true - file = "${params.outdir}/pipeline_info/pipeline_dag_${trace_timestamp}.html" + file = "${params.outdir}/pipeline_info/pipeline_dag_${params.trace_report_suffix}.html" } manifest { name = 'mskcc/neoantigenpipeline' - author = """Nikhil Kumar""" + author = """Nikhil Kumar""" // The author field is deprecated from Nextflow version 24.10.0, use contributors instead + contributors = [ + // TODO nf-core: Update the field with the details of the contributors to your pipeline. New with Nextflow version 24.10.0 + [ + name: 'Nikhil Kumar', + affiliation: '', + email: '', + github: '', + contribution: [], // List of contribution types ('author', 'maintainer' or 'contributor') + orcid: '' + ], + ] homePage = 'https://github.com/mskcc/neoantigenpipeline' description = """Pipeline for computing neoantigen qualities from DNA and RNA-Seq data""" mainScript = 'main.nf' + defaultBranch = 'master' nextflowVersion = '!>=24.04.2' version = '1.0.0' doi = '' @@ -237,12 +254,12 @@ plugins { validation { defaultIgnoreParams = ["genomes"] + monochromeLogs = params.monochrome_logs help { enabled = true - command = "nextflow run $manifest.name -profile --input samplesheet.csv --outdir " + command = "nextflow run mskcc/neoantigenpipeline -profile --input samplesheet.csv --outdir " fullParameter = "help_full" showHiddenParameter = "show_hidden" - } } diff --git a/nextflow_schema.json b/nextflow_schema.json index a63b8a2..69013d0 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -218,6 +218,12 @@ "description": "Base URL or local path to location of pipeline test dataset files", "default": "https://raw.githubusercontent.com/nf-core/test-datasets/", "hidden": true + }, + "trace_report_suffix": { + "type": "string", + "fa_icon": "far calendar", + "description": "Suffix to add to the trace report filename. Default is the date and time in the format yyyy-MM-dd_HH-mm-ss.", + "hidden": true } } } diff --git a/ro-crate-metadata.json b/ro-crate-metadata.json new file mode 100644 index 0000000..4b7162e --- /dev/null +++ b/ro-crate-metadata.json @@ -0,0 +1,311 @@ +{ + "@context": [ + "https://w3id.org/ro/crate/1.1/context", + { + "GithubService": "https://w3id.org/ro/terms/test#GithubService", + "JenkinsService": "https://w3id.org/ro/terms/test#JenkinsService", + "PlanemoEngine": "https://w3id.org/ro/terms/test#PlanemoEngine", + "TestDefinition": "https://w3id.org/ro/terms/test#TestDefinition", + "TestInstance": "https://w3id.org/ro/terms/test#TestInstance", + "TestService": "https://w3id.org/ro/terms/test#TestService", + "TestSuite": "https://w3id.org/ro/terms/test#TestSuite", + "TravisService": "https://w3id.org/ro/terms/test#TravisService", + "definition": "https://w3id.org/ro/terms/test#definition", + "engineVersion": "https://w3id.org/ro/terms/test#engineVersion", + "instance": "https://w3id.org/ro/terms/test#instance", + "resource": "https://w3id.org/ro/terms/test#resource", + "runsOn": "https://w3id.org/ro/terms/test#runsOn" + } + ], + "@graph": [ + { + "@id": "./", + "@type": "Dataset", + "creativeWorkStatus": "Stable", + "datePublished": "2025-01-15T19:16:52+00:00", + "description": "# mskcc/neoantigenpipeline\n\n[![GitHub Actions CI Status](https://github.com/mskcc/neoantigenpipeline/actions/workflows/ci.yml/badge.svg)](https://github.com/mskcc/neoantigenpipeline/actions/workflows/ci.yml)\n[![GitHub Actions Linting Status](https://github.com/mskcc/neoantigenpipeline/actions/workflows/linting.yml/badge.svg)](https://github.com/mskcc/neoantigenpipeline/actions/workflows/linting.yml)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX)\n[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A524.04.2-23aa62.svg)](https://www.nextflow.io/)\n[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/mskcc/neoantigenpipeline)\n\n## Introduction\n\n**mskcc/neoantigenpipeline** is a bioinformatics pipeline that ...\n\n\n\n\n1. Read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/))2. Present QC for raw reads ([`MultiQC`](http://multiqc.info/))\n\n## Usage\n\n> [!NOTE]\n> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how to set-up Nextflow.Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) with `-profile test` before running the workflow on actual data.\n\n\n\nNow, you can run the pipeline using:\n\n\n\n```bash\nnextflow run mskcc/neoantigenpipeline \\\n -profile \\\n --input samplesheet.csv \\\n --outdir \n```\n\n> [!WARNING]\n> Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; see [docs](https://nf-co.re/docs/usage/getting_started/configuration#custom-configuration-files).\n\n## Credits\n\nmskcc/neoantigenpipeline was originally written by Nikhil Kumar.\n\nWe thank the following people for their extensive assistance in the development of this pipeline:\n\n\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](.github/CONTRIBUTING.md).\n\n## Citations\n\n\n\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nThis pipeline uses code and infrastructure developed and maintained by the [nf-core](https://nf-co.re) community, reused here under the [MIT license](https://github.com/nf-core/tools/blob/main/LICENSE).\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n", + "hasPart": [ + { + "@id": "main.nf" + }, + { + "@id": "assets/" + }, + { + "@id": "conf/" + }, + { + "@id": "docs/" + }, + { + "@id": "modules/" + }, + { + "@id": "modules/nf-core/" + }, + { + "@id": "workflows/" + }, + { + "@id": "subworkflows/" + }, + { + "@id": "nextflow.config" + }, + { + "@id": "README.md" + }, + { + "@id": "nextflow_schema.json" + }, + { + "@id": "CHANGELOG.md" + }, + { + "@id": "LICENSE" + }, + { + "@id": "CITATIONS.md" + }, + { + "@id": "modules.json" + }, + { + "@id": "docs/usage.md" + }, + { + "@id": "docs/output.md" + }, + { + "@id": ".nf-core.yml" + }, + { + "@id": ".pre-commit-config.yaml" + }, + { + "@id": ".prettierignore" + } + ], + "isBasedOn": "https://github.com/mskcc/neoantigenpipeline", + "license": "MIT", + "mainEntity": { + "@id": "main.nf" + }, + "mentions": [ + { + "@id": "#b049fce3-a3a4-4771-a7b7-c973ffe60770" + } + ], + "name": "mskcc/neoantigenpipeline" + }, + { + "@id": "ro-crate-metadata.json", + "@type": "CreativeWork", + "about": { + "@id": "./" + }, + "conformsTo": [ + { + "@id": "https://w3id.org/ro/crate/1.1" + }, + { + "@id": "https://w3id.org/workflowhub/workflow-ro-crate/1.0" + } + ] + }, + { + "@id": "main.nf", + "@type": [ + "File", + "SoftwareSourceCode", + "ComputationalWorkflow" + ], + "creator": [ + { + "@id": "#nikhilkumar516@gmail.com" + } + ], + "dateCreated": "", + "dateModified": "2025-01-15T14:16:52Z", + "dct:conformsTo": "https://bioschemas.org/profiles/ComputationalWorkflow/1.0-RELEASE/", + "keywords": [ + "nf-core", + "nextflow" + ], + "license": [ + "MIT" + ], + "maintainer": [ + { + "@id": "#nikhilkumar516@gmail.com" + } + ], + "name": [ + "mskcc/neoantigenpipeline" + ], + "programmingLanguage": { + "@id": "https://w3id.org/workflowhub/workflow-ro-crate#nextflow" + }, + "sdPublisher": { + "@id": "https://nf-co.re/" + }, + "url": [ + "https://github.com/mskcc/neoantigenpipeline", + "https://nf-co.re/mskcc/neoantigenpipeline/1.0.0/" + ], + "version": [ + "1.0.0" + ] + }, + { + "@id": "https://w3id.org/workflowhub/workflow-ro-crate#nextflow", + "@type": "ComputerLanguage", + "identifier": { + "@id": "https://www.nextflow.io/" + }, + "name": "Nextflow", + "url": { + "@id": "https://www.nextflow.io/" + }, + "version": "!>=24.04.2" + }, + { + "@id": "#b049fce3-a3a4-4771-a7b7-c973ffe60770", + "@type": "TestSuite", + "instance": [ + { + "@id": "#547bcff8-c448-4e70-8905-3b3544b3d6ad" + } + ], + "mainEntity": { + "@id": "main.nf" + }, + "name": "Test suite for mskcc/neoantigenpipeline" + }, + { + "@id": "#547bcff8-c448-4e70-8905-3b3544b3d6ad", + "@type": "TestInstance", + "name": "GitHub Actions workflow for testing mskcc/neoantigenpipeline", + "resource": "repos/mskcc/neoantigenpipeline/actions/workflows/ci.yml", + "runsOn": { + "@id": "https://w3id.org/ro/terms/test#GithubService" + }, + "url": "https://api.github.com" + }, + { + "@id": "https://w3id.org/ro/terms/test#GithubService", + "@type": "TestService", + "name": "Github Actions", + "url": { + "@id": "https://github.com" + } + }, + { + "@id": "assets/", + "@type": "Dataset", + "description": "Additional files" + }, + { + "@id": "conf/", + "@type": "Dataset", + "description": "Configuration files" + }, + { + "@id": "docs/", + "@type": "Dataset", + "description": "Markdown files for documenting the pipeline" + }, + { + "@id": "modules/", + "@type": "Dataset", + "description": "Modules used by the pipeline" + }, + { + "@id": "modules/nf-core/", + "@type": "Dataset", + "description": "nf-core modules" + }, + { + "@id": "workflows/", + "@type": "Dataset", + "description": "Main pipeline workflows to be executed in main.nf" + }, + { + "@id": "subworkflows/", + "@type": "Dataset", + "description": "Smaller subworkflows" + }, + { + "@id": "nextflow.config", + "@type": "File", + "description": "Main Nextflow configuration file" + }, + { + "@id": "README.md", + "@type": "File", + "description": "Basic pipeline usage information" + }, + { + "@id": "nextflow_schema.json", + "@type": "File", + "description": "JSON schema for pipeline parameter specification" + }, + { + "@id": "CHANGELOG.md", + "@type": "File", + "description": "Information on changes made to the pipeline" + }, + { + "@id": "LICENSE", + "@type": "File", + "description": "The license - should be MIT" + }, + { + "@id": "CITATIONS.md", + "@type": "File", + "description": "Citations needed when using the pipeline" + }, + { + "@id": "modules.json", + "@type": "File", + "description": "Version information for modules from nf-core/modules" + }, + { + "@id": "docs/usage.md", + "@type": "File", + "description": "Usage documentation" + }, + { + "@id": "docs/output.md", + "@type": "File", + "description": "Output documentation" + }, + { + "@id": ".nf-core.yml", + "@type": "File", + "description": "nf-core configuration file, configuring template features and linting rules" + }, + { + "@id": ".pre-commit-config.yaml", + "@type": "File", + "description": "Configuration file for pre-commit hooks" + }, + { + "@id": ".prettierignore", + "@type": "File", + "description": "Ignore file for prettier" + }, + { + "@id": "https://nf-co.re/", + "@type": "Organization", + "name": "nf-core", + "url": "https://nf-co.re/" + }, + { + "@id": "#nikhilkumar516@gmail.com", + "@type": "Person", + "email": "nikhilkumar516@gmail.com", + "name": "Nikhil Kumar" + } + ] +} \ No newline at end of file diff --git a/subworkflows/local/utils_nfcore_neoantigenpipeline_pipeline/main.nf b/subworkflows/local/utils_nfcore_neoantigenpipeline_pipeline/main.nf index c33922d..d6483aa 100644 --- a/subworkflows/local/utils_nfcore_neoantigenpipeline_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_neoantigenpipeline_pipeline/main.nf @@ -116,6 +116,7 @@ workflow PIPELINE_COMPLETION { main: summary_params = paramsSummaryMap(workflow, parameters_schema: "nextflow_schema.json") + def multiqc_reports = multiqc_report.toList() // // Completion email and summary @@ -129,7 +130,7 @@ workflow PIPELINE_COMPLETION { plaintext_email, outdir, monochrome_logs, - multiqc_report.toList() + multiqc_reports.getVal(), ) } @@ -225,7 +226,7 @@ def toolBibliographyText() { } def methodsDescriptionText(mqc_methods_yaml) { - // Convert to a named map so can be used as with familar NXF ${workflow} variable syntax in the MultiQC YML file + // Convert to a named map so can be used as with familiar NXF ${workflow} variable syntax in the MultiQC YML file def meta = [:] meta.workflow = workflow.toMap() meta["manifest_map"] = workflow.manifest.toMap() diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/main.nf b/subworkflows/nf-core/utils_nextflow_pipeline/main.nf index 0fcbf7b..d6e593e 100644 --- a/subworkflows/nf-core/utils_nextflow_pipeline/main.nf +++ b/subworkflows/nf-core/utils_nextflow_pipeline/main.nf @@ -92,10 +92,12 @@ def checkCondaChannels() { channels = config.channels } catch (NullPointerException e) { + log.debug(e) log.warn("Could not verify conda channel configuration.") return null } catch (IOException e) { + log.debug(e) log.warn("Could not verify conda channel configuration.") return null } diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test index ca964ce..02dbf09 100644 --- a/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test @@ -52,10 +52,12 @@ nextflow_workflow { } then { - assertAll( - { assert workflow.success }, - { assert workflow.stdout.contains("nextflow_workflow v9.9.9") } - ) + expect { + with(workflow) { + assert success + assert "nextflow_workflow v9.9.9" in stdout + } + } } } diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf index 5cb7baf..bfd2587 100644 --- a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf +++ b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf @@ -56,21 +56,6 @@ def checkProfileProvided(nextflow_cli_args) { } } -// -// Citation string for pipeline -// -def workflowCitation() { - def temp_doi_ref = "" - def manifest_doi = workflow.manifest.doi.tokenize(",") - // Handling multiple DOIs - // Removing `https://doi.org/` to handle pipelines using DOIs vs DOI resolvers - // Removing ` ` since the manifest.doi is a string and not a proper list - manifest_doi.each { doi_ref -> - temp_doi_ref += " https://doi.org/${doi_ref.replace('https://doi.org/', '').replace(' ', '')}\n" - } - return "If you use ${workflow.manifest.name} for your analysis please cite:\n\n" + "* The pipeline\n" + temp_doi_ref + "\n" + "* The nf-core framework\n" + " https://doi.org/10.1038/s41587-020-0439-x\n\n" + "* Software dependencies\n" + " https://github.com/${workflow.manifest.name}/blob/master/CITATIONS.md" -} - // // Generate workflow version string // @@ -150,33 +135,6 @@ def paramsSummaryMultiqc(summary_params) { return yaml_file_text } -// -// nf-core logo -// -def nfCoreLogo(monochrome_logs=true) { - def colors = logColours(monochrome_logs) as Map - String.format( - """\n - ${dashedLine(monochrome_logs)} - ${colors.green},--.${colors.black}/${colors.green},-.${colors.reset} - ${colors.blue} ___ __ __ __ ___ ${colors.green}/,-._.--~\'${colors.reset} - ${colors.blue} |\\ | |__ __ / ` / \\ |__) |__ ${colors.yellow}} {${colors.reset} - ${colors.blue} | \\| | \\__, \\__/ | \\ |___ ${colors.green}\\`-._,-`-,${colors.reset} - ${colors.green}`._,._,\'${colors.reset} - ${colors.purple} ${workflow.manifest.name} ${getWorkflowVersion()}${colors.reset} - ${dashedLine(monochrome_logs)} - """.stripIndent() - ) -} - -// -// Return dashed line -// -def dashedLine(monochrome_logs=true) { - def colors = logColours(monochrome_logs) as Map - return "-${colors.dim}----------------------------------------------------${colors.reset}-" -} - // // ANSII colours used for terminal logging // @@ -245,28 +203,24 @@ def logColours(monochrome_logs=true) { return colorcodes } -// -// Attach the multiqc report to email -// -def attachMultiqcReport(multiqc_report) { - def mqc_report = null - try { - if (workflow.success) { - mqc_report = multiqc_report.getVal() - if (mqc_report.getClass() == ArrayList && mqc_report.size() >= 1) { - if (mqc_report.size() > 1) { - log.warn("[${workflow.manifest.name}] Found multiple reports from process 'MULTIQC', will use only one") - } - mqc_report = mqc_report[0] - } +// Return a single report from an object that may be a Path or List +// +def getSingleReport(multiqc_reports) { + if (multiqc_reports instanceof Path) { + return multiqc_reports + } else if (multiqc_reports instanceof List) { + if (multiqc_reports.size() == 0) { + log.warn("[${workflow.manifest.name}] No reports found from process 'MULTIQC'") + return null + } else if (multiqc_reports.size() == 1) { + return multiqc_reports.first() + } else { + log.warn("[${workflow.manifest.name}] Found multiple reports from process 'MULTIQC', will use only one") + return multiqc_reports.first() } + } else { + return null } - catch (Exception all) { - if (multiqc_report) { - log.warn("[${workflow.manifest.name}] Could not attach MultiQC report to summary email") - } - } - return mqc_report } // @@ -320,7 +274,7 @@ def completionEmail(summary_params, email, email_on_fail, plaintext_email, outdi email_fields['summary'] = summary << misc_fields // On success try attach the multiqc report - def mqc_report = attachMultiqcReport(multiqc_report) + def mqc_report = getSingleReport(multiqc_report) // Check if we are only sending emails on failure def email_address = email @@ -340,7 +294,7 @@ def completionEmail(summary_params, email, email_on_fail, plaintext_email, outdi def email_html = html_template.toString() // Render the sendmail template - def max_multiqc_email_size = (params.containsKey('max_multiqc_email_size') ? params.max_multiqc_email_size : 0) as nextflow.util.MemoryUnit + def max_multiqc_email_size = (params.containsKey('max_multiqc_email_size') ? params.max_multiqc_email_size : 0) as MemoryUnit def smail_fields = [email: email_address, subject: subject, email_txt: email_txt, email_html: email_html, projectDir: "${workflow.projectDir}", mqcFile: mqc_report, mqcMaxSize: max_multiqc_email_size.toBytes()] def sf = new File("${workflow.projectDir}/assets/sendmail_template.txt") def sendmail_template = engine.createTemplate(sf).make(smail_fields) @@ -351,14 +305,17 @@ def completionEmail(summary_params, email, email_on_fail, plaintext_email, outdi if (email_address) { try { if (plaintext_email) { -new org.codehaus.groovy.GroovyException('Send plaintext e-mail, not HTML') } + new org.codehaus.groovy.GroovyException('Send plaintext e-mail, not HTML') + } // Try to send HTML e-mail using sendmail def sendmail_tf = new File(workflow.launchDir.toString(), ".sendmail_tmp.html") sendmail_tf.withWriter { w -> w << sendmail_html } ['sendmail', '-t'].execute() << sendmail_html log.info("-${colors.purple}[${workflow.manifest.name}]${colors.green} Sent summary e-mail to ${email_address} (sendmail)-") } - catch (Exception all) { + catch (Exception msg) { + log.debug(msg.toString()) + log.debug("Trying with mail instead of sendmail") // Catch failures and try with plaintext def mail_cmd = ['mail', '-s', subject, '--content-type=text/html', email_address] mail_cmd.execute() << email_html diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test index 1dc317f..f117040 100644 --- a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test @@ -41,26 +41,14 @@ nextflow_function { } } - test("Test Function workflowCitation") { - - function "workflowCitation" - - then { - assertAll( - { assert function.success }, - { assert snapshot(function.result).match() } - ) - } - } - - test("Test Function nfCoreLogo") { + test("Test Function without logColours") { - function "nfCoreLogo" + function "logColours" when { function { """ - input[0] = false + input[0] = true """ } } @@ -73,9 +61,8 @@ nextflow_function { } } - test("Test Function dashedLine") { - - function "dashedLine" + test("Test Function with logColours") { + function "logColours" when { function { @@ -93,14 +80,13 @@ nextflow_function { } } - test("Test Function without logColours") { - - function "logColours" + test("Test Function getSingleReport with a single file") { + function "getSingleReport" when { function { """ - input[0] = true + input[0] = file(params.modules_testdata_base_path + '/generic/tsv/test.tsv', checkIfExists: true) """ } } @@ -108,18 +94,22 @@ nextflow_function { then { assertAll( { assert function.success }, - { assert snapshot(function.result).match() } + { assert function.result.contains("test.tsv") } ) } } - test("Test Function with logColours") { - function "logColours" + test("Test Function getSingleReport with multiple files") { + function "getSingleReport" when { function { """ - input[0] = false + input[0] = [ + file(params.modules_testdata_base_path + '/generic/tsv/test.tsv', checkIfExists: true), + file(params.modules_testdata_base_path + '/generic/tsv/network.tsv', checkIfExists: true), + file(params.modules_testdata_base_path + '/generic/tsv/expression.tsv', checkIfExists: true) + ] """ } } @@ -127,7 +117,9 @@ nextflow_function { then { assertAll( { assert function.success }, - { assert snapshot(function.result).match() } + { assert function.result.contains("test.tsv") }, + { assert !function.result.contains("network.tsv") }, + { assert !function.result.contains("expression.tsv") } ) } } diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap index 1037232..02c6701 100644 --- a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap @@ -17,26 +17,6 @@ }, "timestamp": "2024-02-28T12:02:59.729647" }, - "Test Function nfCoreLogo": { - "content": [ - "\n\n-\u001b[2m----------------------------------------------------\u001b[0m-\n \u001b[0;32m,--.\u001b[0;30m/\u001b[0;32m,-.\u001b[0m\n\u001b[0;34m ___ __ __ __ ___ \u001b[0;32m/,-._.--~'\u001b[0m\n\u001b[0;34m |\\ | |__ __ / ` / \\ |__) |__ \u001b[0;33m} {\u001b[0m\n\u001b[0;34m | \\| | \\__, \\__/ | \\ |___ \u001b[0;32m\\`-._,-`-,\u001b[0m\n \u001b[0;32m`._,._,'\u001b[0m\n\u001b[0;35m nextflow_workflow v9.9.9\u001b[0m\n-\u001b[2m----------------------------------------------------\u001b[0m-\n" - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-02-28T12:03:10.562934" - }, - "Test Function workflowCitation": { - "content": [ - "If you use nextflow_workflow for your analysis please cite:\n\n* The pipeline\n https://doi.org/10.5281/zenodo.5070524\n\n* The nf-core framework\n https://doi.org/10.1038/s41587-020-0439-x\n\n* Software dependencies\n https://github.com/nextflow_workflow/blob/master/CITATIONS.md" - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-02-28T12:03:07.019761" - }, "Test Function without logColours": { "content": [ { @@ -95,16 +75,6 @@ }, "timestamp": "2024-02-28T12:03:17.969323" }, - "Test Function dashedLine": { - "content": [ - "-\u001b[2m----------------------------------------------------\u001b[0m-" - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-02-28T12:03:14.366181" - }, "Test Function with logColours": { "content": [ { diff --git a/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test b/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test index 842dc43..8fb3016 100644 --- a/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test +++ b/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test @@ -42,7 +42,7 @@ nextflow_workflow { params { test_data = '' - outdir = 1 + outdir = null } workflow { @@ -94,7 +94,7 @@ nextflow_workflow { params { test_data = '' - outdir = 1 + outdir = null } workflow { diff --git a/workflows/neoantigenpipeline.nf b/workflows/neoantigenpipeline.nf index 7076894..66238c9 100644 --- a/workflows/neoantigenpipeline.nf +++ b/workflows/neoantigenpipeline.nf @@ -39,7 +39,7 @@ workflow NEOANTIGENPIPELINE { softwareVersionsToYAML(ch_versions) .collectFile( storeDir: "${params.outdir}/pipeline_info", - name: '' + 'pipeline_software_' + 'mqc_' + 'versions.yml', + name: 'neoantigenpipeline_software_' + 'mqc_' + 'versions.yml', sort: true, newLine: true ).set { ch_collated_versions } From 44230fbf9d24d9f17d773b9b1b2e763ba063e803 Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Date: Wed, 15 Jan 2025 14:35:49 -0500 Subject: [PATCH 07/20] Fix merge of modules config --- conf/modules.config | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index 3ff104b..3d7fb26 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -17,22 +17,8 @@ process { saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] -<<<<<<< HEAD withName: 'PHYLOWGS_PARSECNVS' { ext.args = '-f facets' -======= - withName: FASTQC { - ext.args = '--quiet' - } - - withName: 'MULTIQC' { - ext.args = { params.multiqc_title ? "--title \"$params.multiqc_title\"" : '' } - publishDir = [ - path: { "${params.outdir}/multiqc" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] ->>>>>>> TEMPLATE } withName: 'PHYLOWGS_MULTIEVOLVE' { From 5c3de3936d680b6ba0290a89370581fde1c5770c Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Date: Wed, 15 Jan 2025 14:37:15 -0500 Subject: [PATCH 08/20] Add singularity back for master testing --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7132ed0..3f59821 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,6 +32,7 @@ jobs: - "latest-everything" profile: - "docker" + - "singularity" test_name: - "test" isMaster: From 3c4eb59dd23cf14cc5cab7931f325f9a20327bba Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Date: Wed, 15 Jan 2025 14:42:16 -0500 Subject: [PATCH 09/20] =?UTF-8?q?Made=20modules=20json=20prettier=20?= =?UTF-8?q?=F0=9F=8C=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules.json | 96 ++++++++++++---------------------------------------- 1 file changed, 22 insertions(+), 74 deletions(-) diff --git a/modules.json b/modules.json index 63ca1a6..746fd1e 100644 --- a/modules.json +++ b/modules.json @@ -8,115 +8,77 @@ "neoantigenediting/aligntoiedb": { "branch": "develop", "git_sha": "34505c4c67eabebab927561d3a8fca87c9efe788", - "installed_by": [ - "modules", - "neoantigen_editing" - ] + "installed_by": ["modules", "neoantigen_editing"] }, "neoantigenediting/computefitness": { "branch": "develop", "git_sha": "05e49188ee9407e1b51dfb1a49d8b6133e9276bc", - "installed_by": [ - "modules", - "neoantigen_editing" - ] + "installed_by": ["modules", "neoantigen_editing"] }, "neoantigenutils/convertannotjson": { "branch": "develop", "git_sha": "34505c4c67eabebab927561d3a8fca87c9efe788", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "neoantigenutils/formatnetmhcpan": { "branch": "develop", "git_sha": "939507da8ef974fa8b9f53abd5f9d54492bafab0", - "installed_by": [ - "modules", - "netmhcstabandpan" - ] + "installed_by": ["modules", "netmhcstabandpan"] }, "neoantigenutils/generatehlastring": { "branch": "develop", "git_sha": "34505c4c67eabebab927561d3a8fca87c9efe788", - "installed_by": [ - "modules", - "netmhcstabandpan" - ] + "installed_by": ["modules", "netmhcstabandpan"] }, "neoantigenutils/generatemutfasta": { "branch": "develop", "git_sha": "e6bbb12a2dc237b9ea18163e96dbe9d780ddce5f", - "installed_by": [ - "modules", - "netmhcstabandpan" - ] + "installed_by": ["modules", "netmhcstabandpan"] }, "neoantigenutils/neoantigeninput": { "branch": "develop", "git_sha": "003587a171d6cfa80bc894950d212add9f206f88", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "netmhc3": { "branch": "develop", "git_sha": "0ccb264740ff8fe681f0e298133e52e51bf68994", - "installed_by": [ - "modules", - "netmhcstabandpan" - ] + "installed_by": ["modules", "netmhcstabandpan"] }, "netmhcpan": { "branch": "main", "git_sha": "503abeb67260f060d8228221b07d743aa4180345", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "netmhcpan4": { "branch": "develop", "git_sha": "9e23d0e98023dec8b7a9b0faa20eea2f1f9cee3f", - "installed_by": [ - "modules", - "netmhcstabandpan" - ] + "installed_by": ["modules", "netmhcstabandpan"] }, "netmhcstabpan": { "branch": "develop", "git_sha": "0ccb264740ff8fe681f0e298133e52e51bf68994", - "installed_by": [ - "modules", - "netmhcstabandpan" - ] + "installed_by": ["modules", "netmhcstabandpan"] }, "phylowgs/createinput": { "branch": "develop", "git_sha": "05e49188ee9407e1b51dfb1a49d8b6133e9276bc", - "installed_by": [ - "phylowgs" - ] + "installed_by": ["phylowgs"] }, "phylowgs/multievolve": { "branch": "develop", "git_sha": "980c1328a92a6cc547834ccc361c5187d0927944", - "installed_by": [ - "phylowgs" - ] + "installed_by": ["phylowgs"] }, "phylowgs/parsecnvs": { "branch": "develop", "git_sha": "34505c4c67eabebab927561d3a8fca87c9efe788", - "installed_by": [ - "phylowgs" - ] + "installed_by": ["phylowgs"] }, "phylowgs/writeresults": { "branch": "develop", "git_sha": "34505c4c67eabebab927561d3a8fca87c9efe788", - "installed_by": [ - "phylowgs" - ] + "installed_by": ["phylowgs"] } } }, @@ -125,23 +87,17 @@ "neoantigen_editing": { "branch": "develop", "git_sha": "56a628201401866096d6307b9e8c690c5eb46ac2", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "netmhcstabandpan": { "branch": "develop", "git_sha": "848ad2b5cffd9a4bd15a628cfe59aba93807a252", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "phylowgs": { "branch": "develop", "git_sha": "a5d61394af346f21ee2eb7ecfd97ab25bdbd1d0e", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] } } } @@ -152,9 +108,7 @@ "multiqc": { "branch": "master", "git_sha": "f80914f78fb7fa1c00b14cfeb29575ee12240d9c", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] } } }, @@ -163,23 +117,17 @@ "utils_nextflow_pipeline": { "branch": "master", "git_sha": "c2b22d85f30a706a3073387f30380704fcae013b", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "utils_nfcore_pipeline": { "branch": "master", "git_sha": "51ae5406a030d4da1e49e4dab49756844fdd6c7a", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "utils_nfschema_plugin": { "branch": "master", "git_sha": "2fd2cd6d0e7b273747f32e465fdc6bcc3ae0814e", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] } } } From 93c27ee7e7983bf9b36bd986ef2a53425e6c5740 Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Date: Wed, 15 Jan 2025 14:42:51 -0500 Subject: [PATCH 10/20] Minimum nextflow version does not need to be latest --- nextflow.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nextflow.config b/nextflow.config index 34bba7e..fd5aec2 100644 --- a/nextflow.config +++ b/nextflow.config @@ -245,7 +245,7 @@ manifest { description = '''Pipeline for computing neoantigen qualities from DNA and RNA-Seq data''' mainScript = 'main.nf' defaultBranch = 'master' - nextflowVersion = '!>=24.04.2' + nextflowVersion = '!>=24.04.0' version = '1.1.1' doi = '' } From 82c82470faf2903ecfceb41c4a4efb1276784424 Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Date: Wed, 15 Jan 2025 14:48:18 -0500 Subject: [PATCH 11/20] Allow us to set which files run through prettier --- .nf-core.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.nf-core.yml b/.nf-core.yml index 063aca9..f53d39f 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -13,6 +13,7 @@ lint: - docs/images/nf-core-neoantigenpipeline_logo_light.png - docs/images/nf-core-neoantigenpipeline_logo_dark.png - .github/ISSUE_TEMPLATE/bug_report.yml + - .prettierignore included_configs: false multiqc_config: - report_comment From bbb283587a2196a5fe75dfb7eb368e2f08fa4a68 Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Date: Thu, 16 Jan 2025 16:03:08 -0500 Subject: [PATCH 12/20] Template update for nf-core/tools version 3.1.2.dev0 --- .github/workflows/ci.yml | 2 ++ .github/workflows/download_pipeline.yml | 28 ++++++++++++++----------- .nf-core.yml | 3 ++- conf/test.config | 4 +--- nextflow.config | 2 +- ro-crate-metadata.json | 12 +++++------ 6 files changed, 28 insertions(+), 23 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6576327..75e5050 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,6 +46,8 @@ jobs: steps: - name: Check out pipeline code uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + with: + fetch-depth: 0 - name: Set up Nextflow uses: nf-core/setup-nextflow@v2 diff --git a/.github/workflows/download_pipeline.yml b/.github/workflows/download_pipeline.yml index 13b51e2..ab06316 100644 --- a/.github/workflows/download_pipeline.yml +++ b/.github/workflows/download_pipeline.yml @@ -34,6 +34,17 @@ jobs: REPO_LOWERCASE: ${{ steps.get_repo_properties.outputs.REPO_LOWERCASE }} REPOTITLE_LOWERCASE: ${{ steps.get_repo_properties.outputs.REPOTITLE_LOWERCASE }} REPO_BRANCH: ${{ steps.get_repo_properties.outputs.REPO_BRANCH }} + steps: + - name: Get the repository name and current branch + id: get_repo_properties + run: | + echo "REPO_LOWERCASE=${GITHUB_REPOSITORY,,}" >> "$GITHUB_OUTPUT" + echo "REPOTITLE_LOWERCASE=$(basename ${GITHUB_REPOSITORY,,})" >> "$GITHUB_OUTPUT" + echo "REPO_BRANCH=${{ github.event.inputs.testbranch || 'dev' }}" >> "$GITHUB_OUTPUT" + + download: + runs-on: ubuntu-latest + needs: configure steps: - name: Install Nextflow uses: nf-core/setup-nextflow@v2 @@ -56,21 +67,10 @@ jobs: python -m pip install --upgrade pip pip install git+https://github.com/nf-core/tools.git@dev - - name: Get the repository name and current branch set as environment variable - id: get_repo_properties - run: | - echo "REPO_LOWERCASE=${GITHUB_REPOSITORY,,}" >> "$GITHUB_OUTPUT" - echo "REPOTITLE_LOWERCASE=$(basename ${GITHUB_REPOSITORY,,})" >> "$GITHUB_OUTPUT" - echo "REPO_BRANCH=${{ github.event.inputs.testbranch || 'dev' }}" >> "$GITHUB_OUTPUT" - - name: Make a cache directory for the container images run: | mkdir -p ./singularity_container_images - download: - runs-on: ubuntu-latest - needs: configure - steps: - name: Download the pipeline env: NXF_SINGULARITY_CACHEDIR: ./singularity_container_images @@ -87,6 +87,9 @@ jobs: - name: Inspect download run: tree ./${{ needs.configure.outputs.REPOTITLE_LOWERCASE }} + - name: Inspect container images + run: tree ./singularity_container_images | tee ./container_initial + - name: Count the downloaded number of container images id: count_initial run: | @@ -123,7 +126,8 @@ jobs: final_count=${{ steps.count_afterwards.outputs.IMAGE_COUNT_AFTER }} difference=$((final_count - initial_count)) echo "$difference additional container images were \n downloaded at runtime . The pipeline has no support for offline runs!" - tree ./singularity_container_images + tree ./singularity_container_images > ./container_afterwards + diff ./container_initial ./container_afterwards exit 1 else echo "The pipeline can be downloaded successfully!" diff --git a/.nf-core.yml b/.nf-core.yml index 063aca9..fa1a47a 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -13,11 +13,12 @@ lint: - docs/images/nf-core-neoantigenpipeline_logo_light.png - docs/images/nf-core-neoantigenpipeline_logo_dark.png - .github/ISSUE_TEMPLATE/bug_report.yml + - .prettierignore included_configs: false multiqc_config: - report_comment nextflow_config: false -nf_core_version: 3.1.1 +nf_core_version: 3.1.2.dev0 repository_type: pipeline template: author: Nikhil Kumar diff --git a/conf/test.config b/conf/test.config index ce796e4..867fc03 100644 --- a/conf/test.config +++ b/conf/test.config @@ -25,8 +25,6 @@ params { // Input data // TODO nf-core: Specify the paths to your test data on nf-core/test-datasets // TODO nf-core: Give any required params for the test so that command line flags are not needed - input = params.pipelines_testdata_base_path + 'viralrecon/samplesheet/samplesheet_test_illumina_amplicon.csv' - - // Genome references + input = params.pipelines_testdata_base_path + 'viralrecon/samplesheet/samplesheet_test_illumina_amplicon.csv'// Genome references genome = 'R64-1-1' } diff --git a/nextflow.config b/nextflow.config index ec7891c..dfa44b8 100644 --- a/nextflow.config +++ b/nextflow.config @@ -249,7 +249,7 @@ manifest { // Nextflow plugins plugins { - id 'nf-schema@2.1.1' // Validation of pipeline parameters and creation of an input channel from a sample sheet + id 'nf-schema@2.3.0' // Validation of pipeline parameters and creation of an input channel from a sample sheet } validation { diff --git a/ro-crate-metadata.json b/ro-crate-metadata.json index 4b7162e..96734bc 100644 --- a/ro-crate-metadata.json +++ b/ro-crate-metadata.json @@ -22,7 +22,7 @@ "@id": "./", "@type": "Dataset", "creativeWorkStatus": "Stable", - "datePublished": "2025-01-15T19:16:52+00:00", + "datePublished": "2025-01-16T21:03:04+00:00", "description": "# mskcc/neoantigenpipeline\n\n[![GitHub Actions CI Status](https://github.com/mskcc/neoantigenpipeline/actions/workflows/ci.yml/badge.svg)](https://github.com/mskcc/neoantigenpipeline/actions/workflows/ci.yml)\n[![GitHub Actions Linting Status](https://github.com/mskcc/neoantigenpipeline/actions/workflows/linting.yml/badge.svg)](https://github.com/mskcc/neoantigenpipeline/actions/workflows/linting.yml)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX)\n[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A524.04.2-23aa62.svg)](https://www.nextflow.io/)\n[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/mskcc/neoantigenpipeline)\n\n## Introduction\n\n**mskcc/neoantigenpipeline** is a bioinformatics pipeline that ...\n\n\n\n\n1. Read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/))2. Present QC for raw reads ([`MultiQC`](http://multiqc.info/))\n\n## Usage\n\n> [!NOTE]\n> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how to set-up Nextflow.Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) with `-profile test` before running the workflow on actual data.\n\n\n\nNow, you can run the pipeline using:\n\n\n\n```bash\nnextflow run mskcc/neoantigenpipeline \\\n -profile \\\n --input samplesheet.csv \\\n --outdir \n```\n\n> [!WARNING]\n> Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; see [docs](https://nf-co.re/docs/usage/getting_started/configuration#custom-configuration-files).\n\n## Credits\n\nmskcc/neoantigenpipeline was originally written by Nikhil Kumar.\n\nWe thank the following people for their extensive assistance in the development of this pipeline:\n\n\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](.github/CONTRIBUTING.md).\n\n## Citations\n\n\n\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nThis pipeline uses code and infrastructure developed and maintained by the [nf-core](https://nf-co.re) community, reused here under the [MIT license](https://github.com/nf-core/tools/blob/main/LICENSE).\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n", "hasPart": [ { @@ -93,7 +93,7 @@ }, "mentions": [ { - "@id": "#b049fce3-a3a4-4771-a7b7-c973ffe60770" + "@id": "#236d940a-1075-4ab1-b7a8-ca30271e15af" } ], "name": "mskcc/neoantigenpipeline" @@ -126,7 +126,7 @@ } ], "dateCreated": "", - "dateModified": "2025-01-15T14:16:52Z", + "dateModified": "2025-01-16T16:03:04Z", "dct:conformsTo": "https://bioschemas.org/profiles/ComputationalWorkflow/1.0-RELEASE/", "keywords": [ "nf-core", @@ -170,11 +170,11 @@ "version": "!>=24.04.2" }, { - "@id": "#b049fce3-a3a4-4771-a7b7-c973ffe60770", + "@id": "#236d940a-1075-4ab1-b7a8-ca30271e15af", "@type": "TestSuite", "instance": [ { - "@id": "#547bcff8-c448-4e70-8905-3b3544b3d6ad" + "@id": "#9b413919-845b-4f3e-afd5-09cde681f203" } ], "mainEntity": { @@ -183,7 +183,7 @@ "name": "Test suite for mskcc/neoantigenpipeline" }, { - "@id": "#547bcff8-c448-4e70-8905-3b3544b3d6ad", + "@id": "#9b413919-845b-4f3e-afd5-09cde681f203", "@type": "TestInstance", "name": "GitHub Actions workflow for testing mskcc/neoantigenpipeline", "resource": "repos/mskcc/neoantigenpipeline/actions/workflows/ci.yml", From 7f172e77f1d12331af8e93d20b3e4835b9ae5fb2 Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Date: Thu, 16 Jan 2025 16:12:44 -0500 Subject: [PATCH 13/20] Set nf-core version to latest and allow updated template --- .nf-core.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.nf-core.yml b/.nf-core.yml index fa1a47a..1b09c9d 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -13,12 +13,13 @@ lint: - docs/images/nf-core-neoantigenpipeline_logo_light.png - docs/images/nf-core-neoantigenpipeline_logo_dark.png - .github/ISSUE_TEMPLATE/bug_report.yml + - .github/workflows/download_pipeline.yml # temporary until 3.1.2 is released with the bug fix - .prettierignore included_configs: false multiqc_config: - report_comment nextflow_config: false -nf_core_version: 3.1.2.dev0 +nf_core_version: 3.1.1 repository_type: pipeline template: author: Nikhil Kumar From 740c24a55a7fdb3b8f1fbe45fe7acd2916247939 Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Date: Thu, 16 Jan 2025 16:26:17 -0500 Subject: [PATCH 14/20] Removed apptainer enabled on a singularity profile --- nextflow.config | 2 -- 1 file changed, 2 deletions(-) diff --git a/nextflow.config b/nextflow.config index f0fa26f..7809d22 100644 --- a/nextflow.config +++ b/nextflow.config @@ -101,8 +101,6 @@ profiles { podman.enabled = false shifter.enabled = false charliecloud.enabled = false - apptainer.enabled = true - apptainer.autoMounts = true } podman { podman.enabled = true From 13341f16f7dcbaf44e4d11ec55056f7d86131620 Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Date: Thu, 16 Jan 2025 16:57:53 -0500 Subject: [PATCH 15/20] Try downloading the pipeline without unnecessary configs --- .github/workflows/download_pipeline.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/download_pipeline.yml b/.github/workflows/download_pipeline.yml index ab06316..5baa9be 100644 --- a/.github/workflows/download_pipeline.yml +++ b/.github/workflows/download_pipeline.yml @@ -81,8 +81,7 @@ jobs: --compress "none" \ --container-system 'singularity' \ --container-library "quay.io" -l "docker.io" -l "community.wave.seqera.io/library/" \ - --container-cache-utilisation 'amend' \ - --download-configuration 'yes' + --container-cache-utilisation 'amend' - name: Inspect download run: tree ./${{ needs.configure.outputs.REPOTITLE_LOWERCASE }} From 008c21ce76327cb66368622b72235f91159a9e43 Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Date: Thu, 16 Jan 2025 18:17:43 -0500 Subject: [PATCH 16/20] Revert "Try downloading the pipeline without unnecessary configs" This reverts commit 13341f16f7dcbaf44e4d11ec55056f7d86131620. --- .github/workflows/download_pipeline.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/download_pipeline.yml b/.github/workflows/download_pipeline.yml index 5baa9be..ab06316 100644 --- a/.github/workflows/download_pipeline.yml +++ b/.github/workflows/download_pipeline.yml @@ -81,7 +81,8 @@ jobs: --compress "none" \ --container-system 'singularity' \ --container-library "quay.io" -l "docker.io" -l "community.wave.seqera.io/library/" \ - --container-cache-utilisation 'amend' + --container-cache-utilisation 'amend' \ + --download-configuration 'yes' - name: Inspect download run: tree ./${{ needs.configure.outputs.REPOTITLE_LOWERCASE }} From 8b8e7908431d24e6d1e884d5ceae6e59ef6fe464 Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Date: Thu, 16 Jan 2025 18:18:20 -0500 Subject: [PATCH 17/20] Disable apptainer in singularity --- nextflow.config | 1 + 1 file changed, 1 insertion(+) diff --git a/nextflow.config b/nextflow.config index 7809d22..5e3dbf8 100644 --- a/nextflow.config +++ b/nextflow.config @@ -101,6 +101,7 @@ profiles { podman.enabled = false shifter.enabled = false charliecloud.enabled = false + apptainer.enabled = false } podman { podman.enabled = true From 1c1e97c0742a84ec3e6954a2df51ea9d3e70f808 Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Date: Thu, 23 Jan 2025 13:29:06 -0500 Subject: [PATCH 18/20] Template update for nf-core/tools version 3.1.2 --- .nf-core.yml | 3 ++- CITATIONS.md | 4 +++- README.md | 6 ++++-- ro-crate-metadata.json | 14 +++++++------- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/.nf-core.yml b/.nf-core.yml index fa1a47a..03697a5 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -13,12 +13,13 @@ lint: - docs/images/nf-core-neoantigenpipeline_logo_light.png - docs/images/nf-core-neoantigenpipeline_logo_dark.png - .github/ISSUE_TEMPLATE/bug_report.yml + - .github/workflows/download_pipeline.yml - .prettierignore included_configs: false multiqc_config: - report_comment nextflow_config: false -nf_core_version: 3.1.2.dev0 +nf_core_version: 3.1.2 repository_type: pipeline template: author: Nikhil Kumar diff --git a/CITATIONS.md b/CITATIONS.md index e111486..69a3272 100644 --- a/CITATIONS.md +++ b/CITATIONS.md @@ -12,7 +12,9 @@ - [FastQC](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/) -> Andrews, S. (2010). FastQC: A Quality Control Tool for High Throughput Sequence Data [Online].- [MultiQC](https://pubmed.ncbi.nlm.nih.gov/27312411/) +> Andrews, S. (2010). FastQC: A Quality Control Tool for High Throughput Sequence Data [Online]. + +- [MultiQC](https://pubmed.ncbi.nlm.nih.gov/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/README.md b/README.md index 058eecd..5ddadec 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ ## Usage > [!NOTE] -> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how to set-up Nextflow.Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) with `-profile test` before running the workflow on actual data. +> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) with `-profile test` before running the workflow on actual data. - + + + An extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file. diff --git a/ro-crate-metadata.json b/ro-crate-metadata.json index 96734bc..924c641 100644 --- a/ro-crate-metadata.json +++ b/ro-crate-metadata.json @@ -22,8 +22,8 @@ "@id": "./", "@type": "Dataset", "creativeWorkStatus": "Stable", - "datePublished": "2025-01-16T21:03:04+00:00", - "description": "# mskcc/neoantigenpipeline\n\n[![GitHub Actions CI Status](https://github.com/mskcc/neoantigenpipeline/actions/workflows/ci.yml/badge.svg)](https://github.com/mskcc/neoantigenpipeline/actions/workflows/ci.yml)\n[![GitHub Actions Linting Status](https://github.com/mskcc/neoantigenpipeline/actions/workflows/linting.yml/badge.svg)](https://github.com/mskcc/neoantigenpipeline/actions/workflows/linting.yml)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX)\n[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A524.04.2-23aa62.svg)](https://www.nextflow.io/)\n[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/mskcc/neoantigenpipeline)\n\n## Introduction\n\n**mskcc/neoantigenpipeline** is a bioinformatics pipeline that ...\n\n\n\n\n1. Read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/))2. Present QC for raw reads ([`MultiQC`](http://multiqc.info/))\n\n## Usage\n\n> [!NOTE]\n> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how to set-up Nextflow.Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) with `-profile test` before running the workflow on actual data.\n\n\n\nNow, you can run the pipeline using:\n\n\n\n```bash\nnextflow run mskcc/neoantigenpipeline \\\n -profile \\\n --input samplesheet.csv \\\n --outdir \n```\n\n> [!WARNING]\n> Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; see [docs](https://nf-co.re/docs/usage/getting_started/configuration#custom-configuration-files).\n\n## Credits\n\nmskcc/neoantigenpipeline was originally written by Nikhil Kumar.\n\nWe thank the following people for their extensive assistance in the development of this pipeline:\n\n\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](.github/CONTRIBUTING.md).\n\n## Citations\n\n\n\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nThis pipeline uses code and infrastructure developed and maintained by the [nf-core](https://nf-co.re) community, reused here under the [MIT license](https://github.com/nf-core/tools/blob/main/LICENSE).\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n", + "datePublished": "2025-01-23T18:29:02+00:00", + "description": "# mskcc/neoantigenpipeline\n\n[![GitHub Actions CI Status](https://github.com/mskcc/neoantigenpipeline/actions/workflows/ci.yml/badge.svg)](https://github.com/mskcc/neoantigenpipeline/actions/workflows/ci.yml)\n[![GitHub Actions Linting Status](https://github.com/mskcc/neoantigenpipeline/actions/workflows/linting.yml/badge.svg)](https://github.com/mskcc/neoantigenpipeline/actions/workflows/linting.yml)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX)\n[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A524.04.2-23aa62.svg)](https://www.nextflow.io/)\n[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/mskcc/neoantigenpipeline)\n\n## Introduction\n\n**mskcc/neoantigenpipeline** is a bioinformatics pipeline that ...\n\n\n\n\n1. Read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/))2. Present QC for raw reads ([`MultiQC`](http://multiqc.info/))\n\n## Usage\n\n> [!NOTE]\n> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) with `-profile test` before running the workflow on actual data.\n\n\n\nNow, you can run the pipeline using:\n\n\n\n```bash\nnextflow run mskcc/neoantigenpipeline \\\n -profile \\\n --input samplesheet.csv \\\n --outdir \n```\n\n> [!WARNING]\n> Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; see [docs](https://nf-co.re/docs/usage/getting_started/configuration#custom-configuration-files).\n\n## Credits\n\nmskcc/neoantigenpipeline was originally written by Nikhil Kumar.\n\nWe thank the following people for their extensive assistance in the development of this pipeline:\n\n\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](.github/CONTRIBUTING.md).\n\n## Citations\n\n\n\n\n\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nThis pipeline uses code and infrastructure developed and maintained by the [nf-core](https://nf-co.re) community, reused here under the [MIT license](https://github.com/nf-core/tools/blob/main/LICENSE).\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n", "hasPart": [ { "@id": "main.nf" @@ -93,7 +93,7 @@ }, "mentions": [ { - "@id": "#236d940a-1075-4ab1-b7a8-ca30271e15af" + "@id": "#e4ab0a5e-7b01-459a-b534-83b029be5161" } ], "name": "mskcc/neoantigenpipeline" @@ -126,7 +126,7 @@ } ], "dateCreated": "", - "dateModified": "2025-01-16T16:03:04Z", + "dateModified": "2025-01-23T13:29:02Z", "dct:conformsTo": "https://bioschemas.org/profiles/ComputationalWorkflow/1.0-RELEASE/", "keywords": [ "nf-core", @@ -170,11 +170,11 @@ "version": "!>=24.04.2" }, { - "@id": "#236d940a-1075-4ab1-b7a8-ca30271e15af", + "@id": "#e4ab0a5e-7b01-459a-b534-83b029be5161", "@type": "TestSuite", "instance": [ { - "@id": "#9b413919-845b-4f3e-afd5-09cde681f203" + "@id": "#7c3a1888-008c-458c-9dbe-b6d5d016fa3b" } ], "mainEntity": { @@ -183,7 +183,7 @@ "name": "Test suite for mskcc/neoantigenpipeline" }, { - "@id": "#9b413919-845b-4f3e-afd5-09cde681f203", + "@id": "#7c3a1888-008c-458c-9dbe-b6d5d016fa3b", "@type": "TestInstance", "name": "GitHub Actions workflow for testing mskcc/neoantigenpipeline", "resource": "repos/mskcc/neoantigenpipeline/actions/workflows/ci.yml", From 990122577f0a9f4430ac768e38618e2ef7edf3e1 Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Date: Thu, 23 Jan 2025 13:34:57 -0500 Subject: [PATCH 19/20] Template update for nf-core/tools version 3.1.2 --- ro-crate-metadata.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ro-crate-metadata.json b/ro-crate-metadata.json index 924c641..15ca7f2 100644 --- a/ro-crate-metadata.json +++ b/ro-crate-metadata.json @@ -22,7 +22,7 @@ "@id": "./", "@type": "Dataset", "creativeWorkStatus": "Stable", - "datePublished": "2025-01-23T18:29:02+00:00", + "datePublished": "2025-01-23T18:34:55+00:00", "description": "# mskcc/neoantigenpipeline\n\n[![GitHub Actions CI Status](https://github.com/mskcc/neoantigenpipeline/actions/workflows/ci.yml/badge.svg)](https://github.com/mskcc/neoantigenpipeline/actions/workflows/ci.yml)\n[![GitHub Actions Linting Status](https://github.com/mskcc/neoantigenpipeline/actions/workflows/linting.yml/badge.svg)](https://github.com/mskcc/neoantigenpipeline/actions/workflows/linting.yml)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX)\n[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A524.04.2-23aa62.svg)](https://www.nextflow.io/)\n[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/mskcc/neoantigenpipeline)\n\n## Introduction\n\n**mskcc/neoantigenpipeline** is a bioinformatics pipeline that ...\n\n\n\n\n1. Read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/))2. Present QC for raw reads ([`MultiQC`](http://multiqc.info/))\n\n## Usage\n\n> [!NOTE]\n> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) with `-profile test` before running the workflow on actual data.\n\n\n\nNow, you can run the pipeline using:\n\n\n\n```bash\nnextflow run mskcc/neoantigenpipeline \\\n -profile \\\n --input samplesheet.csv \\\n --outdir \n```\n\n> [!WARNING]\n> Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; see [docs](https://nf-co.re/docs/usage/getting_started/configuration#custom-configuration-files).\n\n## Credits\n\nmskcc/neoantigenpipeline was originally written by Nikhil Kumar.\n\nWe thank the following people for their extensive assistance in the development of this pipeline:\n\n\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](.github/CONTRIBUTING.md).\n\n## Citations\n\n\n\n\n\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nThis pipeline uses code and infrastructure developed and maintained by the [nf-core](https://nf-co.re) community, reused here under the [MIT license](https://github.com/nf-core/tools/blob/main/LICENSE).\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n", "hasPart": [ { @@ -93,7 +93,7 @@ }, "mentions": [ { - "@id": "#e4ab0a5e-7b01-459a-b534-83b029be5161" + "@id": "#c70558e0-d636-4f9d-b38b-88d0ad371eae" } ], "name": "mskcc/neoantigenpipeline" @@ -126,7 +126,7 @@ } ], "dateCreated": "", - "dateModified": "2025-01-23T13:29:02Z", + "dateModified": "2025-01-23T13:34:55Z", "dct:conformsTo": "https://bioschemas.org/profiles/ComputationalWorkflow/1.0-RELEASE/", "keywords": [ "nf-core", @@ -170,11 +170,11 @@ "version": "!>=24.04.2" }, { - "@id": "#e4ab0a5e-7b01-459a-b534-83b029be5161", + "@id": "#c70558e0-d636-4f9d-b38b-88d0ad371eae", "@type": "TestSuite", "instance": [ { - "@id": "#7c3a1888-008c-458c-9dbe-b6d5d016fa3b" + "@id": "#f26afc94-d187-408e-8fa5-413ca00345ed" } ], "mainEntity": { @@ -183,7 +183,7 @@ "name": "Test suite for mskcc/neoantigenpipeline" }, { - "@id": "#7c3a1888-008c-458c-9dbe-b6d5d016fa3b", + "@id": "#f26afc94-d187-408e-8fa5-413ca00345ed", "@type": "TestInstance", "name": "GitHub Actions workflow for testing mskcc/neoantigenpipeline", "resource": "repos/mskcc/neoantigenpipeline/actions/workflows/ci.yml", From 272d6b1428d8f8eb1856105287e53a201bdfbc8a Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Date: Thu, 23 Jan 2025 14:49:41 -0500 Subject: [PATCH 20/20] Update process shell command --- nextflow.config | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/nextflow.config b/nextflow.config index 5e3dbf8..883b1de 100644 --- a/nextflow.config +++ b/nextflow.config @@ -197,14 +197,14 @@ env { } // Set bash options -process.shell = '''\ -bash +process.shell = [ + "bash", + "-C", // No clobber - prevent output redirection from overwriting files. + "-e", // Exit if a tool returns a non-zero status/exit code + "-u", // Treat unset variables and parameters as an error + "-o pipefail" // Returns the status of the last command to exit with a non-zero status or zero if all successfully execute +] -set -e # Exit if a tool returns a non-zero status/exit code -set -u # Treat unset variables and parameters as an error -set -o pipefail # Returns the status of the last command to exit with a non-zero status or zero if all successfully execute -set -C # No clobber - prevent output redirection from overwriting files. -''' // Disable process selector warnings by default. Use debug profile to enable warnings. nextflow.enable.configProcessNamesValidation = false