From b7af5702d6b551b8c6c406b7ae3583fd1ac17f4a Mon Sep 17 00:00:00 2001 From: robert-a-forsyth Date: Tue, 24 Mar 2026 16:54:16 +0100 Subject: [PATCH 01/15] add modkit --- nextflow.config | 1 + workflows/lrsomatic.nf | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/nextflow.config b/nextflow.config index f8ad334..2058d0a 100644 --- a/nextflow.config +++ b/nextflow.config @@ -46,6 +46,7 @@ params { skip_m6a = false skip_vep = false skip_modcall = false + skip_modkit = false use_gpu = false skip_whatshapstats = false diff --git a/workflows/lrsomatic.nf b/workflows/lrsomatic.nf index 3e60027..ca7eb98 100644 --- a/workflows/lrsomatic.nf +++ b/workflows/lrsomatic.nf @@ -33,6 +33,7 @@ include { ENSEMBLVEP_VEP as SOMATIC_VEP } from '../modules/nf-core/ensemblve include { ENSEMBLVEP_VEP as GERMLINE_VEP } from '../modules/nf-core/ensemblvep/vep/main.nf' include { ENSEMBLVEP_VEP as SV_VEP } from '../modules/nf-core/ensemblvep/vep/main.nf' include { WHATSHAP_STATS } from '../modules/nf-core/whatshap/stats/main' +include { MODKIT_PILEUP } from '../modules/nf-core/modkit/pileup/main' // // IMPORT SUBWORKFLOWS @@ -399,6 +400,12 @@ workflow LRSOMATIC { .join(MINIMAP2_ALIGN.out.index) .set {ch_index_minimap} + ch_fasta + .join(ch_fai) + .set{ch_fasta_fai} + if (!params.skip_modkit) { + MODKIT_PILEUP(ch_index_minimap, ch_fasta_fai, [[:],[]]) + } ch_index_minimap .branch { meta, _bams, _bais -> paired: meta.paired_data From 3832767e7435e7c4591eed7471f0edab5c4189ab Mon Sep 17 00:00:00 2001 From: robert-a-forsyth Date: Tue, 24 Mar 2026 21:44:03 +0100 Subject: [PATCH 02/15] channel edit --- subworkflows/local/prepare_reference_files.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subworkflows/local/prepare_reference_files.nf b/subworkflows/local/prepare_reference_files.nf index 324815e..42e2e95 100644 --- a/subworkflows/local/prepare_reference_files.nf +++ b/subworkflows/local/prepare_reference_files.nf @@ -36,7 +36,7 @@ workflow PREPARE_REFERENCE_FILES { ch_prepared_fasta = UNZIP_FASTA.out.file ch_versions = ch_versions.mix(UNZIP_FASTA.out.versions) } else { - ch_prepared_fasta = [ [:], fasta ] + ch_prepared_fasta = channel.value([ [:], fasta ]) } // ch_prepared_fasta: [[:], fasta_path] -- empty meta; uncompressed if input was .gz From 28db3f5215c0caa1e4feeccc433a8ae00cfc0878 Mon Sep 17 00:00:00 2001 From: robert-a-forsyth Date: Wed, 25 Mar 2026 09:47:03 +0100 Subject: [PATCH 03/15] fix value channel structure --- modules.json | 3 ++- modules/nf-core/modkit/pileup/main.nf | 5 ++-- .../nf-core/modkit/pileup/modkit-pileup.diff | 23 +++++++++++++++++++ workflows/lrsomatic.nf | 7 +++--- 4 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 modules/nf-core/modkit/pileup/modkit-pileup.diff diff --git a/modules.json b/modules.json index b774fa6..e962dc3 100644 --- a/modules.json +++ b/modules.json @@ -104,7 +104,8 @@ "modkit/pileup": { "branch": "master", "git_sha": "3d81317a30d1016b533982d6b84df07713ae520a", - "installed_by": ["modules"] + "installed_by": ["modules"], + "patch": "modules/nf-core/modkit/pileup/modkit-pileup.diff" }, "mosdepth": { "branch": "master", diff --git a/modules/nf-core/modkit/pileup/main.nf b/modules/nf-core/modkit/pileup/main.nf index e610efb..7487783 100644 --- a/modules/nf-core/modkit/pileup/main.nf +++ b/modules/nf-core/modkit/pileup/main.nf @@ -9,8 +9,9 @@ process MODKIT_PILEUP { input: tuple val(meta), path(bam), path(bai) - tuple val(meta2), path(fasta), path(fai) - tuple val(meta3), path(bed) + tuple val(meta2), path(fasta) + tuple val(meta3), path(fai) + tuple val(meta4), path(bed) output: tuple val(meta), path("*.bed.gz") , emit: bedgz , optional: true diff --git a/modules/nf-core/modkit/pileup/modkit-pileup.diff b/modules/nf-core/modkit/pileup/modkit-pileup.diff new file mode 100644 index 0000000..d880bb1 --- /dev/null +++ b/modules/nf-core/modkit/pileup/modkit-pileup.diff @@ -0,0 +1,23 @@ +Changes in component 'nf-core/modkit/pileup' +'modules/nf-core/modkit/pileup/meta.yml' is unchanged +Changes in 'modkit/pileup/main.nf': +--- modules/nf-core/modkit/pileup/main.nf ++++ modules/nf-core/modkit/pileup/main.nf +@@ -9,8 +9,9 @@ + + input: + tuple val(meta), path(bam), path(bai) +- tuple val(meta2), path(fasta), path(fai) +- tuple val(meta3), path(bed) ++ tuple val(meta2), path(fasta) ++ tuple val(meta3), path(fai) ++ tuple val(meta4), path(bed) + + output: + tuple val(meta), path("*.bed.gz") , emit: bedgz , optional: true + +'modules/nf-core/modkit/pileup/environment.yml' is unchanged +'modules/nf-core/modkit/pileup/tests/main.nf.test' is unchanged +'modules/nf-core/modkit/pileup/tests/main.nf.test.snap' is unchanged +'modules/nf-core/modkit/pileup/tests/nextflow.config' is unchanged +************************************************************ diff --git a/workflows/lrsomatic.nf b/workflows/lrsomatic.nf index cb3e680..7918c05 100644 --- a/workflows/lrsomatic.nf +++ b/workflows/lrsomatic.nf @@ -400,11 +400,10 @@ workflow LRSOMATIC { .join(MINIMAP2_ALIGN.out.index) .set {ch_index_minimap} - ch_fasta - .join(ch_fai) - .set{ch_fasta_fai} + + if (!params.skip_modkit) { - MODKIT_PILEUP(ch_index_minimap, ch_fasta_fai, [[:],[]]) + MODKIT_PILEUP(ch_index_minimap, ch_fasta, ch_fai, [[:],[]]) } ch_index_minimap .branch { meta, _bams, _bais -> From 06921f653acb77e1d1f1f07d8488b29ecdfc2543 Mon Sep 17 00:00:00 2001 From: robert-a-forsyth Date: Thu, 26 Mar 2026 15:26:25 +0100 Subject: [PATCH 04/15] change longphas --- modules/nf-core/longphase/phase/main.nf | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/modules/nf-core/longphase/phase/main.nf b/modules/nf-core/longphase/phase/main.nf index ccd1b71..73e57d7 100644 --- a/modules/nf-core/longphase/phase/main.nf +++ b/modules/nf-core/longphase/phase/main.nf @@ -14,11 +14,13 @@ process LONGPHASE_PHASE { output: - tuple val(meta), path("${prefix}.vcf.gz") , emit: snv_vcf - tuple val(meta), path("${prefix}_SV.vcf.gz") , emit: sv_vcf , optional: true - tuple val(meta), path("${prefix}_mod.vcf.gz"), emit: mod_vcf, optional: true - tuple val("${task.process}"), val("longphase"), eval("longphase --version | head -n 1 | sed 's/Version: //'"), emit: versions_longphase, topic: versions - + tuple val(meta), path("${prefix}.vcf.gz") , emit: snv_vcf + tuple val(meta), path("${prefix}.vcf.gz.tbi") , emit: snv_vcf_index + tuple val(meta), path("${prefix}_SV.vcf.gz") , emit: sv_vcf , optional: true + tuple val(meta), path("${prefix}_SV.vcf.gz.tbi") , emit: sv_vcf_index , optional: true + tuple val(meta), path("${prefix}_mod.vcf.gz") , emit: mod_vcf, optional: true + tuple val(meta), path("${prefix}_mod.vcf.gz.tbi"), emit: mod_vcf_index, optional: true + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -58,13 +60,16 @@ process LONGPHASE_PHASE { def sv_command = svs ? "echo '' | bgzip -c > ${prefix}_SV.vcf.gz" : "" def mod_command = mods ? "echo '' | bgzip -c > ${prefix}_mod.vcf.gz" : "" """ - echo $args - echo "" | bgzip -c > ${prefix}.vcf.gz + tabix -p vcf ${prefix}.vcf.gz - $sv_command - $mod_command + if [ -f ${prefix}_SV.vcf.gz ]; then + tabix -p vcf ${prefix}_SV.vcf.gz + fi - cat <<-END_VERSIONS > versions.yml + if [ -f ${prefix}_mod.vcf.gz ]; then + tabix -p vcf ${prefix}_mod.vcf.gz + fi + "${task.process}": longphase: \$(longphase --version | head -n 1 | sed 's/Version: //') END_VERSIONS From dd7eae2e0f895db746d513e2e1d9dda77271561b Mon Sep 17 00:00:00 2001 From: robert-a-forsyth Date: Thu, 26 Mar 2026 17:11:03 +0100 Subject: [PATCH 05/15] fix params for new wakhan update --- modules/local/wakhan/main.nf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/local/wakhan/main.nf b/modules/local/wakhan/main.nf index 85562ab..997c660 100644 --- a/modules/local/wakhan/main.nf +++ b/modules/local/wakhan/main.nf @@ -50,11 +50,13 @@ process WAKHAN { """ wakhan \\ + cna \\ --target-bam ${tumor_input} \\ --breakpoints ${breakpoints} \\ --reference ${reference} \\ --genome-name ${prefix} \\ --out-dir-plots . \\ + --use-sv-haplotypes \\ ${phased_vcf} \\ ${centromere} \\ ${args} \\ From 3a8a2510687f5031f5364610b7e3ff02b2c08efc Mon Sep 17 00:00:00 2001 From: robert-a-forsyth Date: Thu, 26 Mar 2026 17:33:32 +0100 Subject: [PATCH 06/15] switch cna to all --- modules/local/wakhan/main.nf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/local/wakhan/main.nf b/modules/local/wakhan/main.nf index 997c660..c1ae4f1 100644 --- a/modules/local/wakhan/main.nf +++ b/modules/local/wakhan/main.nf @@ -50,13 +50,12 @@ process WAKHAN { """ wakhan \\ - cna \\ + all \\ --target-bam ${tumor_input} \\ --breakpoints ${breakpoints} \\ --reference ${reference} \\ --genome-name ${prefix} \\ --out-dir-plots . \\ - --use-sv-haplotypes \\ ${phased_vcf} \\ ${centromere} \\ ${args} \\ From 9e2d5559e8a297f5cfdc2880e3f497d1d2e7827e Mon Sep 17 00:00:00 2001 From: robert-a-forsyth Date: Thu, 26 Mar 2026 19:15:25 +0100 Subject: [PATCH 07/15] remove old output --- modules/local/wakhan/main.nf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/local/wakhan/main.nf b/modules/local/wakhan/main.nf index c1ae4f1..c09cc46 100644 --- a/modules/local/wakhan/main.nf +++ b/modules/local/wakhan/main.nf @@ -26,9 +26,8 @@ process WAKHAN { tuple val(meta), path("*/vcf_output/*_wakhan_cna_*.vcf") , emit: vcf_files tuple val(meta), path("*_heatmap_ploidy_purity.html") , emit: heatmap_html tuple val(meta), path("*_heatmap_ploidy_purity.html.pdf") , emit: heatmap_pdf - tuple val(meta), path("*_optimized_peak.html") , emit: optimized_peak_html tuple val(meta), path("coverage_data/*.csv") , emit: coverage_csv - tuple val(meta), path("coverage_plots/*.html") , emit: coverage_plots_html + tuple val(meta), path("coverage_plots/*.png") , emit: coverage_plots_html tuple val(meta), path("coverage_plots/*.pdf") , emit: coverage_plots_pdf tuple val(meta), path("phasing_output/*.html") , emit: phasing_html tuple val(meta), path("phasing_output/*.pdf") , emit: phasing_pdf From c8347dbb841abe8267c14b61177fb53b3aa30a52 Mon Sep 17 00:00:00 2001 From: robert-a-forsyth Date: Thu, 26 Mar 2026 21:27:01 +0100 Subject: [PATCH 08/15] output fix --- modules/local/wakhan/main.nf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/local/wakhan/main.nf b/modules/local/wakhan/main.nf index c09cc46..14929ec 100644 --- a/modules/local/wakhan/main.nf +++ b/modules/local/wakhan/main.nf @@ -27,7 +27,8 @@ process WAKHAN { tuple val(meta), path("*_heatmap_ploidy_purity.html") , emit: heatmap_html tuple val(meta), path("*_heatmap_ploidy_purity.html.pdf") , emit: heatmap_pdf tuple val(meta), path("coverage_data/*.csv") , emit: coverage_csv - tuple val(meta), path("coverage_plots/*.png") , emit: coverage_plots_html + tuple val(meta), path("coverage_data/*.png") , emit: coverage_png + tuple val(meta), path("coverage_plots/*.html") , emit: coverage_plots_html tuple val(meta), path("coverage_plots/*.pdf") , emit: coverage_plots_pdf tuple val(meta), path("phasing_output/*.html") , emit: phasing_html tuple val(meta), path("phasing_output/*.pdf") , emit: phasing_pdf From 7e0978dde68abaa507363176c0ad2b157a554eea Mon Sep 17 00:00:00 2001 From: robert-a-forsyth Date: Fri, 27 Mar 2026 12:17:50 +0100 Subject: [PATCH 09/15] versioning --- modules/local/longphase/modcall/main.nf | 12 +-------- modules/nf-core/longphase/haplotag/main.nf | 12 +-------- modules/nf-core/longphase/phase/main.nf | 14 ++--------- modules/nf-core/nanoplot/main.nf | 13 +--------- .../local/paired/paired_smallvar_germline.nf | 1 - .../local/paired/paired_smallvar_somatic.nf | 1 - .../local/tumor_only/tumoronly_smallvar.nf | 1 - tests/default.nf.test.snap | 25 ++++++++++++++++++- 8 files changed, 29 insertions(+), 50 deletions(-) diff --git a/modules/local/longphase/modcall/main.nf b/modules/local/longphase/modcall/main.nf index a49ffa6..f7d1e2b 100644 --- a/modules/local/longphase/modcall/main.nf +++ b/modules/local/longphase/modcall/main.nf @@ -16,7 +16,7 @@ process LONGPHASE_MODCALL { output: tuple val(meta), path("*.vcf") , emit: mod_vcf tuple val(meta), path("*.log") , emit: log , optional: true - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('longphase'), eval("longphase --version | head -n 1 | sed 's/Version: //'"), topic: versions, emit: versions_longphase when: task.ext.when == null || task.ext.when @@ -38,11 +38,6 @@ process LONGPHASE_MODCALL { if [ -f "${prefix}.out" ]; then mv ${prefix}.out ${prefix}.log fi - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - longphase: \$(longphase --version | head -n 1 | sed 's/Version: //') - END_VERSIONS """ stub: @@ -52,10 +47,5 @@ process LONGPHASE_MODCALL { """ touch ${prefix}.vcf ${log} - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - longphase: \$(longphase --version | head -n 1 | sed 's/Version: //') - END_VERSIONS """ } diff --git a/modules/nf-core/longphase/haplotag/main.nf b/modules/nf-core/longphase/haplotag/main.nf index 9b4d6c8..9f4ca7e 100644 --- a/modules/nf-core/longphase/haplotag/main.nf +++ b/modules/nf-core/longphase/haplotag/main.nf @@ -16,7 +16,7 @@ process LONGPHASE_HAPLOTAG { output: tuple val(meta), path("*.{bam,cram}"), emit: bam tuple val(meta), path("*.log") , emit: log , optional: true - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('longphase'), eval("longphase --version | head -n 1 | sed 's/Version: //'"), topic: versions, emit: versions_longphase when: task.ext.when == null || task.ext.when @@ -42,11 +42,6 @@ process LONGPHASE_HAPLOTAG { if [ -f "${prefix}.out" ]; then mv ${prefix}.out ${prefix}.log fi - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - longphase: \$(longphase --version | head -n 1 | sed 's/Version: //') - END_VERSIONS """ stub: @@ -57,10 +52,5 @@ process LONGPHASE_HAPLOTAG { """ touch ${prefix}.${suffix} ${log} - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - longphase: \$(longphase --version | head -n 1 | sed 's/Version: //') - END_VERSIONS """ } \ No newline at end of file diff --git a/modules/nf-core/longphase/phase/main.nf b/modules/nf-core/longphase/phase/main.nf index 28ff6ef..0e10324 100644 --- a/modules/nf-core/longphase/phase/main.nf +++ b/modules/nf-core/longphase/phase/main.nf @@ -20,7 +20,8 @@ process LONGPHASE_PHASE { tuple val(meta), path("${prefix}_SV.vcf.gz.tbi") , emit: sv_vcf_index , optional: true tuple val(meta), path("${prefix}_mod.vcf.gz") , emit: mod_vcf, optional: true tuple val(meta), path("${prefix}_mod.vcf.gz.tbi"), emit: mod_vcf_index, optional: true - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('longphase'), eval("longphase --version | head -n 1 | sed 's/Version: //'"), topic: versions, emit: versions_longphase + tuple val("${task.process}"), val('tabix'), eval("tabix -h 2>&1 | grep -oP 'Version:\\s*\\K[^\\s]+'"), topic: versions, emit: versions_tabix when: task.ext.when == null || task.ext.when @@ -58,12 +59,6 @@ process LONGPHASE_PHASE { if [ -f ${prefix}_mod.vcf.gz ]; then tabix -p vcf ${prefix}_mod.vcf.gz fi - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - longphase: \$(longphase --version | head -n 1 | sed 's/Version: //') - tabix: \$(echo \$(tabix -h 2>&1) | sed 's/^.*Version: //; s/ .*\$//') - END_VERSIONS """ stub: @@ -77,10 +72,5 @@ process LONGPHASE_PHASE { $sv_command $mod_command - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - longphase: \$(longphase --version | head -n 1 | sed 's/Version: //') - END_VERSIONS """ } \ No newline at end of file diff --git a/modules/nf-core/nanoplot/main.nf b/modules/nf-core/nanoplot/main.nf index ba7b9a6..e89c394 100644 --- a/modules/nf-core/nanoplot/main.nf +++ b/modules/nf-core/nanoplot/main.nf @@ -14,7 +14,7 @@ process NANOPLOT { tuple val(meta), path("*.html") , emit: html tuple val(meta), path("*.png") , optional: true, emit: png tuple val(meta), path("*.txt") , emit: txt - path "versions.yml" , emit: versions + tuple val("${task.process}"), val('nanoplot'), eval("NanoPlot --version 2>&1 | sed 's/^.*NanoPlot //; s/ .*\$//'"), topic: versions, emit: versions_nanoplot when: task.ext.when == null || task.ext.when @@ -37,11 +37,6 @@ process NANOPLOT { mv \$nanoplot_file ${prefix}_\$nanoplot_file fi done - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - nanoplot: \$(echo \$(NanoPlot --version 2>&1) | sed 's/^.*NanoPlot //; s/ .*\$//') - END_VERSIONS """ stub: @@ -56,11 +51,5 @@ process NANOPLOT { touch ${prefix}_WeightedHistogramReadlength.html touch ${prefix}_WeightedLogTransformed_HistogramReadlength.html touch ${prefix}_Yield_By_Length.html - - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - nanoplot: \$(echo \$(NanoPlot --version 2>&1) | sed 's/^.*NanoPlot //; s/ .*\$//') - END_VERSIONS """ } diff --git a/subworkflows/local/paired/paired_smallvar_germline.nf b/subworkflows/local/paired/paired_smallvar_germline.nf index 2e9f286..ea203ff 100644 --- a/subworkflows/local/paired/paired_smallvar_germline.nf +++ b/subworkflows/local/paired/paired_smallvar_germline.nf @@ -14,7 +14,6 @@ workflow PAIRED_SMALLVAR_GERMLINE { clair3_models main: - ch_versions = channel.empty() germline_vcf = channel.empty() germline_tbi = channel.empty() // COMBINE NORMAL BAMS WITH DOWNLOADED CLAIR3 MODELS diff --git a/subworkflows/local/paired/paired_smallvar_somatic.nf b/subworkflows/local/paired/paired_smallvar_somatic.nf index 421864b..8df88d3 100644 --- a/subworkflows/local/paired/paired_smallvar_somatic.nf +++ b/subworkflows/local/paired/paired_smallvar_somatic.nf @@ -15,7 +15,6 @@ workflow PAIRED_SMALLVAR_SOMATIC { fai main: - ch_versions = channel.empty() somatic_vcf = channel.empty() somatic_tbi = channel.empty() diff --git a/subworkflows/local/tumor_only/tumoronly_smallvar.nf b/subworkflows/local/tumor_only/tumoronly_smallvar.nf index 2dab272..e737cbb 100644 --- a/subworkflows/local/tumor_only/tumoronly_smallvar.nf +++ b/subworkflows/local/tumor_only/tumoronly_smallvar.nf @@ -21,7 +21,6 @@ workflow TUMORONLY_SMALLVAR { // empty channel emission - ch_versions = channel.empty() somatic_vcf = channel.empty() germline_vcf = channel.empty() somatic_tbi = channel.empty() diff --git a/tests/default.nf.test.snap b/tests/default.nf.test.snap index 1eba0cf..dc1dba6 100644 --- a/tests/default.nf.test.snap +++ b/tests/default.nf.test.snap @@ -58,6 +58,23 @@ "perl-math-cdf": 0.1, "tabix": 1.21 }, + "LONGPHASE_HAPLOTAG": { + "longphase": "2.0.1" + }, + "LONGPHASE_MODCALL_GERMLINE": { + "longphase": "2.0.1" + }, + "LONGPHASE_MODCALL_SOMATIC": { + "longphase": "2.0.1" + }, + "LONGPHASE_PHASE_GERMLINE": { + "longphase": "2.0.1", + "tabix": "1.23.1" + }, + "LONGPHASE_PHASE_SOMATIC": { + "longphase": "2.0.1", + "tabix": "1.23.1" + }, "METAEXTRACT": { "samtools": 1.21 }, @@ -67,6 +84,12 @@ "MOSDEPTH": { "mosdepth": "0.3.11" }, + "NANOPLOT_POST": { + "nanoplot": "1.46.1" + }, + "NANOPLOT_PRE": { + "nanoplot": "1.46.1" + }, "SAMTOOLS_FAIDX": { "samtools": "1.22.1" }, @@ -595,6 +618,6 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-03-26T16:13:56.877873308" + "timestamp": "2026-03-27T10:48:07.760935013" } } \ No newline at end of file From 486156fe33148ee5db2014730b8d04481f7d5616 Mon Sep 17 00:00:00 2001 From: robert-a-forsyth Date: Mon, 30 Mar 2026 12:22:59 +0200 Subject: [PATCH 10/15] fix merge conflict --- subworkflows/local/tumor_only/tumoronly_smallvar.nf | 5 ----- 1 file changed, 5 deletions(-) diff --git a/subworkflows/local/tumor_only/tumoronly_smallvar.nf b/subworkflows/local/tumor_only/tumoronly_smallvar.nf index f1ddbf6..e9b50e2 100644 --- a/subworkflows/local/tumor_only/tumoronly_smallvar.nf +++ b/subworkflows/local/tumor_only/tumoronly_smallvar.nf @@ -20,12 +20,7 @@ workflow TUMORONLY_SMALLVAR { main: -<<<<<<< HEAD - // empty channel emission - -======= ch_versions = channel.empty() ->>>>>>> deepvariant somatic_vcf = channel.empty() germline_vcf = channel.empty() somatic_tbi = channel.empty() From a2bc320c9e0e45bec2a6819187ba41d9472a3e4a Mon Sep 17 00:00:00 2001 From: robert-a-forsyth Date: Wed, 1 Apr 2026 15:17:52 +0200 Subject: [PATCH 11/15] update snap/ edit config --- conf/test.config | 1 + tests/default.nf.test.snap | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/conf/test.config b/conf/test.config index e701481..8494fbf 100644 --- a/conf/test.config +++ b/conf/test.config @@ -57,4 +57,5 @@ params { vep_species = "caenorhabditis_elegans" skip_wakhan = true skip_ascat = true + skip_modkit = true } diff --git a/tests/default.nf.test.snap b/tests/default.nf.test.snap index 26df951..6eac3c3 100644 --- a/tests/default.nf.test.snap +++ b/tests/default.nf.test.snap @@ -61,6 +61,12 @@ "LONGPHASE_HAPLOTAG": { "longphase": "2.0.1" }, + "LONGPHASE_MODCALL_GERMLINE": { + "longphase": "2.0.1" + }, + "LONGPHASE_MODCALL_SOMATIC": { + "longphase": "2.0.1" + }, "LONGPHASE_PHASE_GERMLINE": { "longphase": "2.0.1" }, @@ -610,6 +616,6 @@ "nf-test": "0.9.3", "nextflow": "25.10.2" }, - "timestamp": "2026-03-27T17:04:12.049740619" + "timestamp": "2026-04-01T14:22:53.450440867" } } \ No newline at end of file From 1196192f944d9e5a5021772f61ea6340e643a236 Mon Sep 17 00:00:00 2001 From: ljwharbers Date: Wed, 1 Apr 2026 15:30:04 +0200 Subject: [PATCH 12/15] add code documentation bit --- workflows/lrsomatic.nf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/workflows/lrsomatic.nf b/workflows/lrsomatic.nf index 1d3b59c..ec03cac 100644 --- a/workflows/lrsomatic.nf +++ b/workflows/lrsomatic.nf @@ -471,11 +471,14 @@ workflow LRSOMATIC { .set {ch_index_minimap} // ch_index_minimap: [meta, bam, bai] -- aligned BAM + index, all samples - + // + // MODULE: MODKIT_PILEUP + // if (!params.skip_modkit) { MODKIT_PILEUP(ch_index_minimap, ch_fasta, ch_fai, [[:],[]]) } + ch_index_minimap .branch { meta, _bams, _bais -> paired: meta.paired_data // meta.paired_data is the normal sample ID for tumors, or the tumor ID for normals From 9d5caed58a3c1ab4f91d3b42daae6712f6370c48 Mon Sep 17 00:00:00 2001 From: ljwharbers Date: Wed, 1 Apr 2026 15:49:24 +0200 Subject: [PATCH 13/15] nextflow strict syntax changes --- modules/local/clair3/main.nf | 2 +- modules/nf-core/longphase/phase/main.nf | 3 --- subworkflows/local/deepsomatic.nf | 2 +- .../local/paired/paired_smallvar_germline.nf | 1 - .../local/paired/paired_smallvar_somatic.nf | 1 - subworkflows/local/phasing_haplotyping.nf | 16 ++++++++-------- subworkflows/local/small_variant_consensus.nf | 6 +++--- .../local/tumor_only/tumoronly_smallvar.nf | 3 --- workflows/lrsomatic.nf | 6 +++--- 9 files changed, 16 insertions(+), 24 deletions(-) diff --git a/modules/local/clair3/main.nf b/modules/local/clair3/main.nf index 64e8f8f..6adf693 100644 --- a/modules/local/clair3/main.nf +++ b/modules/local/clair3/main.nf @@ -42,7 +42,7 @@ process CLAIR3 { """ stub: - def prefix = task.ext.prefix ?: "${meta.id}" + prefix = task.ext.prefix ?: "${meta.id}" """ echo "" | gzip > ${prefix}.phased_merge_output.vcf.gz touch ${prefix}.phased_merge_output.vcf.gz.tbi diff --git a/modules/nf-core/longphase/phase/main.nf b/modules/nf-core/longphase/phase/main.nf index f2fc539..bcb79d9 100644 --- a/modules/nf-core/longphase/phase/main.nf +++ b/modules/nf-core/longphase/phase/main.nf @@ -61,10 +61,7 @@ process LONGPHASE_PHASE { """ stub: - def args = task.ext.args ?: '' prefix = task.ext.prefix ?: "${meta.id}" - def sv_command = svs ? "echo '' | bgzip -c > ${prefix}_SV.vcf.gz" : "" - def mod_command = mods ? "echo '' | bgzip -c > ${prefix}_mod.vcf.gz" : "" """ tabix -p vcf ${prefix}.vcf.gz diff --git a/subworkflows/local/deepsomatic.nf b/subworkflows/local/deepsomatic.nf index d1baf58..82a01d1 100644 --- a/subworkflows/local/deepsomatic.nf +++ b/subworkflows/local/deepsomatic.nf @@ -6,7 +6,7 @@ workflow DEEPSOMATIC { take: ch_input // [meta, normal_bam, normal_bai, tumor_bam, tumor_bai] // normal_bam/bai may be [] for tumor-only mode - ch_intervals // [[:], []] -- empty intervals (genome-wide calling) + _ch_intervals // [[:], []] -- empty intervals (genome-wide calling) ch_fasta // [[:], fasta] ch_fai // [[:], fai] ch_gzi // [[:], gzi] -- bgzipped FASTA index (empty if FASTA is not bgzipped) diff --git a/subworkflows/local/paired/paired_smallvar_germline.nf b/subworkflows/local/paired/paired_smallvar_germline.nf index f4d9fb9..bc641a7 100644 --- a/subworkflows/local/paired/paired_smallvar_germline.nf +++ b/subworkflows/local/paired/paired_smallvar_germline.nf @@ -15,7 +15,6 @@ workflow PAIRED_SMALLVAR_GERMLINE { main: germline_vcf = channel.empty() - germline_tbi = channel.empty() // COMBINE NORMAL BAMS WITH DOWNLOADED CLAIR3 MODELS // Clair3 requires the model directory path; models are keyed by model name (meta.id) diff --git a/subworkflows/local/paired/paired_smallvar_somatic.nf b/subworkflows/local/paired/paired_smallvar_somatic.nf index d7a2c99..98dc828 100644 --- a/subworkflows/local/paired/paired_smallvar_somatic.nf +++ b/subworkflows/local/paired/paired_smallvar_somatic.nf @@ -16,7 +16,6 @@ workflow PAIRED_SMALLVAR_SOMATIC { main: somatic_vcf = channel.empty() - somatic_tbi = channel.empty() // CLAIRS: somatic SNV/indel calling from T/N paired BAMs if(params.somatic_var_keep.contains('clair')) { diff --git a/subworkflows/local/phasing_haplotyping.nf b/subworkflows/local/phasing_haplotyping.nf index 832d196..32af3d4 100644 --- a/subworkflows/local/phasing_haplotyping.nf +++ b/subworkflows/local/phasing_haplotyping.nf @@ -141,13 +141,13 @@ workflow PHASING_HAPLOTYPING { // Merge germline and somatic VCFs into a single file for somatic phasing // Longphase requires all variant sites in one VCF to produce a consistent phase block germline_vcf - .join(somatic_vcf) - .map { meta, germline_vcf, germline_tbi, somatic_vcf, somatic_tbi -> - def vcfs = [somatic_vcf, germline_vcf] // somatic first (higher priority in phasing) - def tbis = [somatic_tbi, germline_tbi] - return [ meta, vcfs, tbis] - } - .set{germline_somatic_vcfs} + .join(somatic_vcf) + .map { meta, germ_vcf, germ_tbi, som_vcf, som_tbi -> + def vcfs = [som_vcf, germ_vcf] // somatic first (higher priority in phasing) + def tbis = [som_tbi, germ_tbi] + return [ meta, vcfs, tbis] + } + .set{germline_somatic_vcfs} // germline_somatic_vcfs (pre-concat): [meta, [somatic_vcf, germline_vcf], [somatic_tbi, germline_tbi]] // @@ -157,7 +157,7 @@ workflow PHASING_HAPLOTYPING { // BCFTOOLS_CONCAT(germline_somatic_vcfs) BCFTOOLS_CONCAT.out.vcf - .set{concat_out} + .set{concat_out} // concat_out: [meta, vcf] -- concatenated (unsorted) somatic+germline VCF // diff --git a/subworkflows/local/small_variant_consensus.nf b/subworkflows/local/small_variant_consensus.nf index 9befdb2..2228bf1 100644 --- a/subworkflows/local/small_variant_consensus.nf +++ b/subworkflows/local/small_variant_consensus.nf @@ -13,7 +13,7 @@ workflow SMALL_VARIANT_CONSENSUS { mixed_vcfs // [meta(+caller field), vcf, tbi] -- one item per caller per sample // meta.caller is one of: 'clair3', 'clairs-to', 'clairs', 'deepvariant', 'deepsomatic' fasta // [[:], fasta] - fai // [[:], fai] + _fai // [[:], fai] prioritize_caller // str: which caller's calls take priority ('deepvariant'/'deepsomatic' or 'clair') combine_method // str: 'consensus' (intersection only) or 'all' (intersection + private calls from priority caller) @@ -82,8 +82,8 @@ workflow SMALL_VARIANT_CONSENSUS { deepvariant_ch = annotated_vcfs_branched.deepvariant // Strip 'caller' field from meta before joining so both channels share the same key - clair_ch. - map {meta, vcfs, tbi -> + clair_ch + .map {meta, vcfs, tbi -> def new_meta = meta.subMap('id', 'paired_data', 'type', diff --git a/subworkflows/local/tumor_only/tumoronly_smallvar.nf b/subworkflows/local/tumor_only/tumoronly_smallvar.nf index e9b50e2..82c25f5 100644 --- a/subworkflows/local/tumor_only/tumoronly_smallvar.nf +++ b/subworkflows/local/tumor_only/tumoronly_smallvar.nf @@ -20,11 +20,8 @@ workflow TUMORONLY_SMALLVAR { main: - ch_versions = channel.empty() somatic_vcf = channel.empty() germline_vcf = channel.empty() - somatic_tbi = channel.empty() - germline_tbi = channel.empty() // CLAIRS-TO: somatic AND germline variant calling from tumor-only BAM // ClairS-TO uses a panel-of-normals / population allele database to separate somatic from germline diff --git a/workflows/lrsomatic.nf b/workflows/lrsomatic.nf index ec03cac..0fadc0f 100644 --- a/workflows/lrsomatic.nf +++ b/workflows/lrsomatic.nf @@ -98,7 +98,7 @@ workflow LRSOMATIC { params.vep_species = getGenomeAttribute('vep_species') if (params.pon_vcfs != null) { - pon_files = params.pon_vcfs.collect { file(it) } + pon_files = params.pon_vcfs.collect { it ->file(it) } pon_flags = params.pon_flags } else if (params.genome == 'GRCh38') { @@ -134,7 +134,7 @@ workflow LRSOMATIC { if (pon_files.size() != pon_flags.size()) { error "PoN VCFs and allele flags must have same length" } - Channel + channel .of( tuple(pon_files, pon_flags) ) .set { pon_channel } // pon_channel: [ [pon_vcf_path, ...], [is_population_allele_flag, ...] ] @@ -478,7 +478,7 @@ workflow LRSOMATIC { if (!params.skip_modkit) { MODKIT_PILEUP(ch_index_minimap, ch_fasta, ch_fai, [[:],[]]) } - + ch_index_minimap .branch { meta, _bams, _bais -> paired: meta.paired_data // meta.paired_data is the normal sample ID for tumors, or the tumor ID for normals From 33cd33b42ea207992dbfb5bc215c20c041e38d4d Mon Sep 17 00:00:00 2001 From: ljwharbers Date: Wed, 1 Apr 2026 15:56:20 +0200 Subject: [PATCH 14/15] update patch for longphase/phase --- modules.json | 156 +++++++++++++----- .../longphase/phase/longphase-phase.diff | 38 +++-- 2 files changed, 145 insertions(+), 49 deletions(-) diff --git a/modules.json b/modules.json index 1359174..7c1cd6d 100644 --- a/modules.json +++ b/modules.json @@ -8,182 +8,250 @@ "ascat": { "branch": "master", "git_sha": "e753770db613ce014b3c4bc94f6cba443427b726", - "installed_by": ["modules"], + "installed_by": [ + "modules" + ], "patch": "modules/nf-core/ascat/ascat.diff" }, "bcftools/annotate": { "branch": "master", "git_sha": "3d9c2f4beaa4f62b3f006928fd9095a496d1e5a8", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "bcftools/concat": { "branch": "master", "git_sha": "6383d8fe58f9498eecd5aa303e71a4a932d1e9f6", - "installed_by": ["modules", "vcf_gather_bcftools"] + "installed_by": [ + "modules", + "vcf_gather_bcftools" + ] }, "bcftools/isec": { "branch": "master", "git_sha": "3b2c3559699a7bca6a7c2b220695a072e030e17d", - "installed_by": ["modules"], + "installed_by": [ + "modules" + ], "patch": "modules/nf-core/bcftools/isec/bcftools-isec.diff" }, "bcftools/merge": { "branch": "master", "git_sha": "3d9c2f4beaa4f62b3f006928fd9095a496d1e5a8", - "installed_by": ["modules"], + "installed_by": [ + "modules" + ], "patch": "modules/nf-core/bcftools/merge/bcftools-merge.diff" }, "bcftools/norm": { "branch": "master", "git_sha": "6383d8fe58f9498eecd5aa303e71a4a932d1e9f6", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "bcftools/query": { "branch": "master", "git_sha": "6383d8fe58f9498eecd5aa303e71a4a932d1e9f6", - "installed_by": ["modules"], + "installed_by": [ + "modules" + ], "patch": "modules/nf-core/bcftools/query/bcftools-query.diff" }, "bcftools/sort": { "branch": "master", "git_sha": "6383d8fe58f9498eecd5aa303e71a4a932d1e9f6", - "installed_by": ["modules", "vcf_gather_bcftools"], + "installed_by": [ + "modules", + "vcf_gather_bcftools" + ], "patch": "modules/nf-core/bcftools/sort/bcftools-sort.diff" }, "deepvariant/callvariants": { "branch": "master", "git_sha": "f2b138ee1d91f67d31c187317d7e83e429bf0309", - "installed_by": ["deepvariant"], + "installed_by": [ + "deepvariant" + ], "patch": "modules/nf-core/deepvariant/callvariants/deepvariant-callvariants.diff" }, "deepvariant/makeexamples": { "branch": "master", "git_sha": "f2b138ee1d91f67d31c187317d7e83e429bf0309", - "installed_by": ["deepvariant"], + "installed_by": [ + "deepvariant" + ], "patch": "modules/nf-core/deepvariant/makeexamples/deepvariant-makeexamples.diff" }, "deepvariant/postprocessvariants": { "branch": "master", "git_sha": "f2b138ee1d91f67d31c187317d7e83e429bf0309", - "installed_by": ["deepvariant"], + "installed_by": [ + "deepvariant" + ], "patch": "modules/nf-core/deepvariant/postprocessvariants/deepvariant-postprocessvariants.diff" }, "ensemblvep/download": { "branch": "master", "git_sha": "90cdd21fd96ccbdb3bc90797ca69570d18391055", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "ensemblvep/vep": { "branch": "master", "git_sha": "890fdcff71928fc1470d3e669d4c430c8c770297", - "installed_by": ["modules"], + "installed_by": [ + "modules" + ], "patch": "modules/nf-core/ensemblvep/vep/ensemblvep-vep.diff" }, "longphase/haplotag": { "branch": "master", "git_sha": "b8d30a43f33aee3148b0e9e9f00587984a4ac195", - "installed_by": ["modules"], + "installed_by": [ + "modules" + ], "patch": "modules/nf-core/longphase/haplotag/longphase-haplotag.diff" }, "longphase/phase": { "branch": "master", "git_sha": "b8d30a43f33aee3148b0e9e9f00587984a4ac195", - "installed_by": ["modules"], + "installed_by": [ + "modules" + ], "patch": "modules/nf-core/longphase/phase/longphase-phase.diff" }, "minimap2/align": { "branch": "master", "git_sha": "5c9f8d5b7671237c906abadc9ff732b301ca15ca", - "installed_by": ["modules"], + "installed_by": [ + "modules" + ], "patch": "modules/nf-core/minimap2/align/minimap2-align.diff" }, "minimap2/index": { "branch": "master", "git_sha": "14980f759266eec42dac401fcafeb83d6c957b41", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "modkit/pileup": { "branch": "master", "git_sha": "3d81317a30d1016b533982d6b84df07713ae520a", - "installed_by": ["modules"], + "installed_by": [ + "modules" + ], "patch": "modules/nf-core/modkit/pileup/modkit-pileup.diff" }, "mosdepth": { "branch": "master", "git_sha": "6832b69ef7f98c54876d6436360b6b945370c615", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "multiqc": { "branch": "master", "git_sha": "2c73cc8fa92cf48de3da0b643fdf357a8a290b36", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "nanoplot": { "branch": "master", "git_sha": "682f789f93070bd047868300dd018faf3d434e7c", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "pigz/uncompress": { "branch": "master", "git_sha": "f84336b7fa91a65aa61d215b8c109fbb8e4b4ac6", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "samtools/cat": { "branch": "master", "git_sha": "f9edc59be2fe25bb6fc73ca4dfc0d28246f2a2d6", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "samtools/faidx": { "branch": "master", "git_sha": "b2e78932ef01165fd85829513eaca29eff8e640a", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "samtools/flagstat": { "branch": "master", "git_sha": "1d2fbdcbca677bbe8da0f9d0d2bb7c02f2cab1c9", - "installed_by": ["bam_stats_samtools"] + "installed_by": [ + "bam_stats_samtools" + ] }, "samtools/idxstats": { "branch": "master", "git_sha": "1d2fbdcbca677bbe8da0f9d0d2bb7c02f2cab1c9", - "installed_by": ["bam_stats_samtools"] + "installed_by": [ + "bam_stats_samtools" + ] }, "samtools/index": { "branch": "master", "git_sha": "1d2fbdcbca677bbe8da0f9d0d2bb7c02f2cab1c9", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "samtools/stats": { "branch": "master", "git_sha": "fe93fde0845f907fc91ad7cc7d797930408824df", - "installed_by": ["bam_stats_samtools"], + "installed_by": [ + "bam_stats_samtools" + ], "patch": "modules/nf-core/samtools/stats/samtools-stats.diff" }, "severus": { "branch": "master", "git_sha": "4dd9d8439a429c7ee566e0e2347f76ddeef27e66", - "installed_by": ["modules"], + "installed_by": [ + "modules" + ], "patch": "modules/nf-core/severus/severus.diff" }, "untar": { "branch": "master", "git_sha": "447f7bc0fa41dfc2400c8cad4c0291880dc060cf", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "unzip": { "branch": "master", "git_sha": "4dd9d8439a429c7ee566e0e2347f76ddeef27e66", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "wget": { "branch": "master", "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "whatshap/stats": { "branch": "master", "git_sha": "bfab71f4d68c1aaff09335a3433e7b2836918b2a", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] } } }, @@ -192,31 +260,41 @@ "bam_stats_samtools": { "branch": "master", "git_sha": "7ac6cbe7c17c2dad685da7f70496c8f48ea48687", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] }, "deepvariant": { "branch": "master", "git_sha": "f2b138ee1d91f67d31c187317d7e83e429bf0309", - "installed_by": ["subworkflows"], + "installed_by": [ + "subworkflows" + ], "patch": "subworkflows/nf-core/deepvariant/deepvariant.diff" }, "utils_nextflow_pipeline": { "branch": "master", "git_sha": "05954dab2ff481bcb999f24455da29a5828af08d", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] }, "utils_nfcore_pipeline": { "branch": "master", "git_sha": "65f5e638d901a51534c68fd5c1c19e8112fb4df1", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] }, "utils_nfschema_plugin": { "branch": "master", "git_sha": "e753770db613ce014b3c4bc94f6cba443427b726", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] } } } } } -} +} \ No newline at end of file diff --git a/modules/nf-core/longphase/phase/longphase-phase.diff b/modules/nf-core/longphase/phase/longphase-phase.diff index b994f78..08457dc 100644 --- a/modules/nf-core/longphase/phase/longphase-phase.diff +++ b/modules/nf-core/longphase/phase/longphase-phase.diff @@ -22,10 +22,14 @@ Changes in 'longphase/phase/main.nf': when: task.ext.when == null || task.ext.when -@@ -46,9 +49,20 @@ +@@ -46,27 +49,28 @@ $args2 \\ ${prefix}*.vcf +- cat <<-END_VERSIONS > versions.yml +- "${task.process}": +- longphase: \$(longphase --version | head -n 1 | sed 's/Version: //') +- END_VERSIONS + tabix -p vcf ${prefix}.vcf.gz + + if [ -f ${prefix}_SV.vcf.gz ]; then @@ -35,17 +39,31 @@ Changes in 'longphase/phase/main.nf': + if [ -f ${prefix}_mod.vcf.gz ]; then + tabix -p vcf ${prefix}_mod.vcf.gz + fi -+ - cat <<-END_VERSIONS > versions.yml - "${task.process}": - longphase: \$(longphase --version | head -n 1 | sed 's/Version: //') -+ tabix: \$(echo \$(tabix -h 2>&1) | sed 's/^.*Version: //; s/ .*\$//') - END_VERSIONS """ -@@ -69,4 +83,4 @@ - longphase: \$(longphase --version | head -n 1 | sed 's/Version: //') - END_VERSIONS + stub: +- def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}" +- def sv_command = svs ? "echo '' | bgzip -c > ${prefix}_SV.vcf.gz" : "" +- def mod_command = mods ? "echo '' | bgzip -c > ${prefix}_mod.vcf.gz" : "" + """ +- echo $args +- echo "" | bgzip -c > ${prefix}.vcf.gz ++ tabix -p vcf ${prefix}.vcf.gz + +- $sv_command +- $mod_command ++ if [ -f ${prefix}_SV.vcf.gz ]; then ++ tabix -p vcf ${prefix}_SV.vcf.gz ++ fi + +- cat <<-END_VERSIONS > versions.yml +- "${task.process}": +- longphase: \$(longphase --version | head -n 1 | sed 's/Version: //') +- END_VERSIONS ++ if [ -f ${prefix}_mod.vcf.gz ]; then ++ tabix -p vcf ${prefix}_mod.vcf.gz ++ fi """ -} +} From a657d14d9a7a387541c9831328cd7d2034bc7ed0 Mon Sep 17 00:00:00 2001 From: ljwharbers Date: Wed, 1 Apr 2026 15:57:28 +0200 Subject: [PATCH 15/15] linting a automatically generated file for some reason --- modules.json | 156 +++++++++++++-------------------------------------- 1 file changed, 39 insertions(+), 117 deletions(-) diff --git a/modules.json b/modules.json index 7c1cd6d..1359174 100644 --- a/modules.json +++ b/modules.json @@ -8,250 +8,182 @@ "ascat": { "branch": "master", "git_sha": "e753770db613ce014b3c4bc94f6cba443427b726", - "installed_by": [ - "modules" - ], + "installed_by": ["modules"], "patch": "modules/nf-core/ascat/ascat.diff" }, "bcftools/annotate": { "branch": "master", "git_sha": "3d9c2f4beaa4f62b3f006928fd9095a496d1e5a8", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "bcftools/concat": { "branch": "master", "git_sha": "6383d8fe58f9498eecd5aa303e71a4a932d1e9f6", - "installed_by": [ - "modules", - "vcf_gather_bcftools" - ] + "installed_by": ["modules", "vcf_gather_bcftools"] }, "bcftools/isec": { "branch": "master", "git_sha": "3b2c3559699a7bca6a7c2b220695a072e030e17d", - "installed_by": [ - "modules" - ], + "installed_by": ["modules"], "patch": "modules/nf-core/bcftools/isec/bcftools-isec.diff" }, "bcftools/merge": { "branch": "master", "git_sha": "3d9c2f4beaa4f62b3f006928fd9095a496d1e5a8", - "installed_by": [ - "modules" - ], + "installed_by": ["modules"], "patch": "modules/nf-core/bcftools/merge/bcftools-merge.diff" }, "bcftools/norm": { "branch": "master", "git_sha": "6383d8fe58f9498eecd5aa303e71a4a932d1e9f6", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "bcftools/query": { "branch": "master", "git_sha": "6383d8fe58f9498eecd5aa303e71a4a932d1e9f6", - "installed_by": [ - "modules" - ], + "installed_by": ["modules"], "patch": "modules/nf-core/bcftools/query/bcftools-query.diff" }, "bcftools/sort": { "branch": "master", "git_sha": "6383d8fe58f9498eecd5aa303e71a4a932d1e9f6", - "installed_by": [ - "modules", - "vcf_gather_bcftools" - ], + "installed_by": ["modules", "vcf_gather_bcftools"], "patch": "modules/nf-core/bcftools/sort/bcftools-sort.diff" }, "deepvariant/callvariants": { "branch": "master", "git_sha": "f2b138ee1d91f67d31c187317d7e83e429bf0309", - "installed_by": [ - "deepvariant" - ], + "installed_by": ["deepvariant"], "patch": "modules/nf-core/deepvariant/callvariants/deepvariant-callvariants.diff" }, "deepvariant/makeexamples": { "branch": "master", "git_sha": "f2b138ee1d91f67d31c187317d7e83e429bf0309", - "installed_by": [ - "deepvariant" - ], + "installed_by": ["deepvariant"], "patch": "modules/nf-core/deepvariant/makeexamples/deepvariant-makeexamples.diff" }, "deepvariant/postprocessvariants": { "branch": "master", "git_sha": "f2b138ee1d91f67d31c187317d7e83e429bf0309", - "installed_by": [ - "deepvariant" - ], + "installed_by": ["deepvariant"], "patch": "modules/nf-core/deepvariant/postprocessvariants/deepvariant-postprocessvariants.diff" }, "ensemblvep/download": { "branch": "master", "git_sha": "90cdd21fd96ccbdb3bc90797ca69570d18391055", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "ensemblvep/vep": { "branch": "master", "git_sha": "890fdcff71928fc1470d3e669d4c430c8c770297", - "installed_by": [ - "modules" - ], + "installed_by": ["modules"], "patch": "modules/nf-core/ensemblvep/vep/ensemblvep-vep.diff" }, "longphase/haplotag": { "branch": "master", "git_sha": "b8d30a43f33aee3148b0e9e9f00587984a4ac195", - "installed_by": [ - "modules" - ], + "installed_by": ["modules"], "patch": "modules/nf-core/longphase/haplotag/longphase-haplotag.diff" }, "longphase/phase": { "branch": "master", "git_sha": "b8d30a43f33aee3148b0e9e9f00587984a4ac195", - "installed_by": [ - "modules" - ], + "installed_by": ["modules"], "patch": "modules/nf-core/longphase/phase/longphase-phase.diff" }, "minimap2/align": { "branch": "master", "git_sha": "5c9f8d5b7671237c906abadc9ff732b301ca15ca", - "installed_by": [ - "modules" - ], + "installed_by": ["modules"], "patch": "modules/nf-core/minimap2/align/minimap2-align.diff" }, "minimap2/index": { "branch": "master", "git_sha": "14980f759266eec42dac401fcafeb83d6c957b41", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "modkit/pileup": { "branch": "master", "git_sha": "3d81317a30d1016b533982d6b84df07713ae520a", - "installed_by": [ - "modules" - ], + "installed_by": ["modules"], "patch": "modules/nf-core/modkit/pileup/modkit-pileup.diff" }, "mosdepth": { "branch": "master", "git_sha": "6832b69ef7f98c54876d6436360b6b945370c615", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "multiqc": { "branch": "master", "git_sha": "2c73cc8fa92cf48de3da0b643fdf357a8a290b36", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "nanoplot": { "branch": "master", "git_sha": "682f789f93070bd047868300dd018faf3d434e7c", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "pigz/uncompress": { "branch": "master", "git_sha": "f84336b7fa91a65aa61d215b8c109fbb8e4b4ac6", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "samtools/cat": { "branch": "master", "git_sha": "f9edc59be2fe25bb6fc73ca4dfc0d28246f2a2d6", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "samtools/faidx": { "branch": "master", "git_sha": "b2e78932ef01165fd85829513eaca29eff8e640a", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "samtools/flagstat": { "branch": "master", "git_sha": "1d2fbdcbca677bbe8da0f9d0d2bb7c02f2cab1c9", - "installed_by": [ - "bam_stats_samtools" - ] + "installed_by": ["bam_stats_samtools"] }, "samtools/idxstats": { "branch": "master", "git_sha": "1d2fbdcbca677bbe8da0f9d0d2bb7c02f2cab1c9", - "installed_by": [ - "bam_stats_samtools" - ] + "installed_by": ["bam_stats_samtools"] }, "samtools/index": { "branch": "master", "git_sha": "1d2fbdcbca677bbe8da0f9d0d2bb7c02f2cab1c9", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "samtools/stats": { "branch": "master", "git_sha": "fe93fde0845f907fc91ad7cc7d797930408824df", - "installed_by": [ - "bam_stats_samtools" - ], + "installed_by": ["bam_stats_samtools"], "patch": "modules/nf-core/samtools/stats/samtools-stats.diff" }, "severus": { "branch": "master", "git_sha": "4dd9d8439a429c7ee566e0e2347f76ddeef27e66", - "installed_by": [ - "modules" - ], + "installed_by": ["modules"], "patch": "modules/nf-core/severus/severus.diff" }, "untar": { "branch": "master", "git_sha": "447f7bc0fa41dfc2400c8cad4c0291880dc060cf", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "unzip": { "branch": "master", "git_sha": "4dd9d8439a429c7ee566e0e2347f76ddeef27e66", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "wget": { "branch": "master", "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "whatshap/stats": { "branch": "master", "git_sha": "bfab71f4d68c1aaff09335a3433e7b2836918b2a", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] } } }, @@ -260,41 +192,31 @@ "bam_stats_samtools": { "branch": "master", "git_sha": "7ac6cbe7c17c2dad685da7f70496c8f48ea48687", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "deepvariant": { "branch": "master", "git_sha": "f2b138ee1d91f67d31c187317d7e83e429bf0309", - "installed_by": [ - "subworkflows" - ], + "installed_by": ["subworkflows"], "patch": "subworkflows/nf-core/deepvariant/deepvariant.diff" }, "utils_nextflow_pipeline": { "branch": "master", "git_sha": "05954dab2ff481bcb999f24455da29a5828af08d", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "utils_nfcore_pipeline": { "branch": "master", "git_sha": "65f5e638d901a51534c68fd5c1c19e8112fb4df1", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "utils_nfschema_plugin": { "branch": "master", "git_sha": "e753770db613ce014b3c4bc94f6cba443427b726", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] } } } } } -} \ No newline at end of file +}