diff --git a/README.md b/README.md index 3ebe621..0220c5d 100644 --- a/README.md +++ b/README.md @@ -16,10 +16,10 @@ This is included in the `data` folder. Just run `get_clair3_models.sh` to downlo Can run with bcftools or with clair3 ```bash nextflow run . --workflow bcftools --input_dir test_data/assemblers --publish_dir results \ - --ref-fasta data/h37rv_20231215.fa.gz + --ref-fasta data/NC_000962.3.fa.gz nextflow run . --workflow clair3 --input_dir test_data/assemblers --publish_dir results \ - --ref-fasta data/h37rv_20231215.fa.gz --clair3_models_dir data/clair3_models \ + --ref-fasta data/NC_000962.3.fa.gz --clair3_models_dir data/clair3_models \ --basecalling_model dna_r10.4.1_e8.2_400bps_sup@v4.3.0 ``` diff --git a/data/h37rv_20231215.fa.gz b/data/NC_000962.3.fa.gz similarity index 100% rename from data/h37rv_20231215.fa.gz rename to data/NC_000962.3.fa.gz diff --git a/data/h37rv_20231215.fa.gz.fai b/data/NC_000962.3.fa.gz.fai similarity index 100% rename from data/h37rv_20231215.fa.gz.fai rename to data/NC_000962.3.fa.gz.fai diff --git a/main.nf b/main.nf index f5452c3..fa4eefb 100644 --- a/main.nf +++ b/main.nf @@ -26,22 +26,32 @@ workflow { exit(0) } - input_files = Channel.fromPath("${params.input_dir}/${params.input_single_suffix}", checkIfExists: true) + input_files = Channel + .fromPath("${params.input_dir}/${params.input_single_suffix}", checkIfExists: true) .ifEmpty { error("cannot find any reads matching ${params.input_single_suffix} in ${params.input_dir}") } .map { it -> tuple(it.getName().replaceFirst(/(?i)\.(fastq|fq)\.gz$/, ""), it) } input_files.take(3).view() - ref = Channel.fromPath("${params.ref_fasta}").first() + read_ch = input_files.map { it -> + [ + it[0], + it[1], + file(params.ref_fasta), + params.reference, + params.accession, + ] + } + clair3_models_dir = params.clair3_models_dir.startsWith("/") ? params.clair3_models_dir : "${projectDir}/${params.clair3_models_dir}" if (params.workflow == "clair3") { - rundial(input_files, ref, clair3_models_dir, params.basecalling_model) + rundial(read_ch, clair3_models_dir, params.basecalling_model) } else if (params.workflow == "bcftools") { - rundial_with_bcftools(input_files, ref) + rundial_with_bcftools(read_ch) } else { error("Please provide a valid workflow: bcftools or clair3") @@ -52,74 +62,83 @@ workflow { workflow rundial { take: fastq_files - ref clair3_models_dir dorado_model main: + + ref_name_ch = fastq_files.map { it -> [it[0], it[2]] } + + ref_path_ch = fastq_files.map { it -> [it[0], it[4]] } + + fastq_files = fastq_files.map { it -> tuple(it[0], it[1], it[4]) } + clair3_model = get_clair3_model(dorado_model) valid_model_ch = fastq_files .combine(clair3_model) - .filter { it -> it[2] != "failed" } - .map { it -> tuple(it[0], it[1]) } + .filter { it -> it[3] != "failed" } + .map { it -> tuple(it[0], it[1], it[2]) } invalid_model_ch = fastq_files .combine(clair3_model) - .filter { it -> it[2] == "failed" } - .map { it -> tuple(it[0], it[1]) } + .filter { it -> it[3] == "failed" } + .map { it -> tuple(it[0], it[1], it[2]) } valid_model_ch.take(1).view { "Appropriate Clair3 Model Found" } invalid_model_ch.take(1).view { "No appropriate Clair3 Model Found" } // If no appropriate clair3 model is found, use bcftools - rundial_with_bcftools(invalid_model_ch, ref) + rundial_with_bcftools(invalid_model_ch) // If appropriate clair3 model is found, run clair3 model_path = clair3_model.map { it -> clair3_models_dir + "/${it}.tar.gz" } model_path.view { "Using Clair3 Model: ${it}" } - minimap2(valid_model_ch, ref) - clair3(minimap2.out.sorted_alignment, ref, model_path) + minimap2(valid_model_ch) + clair3(minimap2.out.sorted_alignment, model_path) clair3_filter_params = Channel.fromPath("${moduleDir}/process/clair3_filter_params.yml").first() apply_filters_clair3(clair3.out.vcf, clair3_filter_params, "clair3_") // Still use normal params with bcftools support vcf filter_params = Channel.fromPath("${moduleDir}/process/filter_params.yml").first() - call_snps(minimap2.out.sorted_alignment, ref) + call_snps(minimap2.out.sorted_alignment) apply_filters(call_snps.out.gvcf, filter_params, "bcftools_") consensus_params = Channel.fromPath("${moduleDir}/process/clair3_consensus_params.yml").first() calls = apply_filters.out.filtered_gvcf.join(apply_filters_clair3.out.filtered_gvcf) - make_clair3_consensus(calls, ref, consensus_params) + .join(ref_path_ch) + calls.view { "Calls channel: ${it}" } + make_clair3_consensus(calls, consensus_params) emit: - alignment = rundial_with_bcftools.out.alignment.concat(minimap2.out.sorted_alignment) - gvcf = rundial_with_bcftools.out.gvcf.concat(clair3.out.vcf) - final_fasta = rundial_with_bcftools.out.final_fasta.concat(make_clair3_consensus.out.final_fasta) - variable_length_fasta = rundial_with_bcftools.out.variable_length_fasta.concat(make_clair3_consensus.out.variable_length_fasta) - final_vcf = rundial_with_bcftools.out.final_vcf.concat(make_clair3_consensus.out.final_vcf) - full_vcf = rundial_with_bcftools.out.full_vcf.concat(make_clair3_consensus.out.full_vcf) - creation_report_json = rundial_with_bcftools.out.creation_report_json.concat(make_clair3_consensus.out.report_json) + alignment = rundial_with_bcftools.out.alignment.concat(minimap2.out.sorted_alignment).join(ref_name_ch).map { it -> tuple(it[0], it[1], it[3], null, it[2]) } + gvcf = rundial_with_bcftools.out.gvcf.concat(clair3.out.vcf).join(ref_name_ch) + final_fasta = rundial_with_bcftools.out.final_fasta.concat(make_clair3_consensus.out.final_fasta).join(ref_name_ch) + variable_length_fasta = rundial_with_bcftools.out.variable_length_fasta.concat(make_clair3_consensus.out.variable_length_fasta).join(ref_name_ch) + final_vcf = rundial_with_bcftools.out.final_vcf.concat(make_clair3_consensus.out.final_vcf).join(ref_name_ch) + full_vcf = rundial_with_bcftools.out.full_vcf.concat(make_clair3_consensus.out.full_vcf).join(ref_name_ch) + creation_report_json = rundial_with_bcftools.out.creation_report_json.concat(make_clair3_consensus.out.report_json).join(ref_name_ch) } workflow rundial_with_bcftools { take: fastq_files - ref main: filter_params = Channel.fromPath("${moduleDir}/process/filter_params.yml").first() consensus_params = Channel.fromPath("${moduleDir}/process/consensus_params.yml").first() - minimap2(fastq_files, ref) - call_all(minimap2.out.sorted_alignment, ref) + minimap2(fastq_files) + call_all(minimap2.out.sorted_alignment) apply_filters(call_all.out.gvcf, filter_params, "") calls = apply_filters.out.filtered_gvcf - make_consensus(calls, ref, consensus_params) + calls = calls.join(fastq_files).map { it -> tuple(it[0], it[1], it[3]) } + calls.view { "Calls channel: ${it}" } + make_consensus(calls, consensus_params) emit: alignment = minimap2.out.sorted_alignment diff --git a/nextflow.config b/nextflow.config index d59805b..d10e86b 100644 --- a/nextflow.config +++ b/nextflow.config @@ -10,9 +10,13 @@ params { help = '' input_dir = '' workflow = 'clair3' - ref_fasta = 'data/h37rv_20231215.fa.gz' + ref_fasta = 'data/NC_000962.3.fa.gz' clair3_models_dir = 'data/clair3_models' basecalling_model = '' // e.g. "dna_r9.4.1_450bps_sup_prom" + reference_genome_suffix = '.fa.gz' + reference_genomes_dir = 'test_data/ref_data/' + accession = 'NC_000962.3' + reference = 'Mycobacterium tuberculosis' } profiles { diff --git a/process/consensus.nf b/process/consensus.nf index ee8e01f..ca7e756 100644 --- a/process/consensus.nf +++ b/process/consensus.nf @@ -36,8 +36,7 @@ process make_consensus { pod label: "run_id", value: "${params.run_id}" input: - tuple val(sample_name), path(filtered_gvcf) - path reference + tuple val(sample_name), path(filtered_gvcf), path(reference) path consensus_params output: @@ -76,8 +75,7 @@ process make_clair3_consensus { pod label: "run_id", value: "${params.run_id}" input: - tuple val(sample_name), path("filtered.gvcf.gz"), path("clair3.vcf.gz") - path reference + tuple val(sample_name), path("filtered.gvcf.gz"), path("clair3.vcf.gz"), path(reference) path consensus_params output: diff --git a/process/variant_calling.nf b/process/variant_calling.nf index 5899f4d..de8d317 100644 --- a/process/variant_calling.nf +++ b/process/variant_calling.nf @@ -14,11 +14,10 @@ process minimap2 { pod label: "run_id", value: "${params.run_id}" input: - tuple val(sample_name), path(fq) - path reference + tuple val(sample_name), path(fq), path(reference) output: - tuple val(sample_name), path("final.bam"), emit: sorted_alignment + tuple val(sample_name), path("final.bam"), path(reference), emit: sorted_alignment script: """ @@ -43,8 +42,7 @@ process call_snps { pod label: "run_id", value: "${params.run_id}" input: - tuple val(sample_name), path(sorted_alignment) - path reference + tuple val(sample_name), path(sorted_alignment), path(reference) output: tuple val(sample_name), path("calls.gvcf.gz"), emit: gvcf @@ -89,8 +87,7 @@ process call_all { pod label: "run_id", value: "${params.run_id}" input: - tuple val(sample_name), path(sorted_alignment) - path reference + tuple val(sample_name), path(sorted_alignment), path(reference) output: tuple val(sample_name), path("calls.gvcf.gz"), emit: gvcf @@ -99,8 +96,10 @@ process call_all { """ echo "Running bcftools mpileup in parallel" + gunzip -c ${reference} > ref.fasta # Handle gzipped (but not bgzipped) reference input + # script also makes indexes - multithreaded_bcftools -a ${sorted_alignment} -r ${reference} \ + multithreaded_bcftools -a ${sorted_alignment} -r ref.fasta \ -o pileup.bcf -t ${task.cpus} \ --settings "-x -Q 10 -a INFO/SCR,INFO/ADR,INFO/ADF,FORMAT/SP,FORMAT/AD -h100 -M10000" @@ -109,10 +108,10 @@ process call_all { # Report all alleles during calling bcftools call --threads ${task.cpus} --ploidy 1 -m -A -V indels pileup.bcf \ | bcftools filter -e 'DP==0' \ - | bcftools norm -d exact -f ${reference} -Oz -o snps.gvcf.gz + | bcftools norm -d exact -f ref.fasta -Oz -o snps.gvcf.gz bcftools call --threads ${task.cpus} --ploidy 1 -m -A -v -V snps pileup.bcf \ | bcftools filter -e 'DP==0' \ - | bcftools norm -d exact -f ${reference} -Oz -o indels.gvcf.gz + | bcftools norm -d exact -f ref.fasta -Oz -o indels.gvcf.gz bcftools index snps.gvcf.gz bcftools index indels.gvcf.gz bcftools concat -a snps.gvcf.gz indels.gvcf.gz -o calls.gvcf @@ -166,8 +165,7 @@ process clair3 { pod label: "run_id", value: "${params.run_id}" input: - tuple val(sample_name), path(bam) - path reference + tuple val(sample_name), path(bam), path(reference) path model output: diff --git a/test_data/clair3_consensus/clair3.vcf b/test_data/clair3_consensus/clair3.vcf index c4399f8..d80b2cc 100644 --- a/test_data/clair3_consensus/clair3.vcf +++ b/test_data/clair3_consensus/clair3.vcf @@ -1,8 +1,8 @@ ##fileformat=VCFv4.2 ##source=Clair3 ##clair3_version=1.0.4 -##cmdline=/home/ubuntu/miniconda3/envs/clair3/bin/run_clair3.sh --bam_fn=/home/ubuntu/pipelines/sundial/MHall_comparison/assembly/ont/4.sorted.bam --ref_fn=/home/ubuntu/pipelines/sundial/data/h37rv_20231215.fa.gz --threads=8 --platform=ont --model_path=/home/ubuntu/miniconda3/envs/clair3/bin/models/r941_prom_sup_g5014 --include_all_ctgs --print_ref_calls --gvcf --no_phasing_for_fa --output=clair_out/4 -##reference=/home/ubuntu/pipelines/sundial/data/h37rv_20231215.fa.gz +##cmdline=/home/ubuntu/miniconda3/envs/clair3/bin/run_clair3.sh --bam_fn=/home/ubuntu/pipelines/sundial/MHall_comparison/assembly/ont/4.sorted.bam --ref_fn=/home/ubuntu/pipelines/sundial/data/NC_000962.3.fa.gz --threads=8 --platform=ont --model_path=/home/ubuntu/miniconda3/envs/clair3/bin/models/r941_prom_sup_g5014 --include_all_ctgs --print_ref_calls --gvcf --no_phasing_for_fa --output=clair_out/4 +##reference=/home/ubuntu/pipelines/sundial/data/NC_000962.3.fa.gz ##FILTER= ##FILTER= ##FILTER= diff --git a/tests/nextflow/process_call_all.nf.test b/tests/nextflow/process_call_all.nf.test index 11cf6e0..3e90db2 100644 --- a/tests/nextflow/process_call_all.nf.test +++ b/tests/nextflow/process_call_all.nf.test @@ -10,8 +10,7 @@ nextflow_process { } process{ """ - input[0] = ['sample', file("$projectDir/test_data/assemblers/final.bam")] - input[1] = file("$projectDir/data/h37rv_20231215.fa.gz") + input[0] = ['sample', file("$projectDir/test_data/assemblers/final.bam"), file("$projectDir/data/NC_000962.3.fa.gz")] """ } } @@ -30,8 +29,7 @@ nextflow_process { } process{ """ - input[0] = ['sample', file("$projectDir/test_data/assemblers/final.bam")] - input[1] = file("$projectDir/data/h37rv_20231215.fa.gz") + input[0] = ['sample', file("$projectDir/test_data/assemblers/final.bam"), file("$projectDir/data/NC_000962.3.fa.gz")] """ } } @@ -48,8 +46,7 @@ nextflow_process { when { process{ """ - input[0] = ['sample', file("$projectDir/test_data/assemblers/not_exist.fastq.gz")] - input[1] = file("$projectDir/data/h37rv_20231215.fa.gz") + input[0] = ['sample', file("$projectDir/test_data/assemblers/not_exist.fastq.gz"), file("$projectDir/data/NC_000962.3.fa.gz")] """ } } diff --git a/tests/nextflow/process_call_snps.nf.test b/tests/nextflow/process_call_snps.nf.test index b249a10..9303aa0 100644 --- a/tests/nextflow/process_call_snps.nf.test +++ b/tests/nextflow/process_call_snps.nf.test @@ -10,8 +10,7 @@ nextflow_process { } process{ """ - input[0] = ['sample', file("$projectDir/test_data/assemblers/final.bam")] - input[1] = file("$projectDir/data/h37rv_20231215.fa.gz") + input[0] = ['sample', file("$projectDir/test_data/assemblers/final.bam"), file("$projectDir/data/NC_000962.3.fa.gz")] """ } } @@ -30,8 +29,7 @@ nextflow_process { } process{ """ - input[0] = ['sample', file("$projectDir/test_data/assemblers/final.bam")] - input[1] = file("$projectDir/data/h37rv_20231215.fa.gz") + input[0] = ['sample', file("$projectDir/test_data/assemblers/final.bam"), file("$projectDir/data/NC_000962.3.fa.gz")] """ } } @@ -48,8 +46,7 @@ nextflow_process { when { process{ """ - input[0] = ['sample', file("$projectDir/test_data/assemblers/not_exist.bam")] - input[1] = file("$projectDir/data/h37rv_20231215.fa.gz") + input[0] = ['sample', file("$projectDir/test_data/assemblers/not_exist.bam"), file("$projectDir/data/NC_000962.3.fa.gz")] """ } } diff --git a/tests/nextflow/process_clair3.nf.test b/tests/nextflow/process_clair3.nf.test index dd74a8c..374c322 100644 --- a/tests/nextflow/process_clair3.nf.test +++ b/tests/nextflow/process_clair3.nf.test @@ -7,9 +7,8 @@ nextflow_process { when { process{ """ - input[0] = ['sample', file("$projectDir/test_data/assemblers/final.bam")] - input[1] = file("$projectDir/data/h37rv_20231215.fa.gz") - input[2] = "$projectDir/data/clair3_models/r1041_e82_400bps_sup_v430.tar.gz" + input[0] = ['sample', file("$projectDir/test_data/assemblers/final.bam"), file("$projectDir/data/NC_000962.3.fa.gz")] + input[1] = "$projectDir/data/clair3_models/r1041_e82_400bps_sup_v430.tar.gz" """ } } @@ -25,9 +24,8 @@ nextflow_process { when { process{ """ - input[0] = ['sample', file("$projectDir/test_data/assemblers/non_exist.bam")] - input[1] = file("$projectDir/data/h37rv_20231215.fa.gz") - input[2] = "$projectDir/data/clair3_models/r1041_e82_400bps_sup_v430.tar.gz" + input[0] = ['sample', file("$projectDir/test_data/assemblers/non_exist.bam"), file("$projectDir/data/NC_000962.3.fa.gz")] + input[1] = "$projectDir/data/clair3_models/r1041_e82_400bps_sup_v430.tar.gz" """ } } diff --git a/tests/nextflow/process_clair3_consensus.nf.test b/tests/nextflow/process_clair3_consensus.nf.test index 8b8f0a5..77c2b9d 100644 --- a/tests/nextflow/process_clair3_consensus.nf.test +++ b/tests/nextflow/process_clair3_consensus.nf.test @@ -7,9 +7,8 @@ nextflow_process { when { process{ """ - input[0] = ['sample', file("$projectDir/test_data/clair3_consensus/bcftools.vcf"), file("$projectDir/test_data/clair3_consensus/clair3.vcf")] - input[1] = file("$projectDir/test_data/clair3_consensus/ref.fasta.gz") - input[2] = file("$projectDir/test_data/clair3_consensus/consensus_params.yml") + input[0] = ['sample', file("$projectDir/test_data/clair3_consensus/bcftools.vcf"), file("$projectDir/test_data/clair3_consensus/clair3.vcf"), file("$projectDir/test_data/clair3_consensus/ref.fasta.gz")] + input[1] = file("$projectDir/test_data/clair3_consensus/consensus_params.yml") """ } } @@ -31,9 +30,8 @@ nextflow_process { when { process{ """ - input[0] = ['sample', file("$projectDir/test_data/non_existent.vcf")] - input[1] = file("$projectDir/test_data/test_ref.fasta.gz") - input[2] = file("$projectDir/test_data/clair3_consensus/consensus_params.yml") + input[0] = ['sample', file("$projectDir/test_data/non_existent.vcf"), file("$projectDir/test_data/test_ref.fasta.gz")] + input[1] = file("$projectDir/test_data/clair3_consensus/consensus_params.yml") """ } } diff --git a/tests/nextflow/process_consensus.nf.test b/tests/nextflow/process_consensus.nf.test index 1a2e965..b2b6e88 100644 --- a/tests/nextflow/process_consensus.nf.test +++ b/tests/nextflow/process_consensus.nf.test @@ -7,9 +7,8 @@ nextflow_process { when { process{ """ - input[0] = ['sample', file("$projectDir/test_data/single_consensus/consensus_input.vcf")] - input[1] = file("$projectDir/test_data/single_consensus/consensus_ref.fasta") - input[2] = file("$projectDir/test_data/single_consensus/consensus_params.yml") + input[0] = ['sample', file("$projectDir/test_data/single_consensus/consensus_input.vcf"), file("$projectDir/test_data/single_consensus/consensus_ref.fasta")] + input[1] = file("$projectDir/test_data/single_consensus/consensus_params.yml") """ } } @@ -27,9 +26,8 @@ nextflow_process { when { process{ """ - input[0] = ['sample', file("$projectDir/test_data/single_consensus/non_existent.vcf")] - input[1] = file("$projectDir/test_data/single_consensus/consensus_ref.fasta") - input[2] = file("$projectDir/test_data/single_consensus/consensus_params.yml") + input[0] = ['sample', file("$projectDir/test_data/single_consensus/non_existent.vcf"), file("$projectDir/test_data/single_consensus/non_existent.fasta")] + input[1] = file("$projectDir/test_data/single_consensus/consensus_params.yml") """ } } diff --git a/tests/nextflow/process_minimap2.nf.test b/tests/nextflow/process_minimap2.nf.test index 3167fb1..cc7492f 100644 --- a/tests/nextflow/process_minimap2.nf.test +++ b/tests/nextflow/process_minimap2.nf.test @@ -7,8 +7,7 @@ nextflow_process { when { process{ """ - input[0] = ['sample', file("$projectDir/test_data/assemblers/ont_simple.fastq.gz")] - input[1] = file("$projectDir/data/h37rv_20231215.fa.gz") + input[0] = ['sample', file("$projectDir/test_data/assemblers/ont_simple.fastq.gz"), file("$projectDir/data/NC_000962.3.fa.gz")] """ } } diff --git a/tests/nextflow/workflow_clair3.nf.test b/tests/nextflow/workflow_clair3.nf.test index a01f932..289ea34 100644 --- a/tests/nextflow/workflow_clair3.nf.test +++ b/tests/nextflow/workflow_clair3.nf.test @@ -7,10 +7,13 @@ nextflow_workflow { when { workflow{ """ - input[0] = Channel.of(['sample', file("$projectDir/test_data/assemblers/ont_simple.fastq.gz")]) - input[1] = "$projectDir/data/h37rv_20231215.fa.gz" - input[2] = "$projectDir/data/clair3_models" - input[3] = "dna_r10.4.1_e8.2_400bps_sup@v4.3.0" + input[0] = Channel.of(['sample', + file("$projectDir/test_data/assemblers/ont_simple.fastq.gz"), + 'Mycobacterium tuberculosis', + 'NC_000962.3', + file("$projectDir/data/NC_000962.3.fa.gz")]) + input[1] = "$projectDir/data/clair3_models" + input[2] = "dna_r10.4.1_e8.2_400bps_sup@v4.3.0" """ } } @@ -24,14 +27,17 @@ nextflow_workflow { } } - test("Workflow runs falls back to sundial succesfully") { + test("Workflow runs falls back to bcftools variant calling succesfully") { when { workflow{ """ - input[0] = Channel.of(['sample', file("$projectDir/test_data/assemblers/ont_simple.fastq.gz")]) - input[1] = "$projectDir/data/h37rv_20231215.fa.gz" - input[2] = "$projectDir/data/clair3_models" - input[3] = "invalid" + input[0] = Channel.of(['sample', + file("$projectDir/test_data/assemblers/ont_simple.fastq.gz"), + 'Mycobacterium tuberculosis', + 'NC_000962.3', + file("$projectDir/data/NC_000962.3.fa.gz")]) + input[1] = "$projectDir/data/clair3_models" + input[2] = "invalid" """ } } @@ -50,10 +56,13 @@ nextflow_workflow { when { workflow{ """ - input[0] = ['sample', file("$projectDir/tests/samples/non_existent.fastq.gz")] - input[1] = "$projectDir/data/h37rv_20231215.fa.gz" - input[2] = "$projectDir/data/clair3_models" - input[3] = "dna_r10.4.1_e8.2_400bps_sup@v4.3.0" + input[0] = Channel.of(['sample', + file("$projectDir/tests/samples/non_existent.fastq.gz"), + 'Mycobacterium tuberculosis', + 'NC_000962.3', + file("$projectDir/data/NC_000962.3.fa.gz")]) + input[1] = "$projectDir/data/clair3_models" + input[2] = "dna_r10.4.1_e8.2_400bps_sup@v4.3.0" """ } } diff --git a/tests/nextflow/workflow_rundial_with_bcftools.nf.test b/tests/nextflow/workflow_rundial_with_bcftools.nf.test index 45075ec..9a60b31 100644 --- a/tests/nextflow/workflow_rundial_with_bcftools.nf.test +++ b/tests/nextflow/workflow_rundial_with_bcftools.nf.test @@ -7,8 +7,11 @@ nextflow_workflow { when { workflow{ """ - input[0] = ['sample', file("$projectDir/test_data/assemblers/ont_simple.fastq.gz")] - input[1] = "$projectDir/data/h37rv_20231215.fa.gz" + input[0] = Channel.of(['sample', + file("$projectDir/test_data/assemblers/ont_simple.fastq.gz"), + file("$projectDir/data/NC_000962.3.fa.gz"), + 'Mycobacterium tuberculosis', + 'NC_000962.3']) """ } } @@ -26,9 +29,12 @@ nextflow_workflow { test("Workflow should generate error if files do not exist") { when { workflow{ - """ - input[0] = ['sample', file("$projectDir/test_data/assemblers/non_existent.fastq.gz")] - input[1] = "$projectDir/data/h37rv_20231215.fa.gz" + """ + input[0] = Channel.of(['sample', + file("$projectDir/test_data/assemblers/non_existent.fastq.gz"), + file("$projectDir/data/NC_000962.3.fa.gz"), + 'Mycobacterium tuberculosis', + 'NC_000962.3']) """ } }