diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b51ffb2e..4579b97cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -47,6 +47,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [#962](https://github.com/genomic-medicine-sweden/nallo/pull/962) - Changed peddy inputs from ranked to annotated or unannotated variants, depending on availability - [#964](https://github.com/genomic-medicine-sweden/nallo/pull/964) - Limit `--snv_calling_processes` to `1` for sentieon due to issues with duplicated variants (see #926) - [#966](https://github.com/genomic-medicine-sweden/nallo/pull/966) - Refactored the code related to variant ranking to reduce code duplication +- [#969](https://github.com/genomic-medicine-sweden/nallo/pull/969) - Split hifiasm process into two so they can have different resources: first only create bins then assembly with the bins already created - [#974](https://github.com/genomic-medicine-sweden/nallo/pull/974) - Updated FastQC nf-core module - [#975](https://github.com/genomic-medicine-sweden/nallo/pull/975) - Moved params from `nallo.nf` to main workflow - [#975](https://github.com/genomic-medicine-sweden/nallo/pull/975) - Renamed `ch_databases` to `ch_echtvar_databases` for clarity diff --git a/conf/base.config b/conf/base.config index 757b07642..5adf7ff9d 100644 --- a/conf/base.config +++ b/conf/base.config @@ -50,7 +50,7 @@ process { withLabel:process_high_memory { memory = { 200.GB * task.attempt } } - withName: 'HIFIASM' { + withName: 'HIFIASM_ASSEMBLY|HIFIASM_BINS' { time = { 36.h * task.attempt } } withLabel:error_ignore { diff --git a/conf/modules/genome_assembly.config b/conf/modules/genome_assembly.config index 98a0dc3f2..822586721 100644 --- a/conf/modules/genome_assembly.config +++ b/conf/modules/genome_assembly.config @@ -24,12 +24,13 @@ process { ] } - withName: '.*:GENOME_ASSEMBLY:HIFIASM' { + withName: '.*:GENOME_ASSEMBLY:HIFIASM_ASSEMBLY|.*:GENOME_ASSEMBLY:HIFIASM_BINS' { ext.args = { [ "${params.extra_hifiasm_options}", "${params.hifiasm_preset}", '--dual-scaf', - '--telo-m CCCTAA' + '--telo-m CCCTAA', + '--bin-only' ].join(' ') } } diff --git a/modules.json b/modules.json index ab62bfc85..6eda2a976 100644 --- a/modules.json +++ b/modules.json @@ -203,7 +203,7 @@ }, "hifiasm": { "branch": "master", - "git_sha": "b00cfb8947da7842e8f249cc0c5bb8544cfac18e", + "git_sha": "a20dba808c5ce99afe6d40d7fc072c74ca317c8d", "installed_by": ["modules"] }, "hificnv": { diff --git a/modules/nf-core/hifiasm/main.nf b/modules/nf-core/hifiasm/main.nf index dce2c467a..585227b9e 100644 --- a/modules/nf-core/hifiasm/main.nf +++ b/modules/nf-core/hifiasm/main.nf @@ -9,12 +9,12 @@ process HIFIASM { input: tuple val(meta) , path(long_reads) , path(ul_reads) - tuple val(meta1), path(paternal_kmer_dump), path(maternal_kmer_dump) - tuple val(meta2), path(hic_read1) , path(hic_read2) - tuple val(meta3), path(bin_files) + tuple val(meta2), path(paternal_kmer_dump), path(maternal_kmer_dump) + tuple val(meta3), path(hic_read1) , path(hic_read2) + tuple val(meta4), path(bin_files) output: - tuple val(meta), path("*.r_utg.gfa") , emit: raw_unitigs + tuple val(meta), path("*.r_utg.gfa") , emit: raw_unitigs , optional: true tuple val(meta), path("*.bin") , emit: bin_files , optional: true tuple val(meta), path("*.p_utg.gfa") , emit: processed_unitigs, optional: true tuple val(meta), path("${prefix}.{p_ctg,bp.p_ctg,hic.p_ctg}.gfa"), emit: primary_contigs , optional: true diff --git a/modules/nf-core/hifiasm/meta.yml b/modules/nf-core/hifiasm/meta.yml index 9c32bb274..44cf76c9d 100644 --- a/modules/nf-core/hifiasm/meta.yml +++ b/modules/nf-core/hifiasm/meta.yml @@ -32,7 +32,7 @@ input: type: file description: ONT long reads to use with --ul. ontologies: [] - - - meta1: + - - meta2: type: map description: | Groovy Map containing information about parental kmers. @@ -46,7 +46,7 @@ input: description: Yak kmer dump file for maternal reads (can be used for haplotype resolution). It can have an arbitrary extension. ontologies: [] - - - meta2: + - - meta3: type: map description: | Groovy Map containing information about Hi-C reads @@ -58,7 +58,7 @@ input: type: file description: Hi-C data Reverse reads. ontologies: [] - - - meta3: + - - meta4: type: map description: | Groovy Map containing information about the input bin files diff --git a/modules/nf-core/hifiasm/tests/main.nf.test b/modules/nf-core/hifiasm/tests/main.nf.test index d158847b3..a8207d2af 100644 --- a/modules/nf-core/hifiasm/tests/main.nf.test +++ b/modules/nf-core/hifiasm/tests/main.nf.test @@ -12,7 +12,7 @@ nextflow_process { test("homo_sapiens pacbio hifi [fastq, [,], [,], [,]]") { when { params { - extra_output = "--write-ec --write-paf" + module_args = "-f0 --write-ec --write-paf" } process { @@ -98,7 +98,8 @@ nextflow_process { when { params { - extra_output = "" + setup_args = '-f0 --bin-only' + module_args = '-f0' } process { @@ -143,7 +144,7 @@ nextflow_process { when { params { - extra_output = "" + module_args = "-f0" } process { @@ -200,7 +201,7 @@ nextflow_process { test("homo_sapiens pacbio hifi [fastq, [yak, yak], [,], [,] ]") { when { params { - extra_output = "" + module_args = "-f0" } process { @@ -258,7 +259,7 @@ nextflow_process { test("homo_sapiens pacbio hifi [fastq, [,], [fastq, fastq], [,] ]") { when { params { - extra_output = "" + module_args = "-f0" } process { @@ -318,7 +319,7 @@ nextflow_process { test("homo_sapiens pacbio hifi [fastq, [yak, yak], [fastq, fastq], [,] ]") { when { params { - extra_output = "" + module_args = "-f0" } process { """ @@ -354,7 +355,7 @@ nextflow_process { test("homo_sapiens pacbio hifi [fastq, [yak, ], [,], [,] ]") { when { params { - extra_output = "" + module_args = "-f0" } process { @@ -387,7 +388,7 @@ nextflow_process { test("homo_sapiens pacbio hifi [fastq, [,], [, fastq], [,] ]") { when { params { - extra_output = "" + module_args = "-f0" } process { @@ -421,7 +422,7 @@ nextflow_process { options "-stub" when { params { - extra_output = "" + module_args = "-f0" } process { diff --git a/modules/nf-core/hifiasm/tests/nextflow.config b/modules/nf-core/hifiasm/tests/nextflow.config index ead4b539a..833326b45 100644 --- a/modules/nf-core/hifiasm/tests/nextflow.config +++ b/modules/nf-core/hifiasm/tests/nextflow.config @@ -1,3 +1,8 @@ process { - ext.args = "-f0 ${params.extra_output}" + withName: "HIFIASM" { + ext.args = params.module_args + } + withName: "HIFIASM_INITIAL" { + ext.args = { params.setup_args ?: '' } + } } diff --git a/subworkflows/local/genome_assembly/main.nf b/subworkflows/local/genome_assembly/main.nf index 963f019f0..4fb412ccf 100644 --- a/subworkflows/local/genome_assembly/main.nf +++ b/subworkflows/local/genome_assembly/main.nf @@ -1,15 +1,15 @@ -include { CAT_FASTQ } from '../../../modules/nf-core/cat/fastq/main' -include { HIFIASM } from '../../../modules/nf-core/hifiasm' -include { YAK_COUNT } from '../../../modules/nf-core/yak/count/main' -include { GFASTATS } from '../../../modules/nf-core/gfastats/main' +include { CAT_FASTQ } from '../../../modules/nf-core/cat/fastq/main' +include { HIFIASM as HIFIASM_BINS } from '../../../modules/nf-core/hifiasm' +include { HIFIASM as HIFIASM_ASSEMBLY } from '../../../modules/nf-core/hifiasm' +include { YAK_COUNT } from '../../../modules/nf-core/yak/count/main' +include { GFASTATS } from '../../../modules/nf-core/gfastats/main' // This subworkflow assembles and outputs haplotypes from a set of reads (grouped per sample), using hifiasm and gfastats. // It assumes that while each sample can have multiple files, each sample belongs to one family at most. workflow GENOME_ASSEMBLY { - take: - ch_reads // channel: [ val(meta), fastqs ] - trio_binning // bool: Should we use trio binning mode where possible? + ch_reads // channel: [ val(meta), fastqs ] + trio_binning // bool: Should we use trio binning mode where possible? main: if (trio_binning) { @@ -17,9 +17,9 @@ workflow GENOME_ASSEMBLY { ch_reads .branch { meta, _reads -> def is_parent = meta.relationship in ['father', 'mother'] - paired_parents : is_parent && meta.has_other_parent - children_with_both_parents : meta.relationship == 'child' && meta.two_parents - other : true + paired_parents: is_parent && meta.has_other_parent + children_with_both_parents: meta.relationship == 'child' && meta.two_parents + other: true } .set { ch_branched_samples } @@ -32,17 +32,15 @@ workflow GENOME_ASSEMBLY { } .set { ch_paired_parents_for_yak } - CAT_FASTQ ( + CAT_FASTQ( ch_paired_parents_for_yak.cat ) - YAK_COUNT ( + YAK_COUNT( CAT_FASTQ.out.reads.concat(ch_paired_parents_for_yak.no_cat) ) YAK_COUNT.out.yak - // Because a parent can have multiple children, and meta.children is a list of all children, - // we need to return one tuple per child. .flatMap { meta, yak -> (meta.children ?: []).collect { child_id -> [child_id, meta, yak] @@ -50,19 +48,19 @@ workflow GENOME_ASSEMBLY { } .branch { child_id, meta, yak -> paternal: meta.relationship == 'father' - return [ child_id, yak ] + return [child_id, yak] maternal: meta.relationship == 'mother' - return [ child_id, yak ] + return [child_id, yak] } .set { ch_yak_output } // Creates the input for trio-binned assemblies (children with both parents) ch_branched_samples.children_with_both_parents - .map { meta, reads -> [ meta.id, meta, reads ] } + .map { meta, reads -> [meta.id, meta, reads] } .join(ch_yak_output.paternal) .join(ch_yak_output.maternal) .map { _id, meta, reads, yak_paternal, yak_maternal -> - [ meta, reads, yak_paternal, yak_maternal ] + [meta, reads, yak_paternal, yak_maternal] } .set { ch_with_both_parents } @@ -70,36 +68,55 @@ workflow GENOME_ASSEMBLY { ch_branched_samples.other .concat(ch_branched_samples.paired_parents) .map { meta, fastqs -> - [ meta, fastqs, [], [] ] + [meta, fastqs, [], []] } .concat(ch_with_both_parents) .multiMap { meta, reads, yak_paternal, yak_maternal -> - reads : [ meta, reads , [] ] - yak : [ meta, yak_paternal, yak_maternal ] + reads: [meta, reads, []] + yak: [meta, yak_paternal, yak_maternal] } .set { ch_hifiasm_in } - } else { + } + else { ch_reads .multiMap { meta, reads -> - reads : [ meta, reads, [] ] - yak : [ [], [], [] ] + reads: [meta, reads, []] + yak: [meta, [], []] } .set { ch_hifiasm_in } } - HIFIASM ( + HIFIASM_BINS( ch_hifiasm_in.reads, ch_hifiasm_in.yak, - [[],[],[]], - [[],[]] + [[], [], []], + [[], []], + ) + + // Explicitly key bins/reads/yak by sample ID before assembly so each sample gets its own bins and yaks. + ch_hifiasm_in.reads + .join(ch_hifiasm_in.yak, failOnMismatch: true, failOnDuplicate: true) + .join(HIFIASM_BINS.out.bin_files, failOnMismatch: true, failOnDuplicate: true) + .multiMap { meta, reads, ul_reads, yak_paternal, yak_maternal, bin_files -> + reads: [meta, reads, ul_reads] + bins: [meta, bin_files] + yak: [meta, yak_paternal, yak_maternal] + } + .set { ch_hifiasm_assembly_in } + + HIFIASM_ASSEMBLY( + ch_hifiasm_assembly_in.reads, + ch_hifiasm_assembly_in.yak, + [[], [], []], + ch_hifiasm_assembly_in.bins, ) - HIFIASM.out.hap1_contigs - .map { meta, fasta -> [ meta + [ 'haplotype': 1 ], fasta ] } + HIFIASM_ASSEMBLY.out.hap1_contigs + .map { meta, fasta -> [meta + ['haplotype': 1], fasta] } .set { ch_gfastats_paternal_in } - HIFIASM.out.hap2_contigs - .map { meta, fasta -> [ meta + [ 'haplotype': 2 ], fasta ] } + HIFIASM_ASSEMBLY.out.hap2_contigs + .map { meta, fasta -> [meta + ['haplotype': 2], fasta] } .set { ch_gfastats_maternal_in } GFASTATS( @@ -107,10 +124,10 @@ workflow GENOME_ASSEMBLY { 'fasta', '', '', - [[],[]], - [[],[]], - [[],[]], - [[],[]] + [[], []], + [[], []], + [[], []], + [[], []], ) emit: diff --git a/subworkflows/local/genome_assembly/tests/main.nf.test b/subworkflows/local/genome_assembly/tests/main.nf.test index 09844f1d5..2ce21e6ae 100644 --- a/subworkflows/local/genome_assembly/tests/main.nf.test +++ b/subworkflows/local/genome_assembly/tests/main.nf.test @@ -20,11 +20,10 @@ nextflow_workflow { } } then { - assertAll( { assert workflow.success }, { assert workflow.out.assembled_haplotypes.size() == 2 }, - { assert workflow.trace.succeeded().size() == 3 }, // 3 tasks: 1x HIFIASM 2x GFASTATS + { assert workflow.trace.succeeded().size() == 4 }, // 4 tasks: 1x HIFIASM_BINS, 1x HIFIASM_ASSEMBLY, 2x GFASTATS { assert snapshot(workflow.out).match() } ) } @@ -71,7 +70,7 @@ nextflow_workflow { then { assertAll( { assert workflow.success }, - { assert workflow.trace.succeeded().size() == 14 }, // 14 tasks: 3x FASTQ, 2x YAK_COUNT, 3x HIFIASM 6x GFASTATS. + { assert workflow.trace.succeeded().size() == 17 }, // 17 tasks: 3x FASTQ, 2x YAK_COUNT, 3x HIFIASM_ASSEMBLY, 3x HIFIASM_BINS, 6x GFASTATS. { assert workflow.out.assembled_haplotypes.size() == 6 }, { assert snapshot(workflow.out).match() } ) @@ -125,7 +124,7 @@ nextflow_workflow { // other than a manual .view() on `ch_with_both_parents`, without adding the // `ch_with_both_parents` intermediate channel to the output. { assert workflow.success }, - { assert workflow.trace.succeeded().size() == 18 }, // 14 tasks: 4x FASTQ, 2x YAK_COUNT, 4x HIFIASM 8x GFASTATS. + { assert workflow.trace.succeeded().size() == 22 }, // 22 tasks: 4x FASTQ, 2x YAK_COUNT, 4x HIFIASM_BINS, 4x HIFIASM_ASSEMBLY, 8x GFASTATS. { assert workflow.out.assembled_haplotypes.size() == 8 }, { assert snapshot(workflow.out).match() } ) @@ -170,7 +169,7 @@ nextflow_workflow { then { assertAll( { assert workflow.success }, - { assert workflow.trace.succeeded().size() == 8 }, // 8 tasks: 2x FASTQ, 2x HIFIASM 4x GFASTATS. + { assert workflow.trace.succeeded().size() == 10 }, // 10 tasks: 2x FASTQ, 2x HIFIASM_BINS, 2x HIFIASM_ASSEMBLY, 4x GFASTATS. { assert workflow.out.assembled_haplotypes.size() == 4 }, { assert snapshot(workflow.out).match() } ) @@ -198,7 +197,7 @@ nextflow_workflow { assertAll( { assert workflow.success }, { assert workflow.out.assembled_haplotypes.size() == 2 }, - { assert workflow.trace.succeeded().size() == 3 }, // 3 tasks: 1x HIFIASM 2x GFASTATS + { assert workflow.trace.succeeded().size() == 4 }, // 4 tasks: 1x HIFIASM_BINS, 1x HIFIASM_ASSEMBLY, 2x GFASTATS { assert snapshot(workflow.out).match() } ) } @@ -229,7 +228,7 @@ nextflow_workflow { assertAll( { assert workflow.success }, { assert workflow.out.assembled_haplotypes.size() == 2 }, - { assert workflow.trace.succeeded().size() == 3 }, // 3 tasks: 1x HIFIASM 2x GFASTATS + { assert workflow.trace.succeeded().size() == 4 }, // 4 tasks: 1x HIFIASM_BINS, 1x HIFIASM_ASSEMBLY, 2x GFASTATS { assert snapshot(workflow.out).match() } ) } @@ -278,7 +277,7 @@ nextflow_workflow { then { assertAll( { assert workflow.success }, - { assert workflow.trace.succeeded().size() == 14 }, // 14 tasks: 3x FASTQ, 2x YAK_COUNT, 3x HIFIASM 6x GFASTATS. + { assert workflow.trace.succeeded().size() == 17 }, // 17 tasks: 3x FASTQ, 2x YAK_COUNT, 3x HIFIASM_BINS, 3x HIFIASM_ASSEMBLY, 6x GFASTATS. { assert workflow.out.assembled_haplotypes.size() == 6 }, { assert snapshot(workflow.out).match() } ) diff --git a/subworkflows/local/genome_assembly/tests/main.nf.test.snap b/subworkflows/local/genome_assembly/tests/main.nf.test.snap index 1f9c15ff3..04caa42fb 100644 --- a/subworkflows/local/genome_assembly/tests/main.nf.test.snap +++ b/subworkflows/local/genome_assembly/tests/main.nf.test.snap @@ -44,11 +44,11 @@ ] } ], + "timestamp": "2026-03-27T16:58:10.652835085", "meta": { "nf-test": "0.9.3", "nextflow": "25.10.4" - }, - "timestamp": "2026-03-27T16:58:10.652835085" + } }, "two children with two parents, trio-binning mode": { "content": [ @@ -291,11 +291,11 @@ ] } ], + "timestamp": "2026-04-22T12:07:24.83452037", "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.4" - }, - "timestamp": "2026-03-27T16:57:45.252123092" + "nf-test": "0.9.5", + "nextflow": "26.03.2" + } }, "child with one parent, trio-binning mode -stub": { "content": [ @@ -418,11 +418,11 @@ ] } ], + "timestamp": "2026-03-27T16:57:54.591328042", "meta": { "nf-test": "0.9.3", "nextflow": "25.10.4" - }, - "timestamp": "2026-03-27T16:57:54.591328042" + } }, "child with two parents, trio-binning mode": { "content": [ @@ -601,11 +601,11 @@ ] } ], + "timestamp": "2026-04-22T12:03:31.707774681", "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.4" - }, - "timestamp": "2026-03-27T16:57:11.460996721" + "nf-test": "0.9.5", + "nextflow": "26.03.2" + } }, "one sample, hifi-only mode -stub": { "content": [ @@ -652,11 +652,11 @@ ] } ], + "timestamp": "2026-03-27T16:58:02.560119499", "meta": { "nf-test": "0.9.3", "nextflow": "25.10.4" - }, - "timestamp": "2026-03-27T16:58:02.560119499" + } }, "one sample, hifi-only mode": { "content": [ @@ -703,11 +703,11 @@ ] } ], + "timestamp": "2026-03-27T16:56:43.261998747", "meta": { "nf-test": "0.9.3", "nextflow": "25.10.4" - }, - "timestamp": "2026-03-27T16:56:43.261998747" + } }, "child with two parents, trio-binning mode -stub": { "content": [ @@ -886,10 +886,10 @@ ] } ], + "timestamp": "2026-03-27T16:58:20.771161421", "meta": { "nf-test": "0.9.3", "nextflow": "25.10.4" - }, - "timestamp": "2026-03-27T16:58:20.771161421" + } } } \ No newline at end of file diff --git a/subworkflows/local/genome_assembly/tests/nextflow.config b/subworkflows/local/genome_assembly/tests/nextflow.config index bb725f8cf..1af118c4f 100644 --- a/subworkflows/local/genome_assembly/tests/nextflow.config +++ b/subworkflows/local/genome_assembly/tests/nextflow.config @@ -1,9 +1,10 @@ process { - withName: 'HIFIASM' { + withName: 'HIFIASM_ASSEMBLY|HIFIASM_BINS' { ext.args = { [ '--dual-scaf', '--telo-m CCCTAA', - '-f0 -k30 -w30 -D10 -r1 -N1' + '-f0 -k30 -w30 -D10 -r1 -N1', + '--bin-only' ].join(' ') } } diff --git a/tests/samplesheet.nf.test.snap b/tests/samplesheet.nf.test.snap index 7ee09ea8a..7709cf576 100644 --- a/tests/samplesheet.nf.test.snap +++ b/tests/samplesheet.nf.test.snap @@ -1,7 +1,7 @@ { "test profile": { "content": [ - 226, + 227, { "BCFTOOLS_CONCAT": { "bcftools": 1.21 @@ -134,7 +134,10 @@ "GUNZIP_FASTA": { "gunzip": 1.13 }, - "HIFIASM": { + "HIFIASM_ASSEMBLY": { + "hifiasm": "0.25.0-r726" + }, + "HIFIASM_BINS": { "hifiasm": "0.25.0-r726" }, "HIFICNV": { @@ -828,10 +831,10 @@ ] ], - "timestamp": "2026-04-02T14:06:17.614655049", + "timestamp": "2026-04-08T15:06:21.502601043", "meta": { - "nf-test": "0.9.4", - "nextflow": "25.10.4" + "nf-test": "0.9.5", + "nextflow": "26.03.1" } } } \ No newline at end of file diff --git a/tests/samplesheet_multisample_bam.nf.test.snap b/tests/samplesheet_multisample_bam.nf.test.snap index 3bb72549e..e53c00df5 100644 --- a/tests/samplesheet_multisample_bam.nf.test.snap +++ b/tests/samplesheet_multisample_bam.nf.test.snap @@ -1,7 +1,7 @@ { "samplesheet_multisample_bam": { "content": [ - 391, + 394, { "BCFTOOLS_CONCAT": { "bcftools": 1.21 @@ -134,7 +134,10 @@ "GUNZIP_FASTA": { "gunzip": 1.13 }, - "HIFIASM": { + "HIFIASM_ASSEMBLY": { + "hifiasm": "0.25.0-r726" + }, + "HIFIASM_BINS": { "hifiasm": "0.25.0-r726" }, "HIFICNV": { @@ -1304,10 +1307,10 @@ ] ], - "timestamp": "2026-04-02T14:06:46.903278137", + "timestamp": "2026-04-08T15:10:24.155468815", "meta": { - "nf-test": "0.9.4", - "nextflow": "25.10.4" + "nf-test": "0.9.5", + "nextflow": "26.03.1" } } } \ No newline at end of file diff --git a/tests/samplesheet_multisample_ont_bam.nf.test.snap b/tests/samplesheet_multisample_ont_bam.nf.test.snap index 5df1400ab..1b702ba34 100644 --- a/tests/samplesheet_multisample_ont_bam.nf.test.snap +++ b/tests/samplesheet_multisample_ont_bam.nf.test.snap @@ -1,7 +1,7 @@ { "samplesheet_multisample_ont_bam | --preset ONT_R10 --phaser whatshap --alignment_processes 1 --snv_calling_processes 1 --sv_caller sniffles --publish_unannotated_family_svs": { "content": [ - 346, + 349, { "BCFTOOLS_CONCAT": { "bcftools": 1.21 @@ -121,7 +121,10 @@ "GUNZIP_FASTA": { "gunzip": 1.13 }, - "HIFIASM": { + "HIFIASM_ASSEMBLY": { + "hifiasm": "0.25.0-r726" + }, + "HIFIASM_BINS": { "hifiasm": "0.25.0-r726" }, "HIFICNV": { @@ -1229,10 +1232,10 @@ ] ], - "timestamp": "2026-04-02T14:06:48.82914627", + "timestamp": "2026-04-08T15:14:16.98293374", "meta": { - "nf-test": "0.9.4", - "nextflow": "25.10.4" + "nf-test": "0.9.5", + "nextflow": "26.03.1" } } } \ No newline at end of file diff --git a/tests/samplesheet_stub.nf.test b/tests/samplesheet_stub.nf.test index b68a882c3..a01d0e28b 100644 --- a/tests/samplesheet_stub.nf.test +++ b/tests/samplesheet_stub.nf.test @@ -132,7 +132,7 @@ nextflow_pipeline { def versions = removeNextflowVersion("$outputDir/pipeline_info/nallo_software_mqc_versions.yml") assertAll( { assert workflow.success }, - { assert !versions.containsKey('HIFIASM') }, + { assert !versions.containsKey('HIFIASM_ASSEMBLY') }, { assert versions.containsKey('SPLITUBAM') }, { assert stable_name.contains('aligned_reads') }, { assert snapshot( @@ -178,7 +178,7 @@ nextflow_pipeline { def versions = removeNextflowVersion("$outputDir/pipeline_info/nallo_software_mqc_versions.yml") assertAll( { assert workflow.success }, - { assert !versions.containsKey('HIFIASM') }, + { assert !versions.containsKey('HIFIASM_ASSEMBLY') }, { assert !versions.containsKey('SPLITUBAM') }, { assert stable_name.contains('aligned_reads') }, { assert snapshot( @@ -224,7 +224,7 @@ nextflow_pipeline { def versions = removeNextflowVersion("$outputDir/pipeline_info/nallo_software_mqc_versions.yml") assertAll( { assert workflow.success }, - { assert versions.containsKey('HIFIASM') }, + { assert versions.containsKey('HIFIASM_ASSEMBLY') }, { assert !versions.containsKey('SPLITUBAM') }, { assert !stable_name.contains('aligned_reads') }, { assert snapshot( diff --git a/tests/samplesheet_stub.nf.test.snap b/tests/samplesheet_stub.nf.test.snap index 1b14827d0..c9f4c3b60 100644 --- a/tests/samplesheet_stub.nf.test.snap +++ b/tests/samplesheet_stub.nf.test.snap @@ -148,15 +148,15 @@ "snvs/sample/HG002_Revio/HG002_Revio_deepvariant_snvs.vcf.gz.tbi" ] ], - "timestamp": "2026-04-02T14:16:09.579462317", + "timestamp": "2026-04-10T11:02:01.308163626", "meta": { - "nf-test": "0.9.4", - "nextflow": "25.10.4" + "nf-test": "0.9.5", + "nextflow": "26.03.1" } }, "Test skip sex check - unknown sex": { "content": [ - 34, + 35, { "BCFTOOLS_MERGE": { "bcftools": 1.22 @@ -182,7 +182,10 @@ "GUNZIP_FASTA": { "gunzip": 1.13 }, - "HIFIASM": { + "HIFIASM_ASSEMBLY": { + "hifiasm": "0.25.0-r726" + }, + "HIFIASM_BINS": { "hifiasm": "0.25.0-r726" }, "MINIMAP2_ALIGN": { @@ -302,15 +305,15 @@ "qc/sambamba_depth/HG002_Revio/HG002_Revio_sambamba_depth.bed" ] ], - "timestamp": "2026-04-02T15:08:20.04740971", + "timestamp": "2026-04-10T11:06:15.116929482", "meta": { - "nf-test": "0.9.4", - "nextflow": "25.10.4" + "nf-test": "0.9.5", + "nextflow": "26.03.1" } }, "Test sawfish with force_sawfish_joint_call_single_samples true": { "content": [ - 58, + 59, { "BCFTOOLS_CONCAT": { "bcftools": 1.21 @@ -366,7 +369,10 @@ "GUNZIP_FASTA": { "gunzip": 1.13 }, - "HIFIASM": { + "HIFIASM_ASSEMBLY": { + "hifiasm": "0.25.0-r726" + }, + "HIFIASM_BINS": { "hifiasm": "0.25.0-r726" }, "MINIMAP2_ALIGN": { @@ -522,10 +528,10 @@ "visualization_tracks/test/test_maf_sawfish.bw" ] ], - "timestamp": "2026-03-27T17:20:18.799744261", + "timestamp": "2026-04-10T11:03:44.925424818", "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.4" + "nf-test": "0.9.5", + "nextflow": "26.03.1" } }, "Test alignment without genome assembly, --alignment_processes 1 and only plot chromograph coverage": { @@ -627,15 +633,15 @@ "qc/somalier/relate/test/test.samples.tsv" ] ], - "timestamp": "2026-03-27T17:19:12.900562897", + "timestamp": "2026-04-10T11:02:48.417136378", "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.4" + "nf-test": "0.9.5", + "nextflow": "26.03.1" } }, "Test genome assembly without alignment": { "content": [ - 16, + 17, { "GFASTATS": { "gfastats": "1.3.11" @@ -643,7 +649,10 @@ "GUNZIP_FASTA": { "gunzip": 1.13 }, - "HIFIASM": { + "HIFIASM_ASSEMBLY": { + "hifiasm": "0.25.0-r726" + }, + "HIFIASM_BINS": { "hifiasm": "0.25.0-r726" }, "MINIMAP2_ALIGN": { @@ -691,10 +700,10 @@ "pipeline_info/nallo_software_mqc_versions.yml" ] ], - "timestamp": "2026-03-27T17:19:40.14872124", + "timestamp": "2026-04-10T11:03:11.069812239", "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.4" + "nf-test": "0.9.5", + "nextflow": "26.03.1" } }, "Test Sentieon SNV calling with mock resources": { @@ -850,10 +859,10 @@ "snvs/sample/HG002_Revio/HG002_Revio_sentieon_snvs.vcf.gz.tbi" ] ], - "timestamp": "2026-03-27T17:21:50.911562897", + "timestamp": "2026-04-10T11:05:07.164904359", "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.4" + "nf-test": "0.9.5", + "nextflow": "26.03.1" } }, "Test CADD with mock resources": { @@ -1029,10 +1038,10 @@ "snvs/sample/HG002_Revio/HG002_Revio_deepvariant_snvs.vcf.gz.tbi" ] ], - "timestamp": "2026-04-09T09:31:48.809555323", + "timestamp": "2026-04-10T11:01:27.560128811", "meta": { - "nf-test": "0.9.4", - "nextflow": "25.10.4" + "nf-test": "0.9.5", + "nextflow": "26.03.1" } }, "Test Chromograph works without SNV annotation": { @@ -1274,10 +1283,10 @@ "visualization_tracks/HG002_Revio/HG002_Revio_hificnv.maf.bw" ] ], - "timestamp": "2026-04-02T14:06:48.773434341", + "timestamp": "2026-04-10T11:05:48.396100192", "meta": { - "nf-test": "0.9.4", - "nextflow": "25.10.4" + "nf-test": "0.9.5", + "nextflow": "26.03.1" } }, "Test Peddy without annotation": { @@ -1416,15 +1425,15 @@ "snvs/sample/HG002_Revio/HG002_Revio_deepvariant_snvs.vcf.gz.tbi" ] ], - "timestamp": "2026-04-09T09:43:56.411556429", + "timestamp": "2026-04-10T11:07:36.674984654", "meta": { - "nf-test": "0.9.4", - "nextflow": "25.10.4" + "nf-test": "0.9.5", + "nextflow": "26.03.1" } }, "Test family id same as sample id": { "content": [ - 191, + 192, { "BCFTOOLS_CONCAT": { "bcftools": 1.21 @@ -1557,7 +1566,10 @@ "GUNZIP_FASTA": { "gunzip": 1.13 }, - "HIFIASM": { + "HIFIASM_ASSEMBLY": { + "hifiasm": "0.25.0-r726" + }, + "HIFIASM_BINS": { "hifiasm": "0.25.0-r726" }, "HIFICNV": { @@ -1930,10 +1942,10 @@ "visualization_tracks/HG002_Revio/HG002_Revio_pbcpgtools.hap2.bw" ] ], - "timestamp": "2026-03-27T17:21:15.838618761", + "timestamp": "2026-04-10T11:04:36.153042764", "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.4" + "nf-test": "0.9.5", + "nextflow": "26.03.1" } }, "Test alignment without genome assembly": { @@ -2003,10 +2015,10 @@ "qc/somalier/relate/test/test.samples.tsv" ] ], - "timestamp": "2026-03-27T17:18:42.518949999", + "timestamp": "2026-04-10T11:02:23.665187845", "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.4" + "nf-test": "0.9.5", + "nextflow": "26.03.1" } }, "Test skip sex check - multisample": { @@ -2321,10 +2333,10 @@ "visualization_tracks/HG004/HG004_pbcpgtools.hap2.bw" ] ], - "timestamp": "2026-04-02T14:09:21.641135839", + "timestamp": "2026-04-10T11:07:06.95171678", "meta": { - "nf-test": "0.9.4", - "nextflow": "25.10.4" + "nf-test": "0.9.5", + "nextflow": "26.03.1" } } } \ No newline at end of file