From 3dce486afa776354b19373e1059ccbd1cc423162 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Tue, 17 May 2022 17:33:20 +0200 Subject: [PATCH 01/80] initial commit --- clean.nf | 23 ++++++++++++++++++++++- nextflow.config | 1 + 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/clean.nf b/clean.nf index 0cefd2a..8b188d6 100755 --- a/clean.nf +++ b/clean.nf @@ -10,7 +10,7 @@ Author: hoelzer.martin@gmail.com // Parameters sanity checking -Set valid_params = ['max_cores', 'cores', 'max_memory', 'memory', 'profile', 'help', 'input', 'input_type', 'list', 'host', 'own', 'control', 'rm_rrna', 'bbduk', 'bbduk_kmer', 'bbduk_qin', 'reads_rna', 'min_clip', 'dcs_strict', 'output', 'multiqc_dir', 'nf_runinfo_dir', 'databases', 'condaCacheDir', 'singularityCacheDir', 'singularityCacheDir', 'cloudProcess', 'conda-cache-dir', 'singularity-cache-dir', 'cloud-process'] // don't ask me why there is also 'conda-cache-dir', 'singularity-cache-dir', 'cloud-process' +Set valid_params = ['max_cores', 'cores', 'max_memory', 'memory', 'profile', 'help', 'input', 'input_type', 'list', 'host', 'own', 'control', 'keep', 'rm_rrna', 'bbduk', 'bbduk_kmer', 'bbduk_qin', 'reads_rna', 'min_clip', 'dcs_strict', 'output', 'multiqc_dir', 'nf_runinfo_dir', 'databases', 'condaCacheDir', 'singularityCacheDir', 'singularityCacheDir', 'cloudProcess', 'conda-cache-dir', 'singularity-cache-dir', 'cloud-process'] // don't ask me why there is also 'conda-cache-dir', 'singularity-cache-dir', 'cloud-process' def parameter_diff = params.keySet() - valid_params if (parameter_diff.size() != 0){ exit 1, "ERROR: Parameter(s) $parameter_diff is/are not valid in the pipeline!\n" @@ -153,6 +153,18 @@ if ( params.own && params.list ) { } else if ( params.own ) { ownFastaChannel = Channel .fromPath( params.own, checkIfExists: true) +} else { + ownFastaChannel = Channel.empty() +} + +// user defined fasta sequence to keep +if ( params.keep && params.list ) { + keepFastaChannel = Channel + .fromPath( params.keep, checkIfExists: true) + .splitCsv().flatten().map{ it -> file( it, checkIfExists: true ) } +} else if ( params.keep ) { + keepFastaChannel = Channel + .fromPath( params.keep, checkIfExists: true) } multiqc_config = Channel.fromPath( workflow.projectDir + '/assets/multiqc_config.yml', checkIfExists: true ) @@ -165,8 +177,10 @@ lib_pairedness = params.input_type == 'illumina' ? 'paired' : 'single' **************************/ include { prepare_contamination } from './workflows/prepare_contamination_wf' addParams( tool: tool ) +include { check_own as prepare_keep } from './modules/prepare_contamination' include { clean } from './workflows/clean_wf' addParams( tool: tool, lib_pairedness: lib_pairedness ) +include { clean as keep_map } from './workflows/clean_wf' addParams( tool: tool, lib_pairedness: lib_pairedness ) include { qc } from './workflows/qc_wf' @@ -179,6 +193,13 @@ workflow { prepare_contamination(nanoControlFastaChannel, illuminaControlFastaChannel, rRNAChannel) contamination = prepare_contamination.out + if (params.keep){ + prepare_keep(keepFastaChannel) + keep_fasta = prepare_keep.out + keep_fasta.view() + keep_map(input_ch, keep_fasta, nanoControlBedChannel) + } + clean(input_ch, contamination, nanoControlBedChannel) qc(input_ch.map{ it -> tuple(it[0], 'input', it[1]) }.mix(clean.out.out_reads), params.input_type, clean.out.bbduk_summary, clean.out.idxstats, clean.out.flagstats, multiqc_config) diff --git a/nextflow.config b/nextflow.config index 544eff7..0ff5276 100755 --- a/nextflow.config +++ b/nextflow.config @@ -21,6 +21,7 @@ params { host = false own = false control = false + keep = false rm_rrna = false bbduk = false bbduk_kmer = 27 From 9dc344959c55864bb17c581da73c32e963ec0a8c Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Thu, 2 Jun 2022 17:38:19 +0200 Subject: [PATCH 02/80] check for bgzipped files --- modules/prepare_contamination.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prepare_contamination.nf b/modules/prepare_contamination.nf index 791d6a2..c28a23e 100644 --- a/modules/prepare_contamination.nf +++ b/modules/prepare_contamination.nf @@ -59,7 +59,7 @@ process check_own { script: """ # -L for following a symbolic link - if ! ( file -L $fasta | grep -q 'gzip compressed' ); then + if ! ( file -L $fasta | grep -q 'BGZF; gzip compatible\\|gzip compressed' ); then sed -i -e '\$a\\' ${fasta} bgzip -@ ${task.cpus} < ${fasta} > ${fasta}.gz # now $fasta'.gz' From 7f40ca80dd15ccdbd962cb00d33a3b0cdf607ca7 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Thu, 2 Jun 2022 18:01:48 +0200 Subject: [PATCH 03/80] added pysam --- configs/conda.config | 1 + configs/local.config | 1 + configs/node.config | 1 + envs/pysam.yaml | 5 +++++ 4 files changed, 8 insertions(+) create mode 100644 envs/pysam.yaml diff --git a/configs/conda.config b/configs/conda.config index ce1bf66..4705251 100644 --- a/configs/conda.config +++ b/configs/conda.config @@ -2,6 +2,7 @@ process { withLabel: basics { conda = "$baseDir/envs/basics.yaml" } withLabel: minimap2 { conda = "$baseDir/envs/minimap2.yaml" } withLabel: bbmap { conda = "$baseDir/envs/bbmap.yaml" } + withLabel: pysam { conda = "$baseDir/envs/pysam.yaml" } withLabel: samclipy { conda = "$baseDir/envs/samclipy.yaml" } withLabel: multiqc { conda = "$baseDir/envs/multiqc.yaml" } withLabel: fastqc { conda = "$baseDir/envs/fastqc.yaml" } diff --git a/configs/local.config b/configs/local.config index c6de9c2..7bebf30 100644 --- a/configs/local.config +++ b/configs/local.config @@ -3,6 +3,7 @@ process { withLabel: minimap2 { cpus = params.cores } withLabel: bbmap { cpus = params.cores ; memory = params.memory } withLabel: samclipy { cpus = 1 } + withLabel: pysam { cpus = 1 } withLabel: fastqc { cpus = 2 } withLabel: multiqc { cpus = 2 } withLabel: nanoplot{ cpus = params.cores } diff --git a/configs/node.config b/configs/node.config index 097a608..faaa1a8 100644 --- a/configs/node.config +++ b/configs/node.config @@ -3,6 +3,7 @@ process { withLabel: minimap2 { cpus = 24; memory = 24.GB } withLabel: bbmap { cpus = 24; memory = 24.GB } withLabel: smallTask { cpus = 1; memory = 2.GB } + withLabel: pysam { cpus = 2; memory = 4.GB } withLabel: fastqc { cpus = 2; memory = 4.GB } withLabel: multiqc { cpus = 4; memory = 4.GB } withLabel: nanoplot{ cpus = 8; memory = 8.GB } diff --git a/envs/pysam.yaml b/envs/pysam.yaml new file mode 100644 index 0000000..d1fef70 --- /dev/null +++ b/envs/pysam.yaml @@ -0,0 +1,5 @@ +name: pysam +channels: + - bioconda +dependencies: + - pysam=0.19.1 \ No newline at end of file From f8c3dfca75cb11e6cd2c28e78326043e99947f84 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Thu, 2 Jun 2022 18:02:05 +0200 Subject: [PATCH 04/80] output also bams --- workflows/clean_wf.nf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/workflows/clean_wf.nf b/workflows/clean_wf.nf index 795fce7..5bbc3d9 100644 --- a/workflows/clean_wf.nf +++ b/workflows/clean_wf.nf @@ -23,6 +23,8 @@ workflow clean { idxstats = Channel.empty() flagstats = Channel.empty() out_reads = bbduk.out.cleaned_reads.concat(bbduk.out.contaminated_reads) + contamination_bam = Channel.empty() + cleaned_bam = Channel.empty() } else { minimap2(input, contamination) | sort_bam | index_bam | ( idxstats_from_bam & flagstats_from_bam ) @@ -59,4 +61,6 @@ workflow clean { idxstats flagstats out_reads + contamination_bam + cleaned_bam } \ No newline at end of file From 5715b051990172c9d7c7fb258857ccb19038e5ff Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Thu, 2 Jun 2022 18:02:35 +0200 Subject: [PATCH 05/80] split bam by name list --- clean.nf | 15 +++++++++++--- modules/utils.nf | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 3 deletions(-) diff --git a/clean.nf b/clean.nf index 8b188d6..7014092 100755 --- a/clean.nf +++ b/clean.nf @@ -184,6 +184,7 @@ include { clean as keep_map } from './workflows/clean_wf' addParams( tool: tool, include { qc } from './workflows/qc_wf' +include { get_read_names; split_bam } from './modules/utils' /************************** * WORKFLOW ENTRY POINT @@ -193,15 +194,23 @@ workflow { prepare_contamination(nanoControlFastaChannel, illuminaControlFastaChannel, rRNAChannel) contamination = prepare_contamination.out + clean(input_ch, contamination, nanoControlBedChannel) + if (params.keep){ prepare_keep(keepFastaChannel) keep_fasta = prepare_keep.out - keep_fasta.view() keep_map(input_ch, keep_fasta, nanoControlBedChannel) + keep_reads = keep_map.out.contamination_bam + get_read_names(keep_reads) + split_bam(get_read_names.out, keep_reads) + // clean_mapped in keep_mapped + // yes -> mv to clean_unmapped + // which align is longer? + // no -> ok + } else { + keep_reads = Channel.empty() } - clean(input_ch, contamination, nanoControlBedChannel) - qc(input_ch.map{ it -> tuple(it[0], 'input', it[1]) }.mix(clean.out.out_reads), params.input_type, clean.out.bbduk_summary, clean.out.idxstats, clean.out.flagstats, multiqc_config) } diff --git a/modules/utils.nf b/modules/utils.nf index 4e68c22..b8020bd 100644 --- a/modules/utils.nf +++ b/modules/utils.nf @@ -80,6 +80,57 @@ process get_number_of_records { """ } +process get_read_names { + label 'minimap2' + + input: + tuple val(name), val(type), path(bam) + + output: + path("${name}_read_names.csv") + + script: + """ + samtools view ${bam} | cut -f1 | sort | uniq > ${name}_read_names.csv + """ +} + +process split_bam { + label 'pysam' + echo true + + input: + path(read_name_list) + tuple val(name), val(type), path(mapped_bam) + + output: + tuple val(name), val(type), path('mapped.fq'), emit: mapped + tuple val(name), val(type), path('unmapped.fq'), emit: unmapped + + script: + """ + #!/usr/bin/env python3 + + import pysam + + reads = set() + with open('${read_name_list}', 'r') as infile: + for line in infile: + reads.add(line.strip()) + print(reads) + + # split bam into mapped (not in list) + # and "unmapped" (in list) + + bamfile = pysam.AlignmentFile('nanopore.mapped.bam', 'rb') + for read in bamfile.fetch(until_eof=True): + if ( read.query_name in reads): + #write to unmapped + else: + # write to mapped + """ +} + process bbdukStats { label 'smallTask' From 84756d90e8c67fa36b461fc85aa7e16ff07f4bfa Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Fri, 10 Jun 2022 17:06:18 +0200 Subject: [PATCH 06/80] output index --- workflows/clean_wf.nf | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/workflows/clean_wf.nf b/workflows/clean_wf.nf index 5bbc3d9..320134a 100644 --- a/workflows/clean_wf.nf +++ b/workflows/clean_wf.nf @@ -1,7 +1,7 @@ include { minimap2 } from '../modules/minimap2' include { bbduk } from '../modules/bbmap' include { compress_reads; writeLog ; bbdukStats } from '../modules/utils' -include { split_bam; fastq_from_bam ; idxstats_from_bam ; flagstats_from_bam ; index_bam ; sort_bam ; filter_true_dcs_alignments ; merge_bam as merge_bam1 ; merge_bam as merge_bam2 ; merge_bam as merge_bam3 ; merge_bam as merge_bam4 ; filter_soft_clipped_alignments } from '../modules/alignment_processing' +include { split_bam; fastq_from_bam ; idxstats_from_bam ; flagstats_from_bam ; index_bam as index_bam; index_bam as index_bam2; sort_bam ; filter_true_dcs_alignments ; merge_bam as merge_bam1 ; merge_bam as merge_bam2 ; merge_bam as merge_bam3 ; merge_bam as merge_bam4 ; filter_soft_clipped_alignments } from '../modules/alignment_processing' workflow clean { take: @@ -23,7 +23,7 @@ workflow clean { idxstats = Channel.empty() flagstats = Channel.empty() out_reads = bbduk.out.cleaned_reads.concat(bbduk.out.contaminated_reads) - contamination_bam = Channel.empty() + contamination_bam_bai = Channel.empty() cleaned_bam = Channel.empty() } else { @@ -44,6 +44,9 @@ workflow clean { contamination_bam = merge_bam3(contamination_bam.mix(filter_soft_clipped_alignments.out.bam_ok_clipped).groupTuple(by: [0,1])) cleaned_bam = merge_bam4(cleaned_bam.mix(filter_soft_clipped_alignments.out.bam_clipped).groupTuple(by: [0,1])) } + index_bam2(contamination_bam.map{ it -> [it[0], it[2]]}) + contamination_bam_bai = index_bam2.out + fastq_from_bam(contamination_bam.mix(cleaned_bam)) // compress reads compress_reads(fastq_from_bam.out) @@ -61,6 +64,6 @@ workflow clean { idxstats flagstats out_reads - contamination_bam + contamination_bam_bai cleaned_bam } \ No newline at end of file From fdeb92f442792f067475e6c4635c1a9202022f84 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Fri, 10 Jun 2022 17:06:36 +0200 Subject: [PATCH 07/80] added split fastq --- modules/utils.nf | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/modules/utils.nf b/modules/utils.nf index b8020bd..45a30ad 100644 --- a/modules/utils.nf +++ b/modules/utils.nf @@ -84,7 +84,7 @@ process get_read_names { label 'minimap2' input: - tuple val(name), val(type), path(bam) + tuple val(name), path(bam) output: path("${name}_read_names.csv") @@ -95,17 +95,31 @@ process get_read_names { """ } +process filter_fastq_by_name { + input: + path(read_name_list) + tuple val(name), val(mapped), path(reads_mapped), val(unmapped), path(reads_unmapped) + + // output: + + script: + """ + zcat ${reads_mapped} | paste - - - - | grep -v -F -f ${read_name_list} | tr "\t" "\n" > leave_in_mapped.fq + zcat ${reads_mapped} | paste - - - - | grep -F -f ${read_name_list} | tr "\t" "\n" > move_to_mapped.fq + """ +} + process split_bam { label 'pysam' echo true input: path(read_name_list) - tuple val(name), val(type), path(mapped_bam) + tuple val(name), path(mapped_bam), path(mapped_bai) output: - tuple val(name), val(type), path('mapped.fq'), emit: mapped - tuple val(name), val(type), path('unmapped.fq'), emit: unmapped + tuple val(name), val('mapped'), path('mapped.fq'), emit: mapped + tuple val(name), val('unmapped'), path('unmapped.fq'), emit: unmapped script: """ @@ -122,12 +136,14 @@ process split_bam { # split bam into mapped (not in list) # and "unmapped" (in list) - bamfile = pysam.AlignmentFile('nanopore.mapped.bam', 'rb') + bamfile = pysam.AlignmentFile('${mapped_bam}', 'rb') for read in bamfile.fetch(until_eof=True): - if ( read.query_name in reads): + if (read.query_name in reads): #write to unmapped + pass else: # write to mapped + pass """ } From 1384cfdddfee14832a9ebae0d9cf5c612cc594c4 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Fri, 10 Jun 2022 17:06:55 +0200 Subject: [PATCH 08/80] split cleaned fastqs --- clean.nf | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/clean.nf b/clean.nf index 7014092..8368b27 100755 --- a/clean.nf +++ b/clean.nf @@ -184,7 +184,7 @@ include { clean as keep_map } from './workflows/clean_wf' addParams( tool: tool, include { qc } from './workflows/qc_wf' -include { get_read_names; split_bam } from './modules/utils' +include { get_read_names; filter_fastq_by_name } from './modules/utils' /************************** * WORKFLOW ENTRY POINT @@ -200,9 +200,13 @@ workflow { prepare_keep(keepFastaChannel) keep_fasta = prepare_keep.out keep_map(input_ch, keep_fasta, nanoControlBedChannel) - keep_reads = keep_map.out.contamination_bam - get_read_names(keep_reads) - split_bam(get_read_names.out, keep_reads) + keep_reads = keep_map.out.contamination_bam_bai + get_read_names(keep_reads.map{it -> [it[0], it[1]]}) + // works also for multiple samples? + mapped = clean.out.out_reads.filter{ it[1] == 'mapped' } + unmapped = clean.out.out_reads.filter{ it[1] == 'unmapped' } + filter_fastq_by_name(get_read_names.out, mapped.join(unmapped)) + // split_bam(get_read_names.out.view(), keep_reads.view()) // clean_mapped in keep_mapped // yes -> mv to clean_unmapped // which align is longer? From 9f93ec48207ac1faea9acad93dbc6c5a5d8f620d Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Thu, 16 Jun 2022 17:02:06 +0200 Subject: [PATCH 09/80] split fastq by read names --- modules/utils.nf | 93 ++++++++++++++++++++++++++++++------------------ 1 file changed, 58 insertions(+), 35 deletions(-) diff --git a/modules/utils.nf b/modules/utils.nf index 45a30ad..c1a1e17 100644 --- a/modules/utils.nf +++ b/modules/utils.nf @@ -93,59 +93,82 @@ process get_read_names { """ samtools view ${bam} | cut -f1 | sort | uniq > ${name}_read_names.csv """ + stub: + """ + touch ${name}_read_names.csv + """ } process filter_fastq_by_name { + label 'basics' + input: - path(read_name_list) + path(keep_read_name_list) tuple val(name), val(mapped), path(reads_mapped), val(unmapped), path(reads_unmapped) - // output: + output: + tuple val(name), val(mapped), path(reads_mapped, includeInputs: true) + tuple val(name), val(unmapped), path(reads_unmapped, includeInputs: true) script: + if ( params.lib_pairedness == 'paired' ) { + """ + zcat ${reads_mapped[0]} | paste - - - - | grep -v -F -f ${keep_read_name_list} | tr "\t" "\n" | pigz -fc -p ${task.cpus} > ${reads_mapped[0]} + zcat ${reads_mapped[0]} | paste - - - - | grep -F -f ${keep_read_name_list} | tr "\t" "\n" | pigz -fc -p ${task.cpus} >> ${reads_unmapped[0]} + zcat ${reads_mapped[1]} | paste - - - - | grep -v -F -f ${keep_read_name_list} | tr "\t" "\n" | pigz -fc -p ${task.cpus} > ${reads_mapped[1]} + zcat ${reads_mapped[1]} | paste - - - - | grep -F -f ${keep_read_name_list} | tr "\t" "\n" | pigz -fc -p ${task.cpus} >> ${reads_unmapped[1]} + """ + } else if ( params.lib_pairedness == 'single' ) { + """ + zcat ${reads_mapped} | paste - - - - | grep -v -F -f ${keep_read_name_list} | tr "\t" "\n" | pigz -fc -p ${task.cpus} > ${reads_mapped} + zcat ${reads_mapped} | paste - - - - | grep -F -f ${keep_read_name_list} | tr "\t" "\n" | pigz -fc -p ${task.cpus} >> ${reads_unmapped} + """ + } else { + error "Invalid mode: ${params.lib_pairedness}" + } + stub: """ - zcat ${reads_mapped} | paste - - - - | grep -v -F -f ${read_name_list} | tr "\t" "\n" > leave_in_mapped.fq - zcat ${reads_mapped} | paste - - - - | grep -F -f ${read_name_list} | tr "\t" "\n" > move_to_mapped.fq + touch ${reads_unmapped} ${reads_mapped} """ } -process split_bam { - label 'pysam' - echo true +// process split_bam { +// label 'pysam' +// echo true - input: - path(read_name_list) - tuple val(name), path(mapped_bam), path(mapped_bai) +// input: +// path(read_name_list) +// tuple val(name), path(mapped_bam), path(mapped_bai) - output: - tuple val(name), val('mapped'), path('mapped.fq'), emit: mapped - tuple val(name), val('unmapped'), path('unmapped.fq'), emit: unmapped +// output: +// tuple val(name), val('mapped'), path('mapped.fq'), emit: mapped +// tuple val(name), val('unmapped'), path('unmapped.fq'), emit: unmapped - script: - """ - #!/usr/bin/env python3 +// script: +// """ +// #!/usr/bin/env python3 - import pysam +// import pysam - reads = set() - with open('${read_name_list}', 'r') as infile: - for line in infile: - reads.add(line.strip()) - print(reads) +// reads = set() +// with open('${read_name_list}', 'r') as infile: +// for line in infile: +// reads.add(line.strip()) +// print(reads) - # split bam into mapped (not in list) - # and "unmapped" (in list) - - bamfile = pysam.AlignmentFile('${mapped_bam}', 'rb') - for read in bamfile.fetch(until_eof=True): - if (read.query_name in reads): - #write to unmapped - pass - else: - # write to mapped - pass - """ -} +// # split bam into mapped (not in list) +// # and "unmapped" (in list) + +// bamfile = pysam.AlignmentFile('${mapped_bam}', 'rb') +// for read in bamfile.fetch(until_eof=True): +// if (read.query_name in reads): +// #write to unmapped +// pass +// else: +// # write to mapped +// pass +// """ +// } process bbdukStats { label 'smallTask' From 68972e0898cfa7821c6aa3fdeae7d36abddc3079 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Wed, 13 Jul 2022 18:46:27 +0200 Subject: [PATCH 10/80] mv keep to extra wf --- clean.nf | 21 +++++++-------------- workflows/keep_wf.nf | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 14 deletions(-) create mode 100644 workflows/keep_wf.nf diff --git a/clean.nf b/clean.nf index 8368b27..7e1ac39 100755 --- a/clean.nf +++ b/clean.nf @@ -180,12 +180,10 @@ include { prepare_contamination } from './workflows/prepare_contamination_wf' ad include { check_own as prepare_keep } from './modules/prepare_contamination' include { clean } from './workflows/clean_wf' addParams( tool: tool, lib_pairedness: lib_pairedness ) -include { clean as keep_map } from './workflows/clean_wf' addParams( tool: tool, lib_pairedness: lib_pairedness ) +include { keep } from './workflows/keep_wf' addParams( tool: tool, lib_pairedness: lib_pairedness ) include { qc } from './workflows/qc_wf' -include { get_read_names; filter_fastq_by_name } from './modules/utils' - /************************** * WORKFLOW ENTRY POINT **************************/ @@ -195,27 +193,22 @@ workflow { contamination = prepare_contamination.out clean(input_ch, contamination, nanoControlBedChannel) + clean.out.out_reads.view() if (params.keep){ prepare_keep(keepFastaChannel) keep_fasta = prepare_keep.out - keep_map(input_ch, keep_fasta, nanoControlBedChannel) - keep_reads = keep_map.out.contamination_bam_bai - get_read_names(keep_reads.map{it -> [it[0], it[1]]}) - // works also for multiple samples? + mapped = clean.out.out_reads.filter{ it[1] == 'mapped' } unmapped = clean.out.out_reads.filter{ it[1] == 'unmapped' } - filter_fastq_by_name(get_read_names.out, mapped.join(unmapped)) - // split_bam(get_read_names.out.view(), keep_reads.view()) - // clean_mapped in keep_mapped - // yes -> mv to clean_unmapped - // which align is longer? - // no -> ok + + keep(input_ch, keep_fasta, nanoControlBedChannel, mapped, unmapped) + } else { keep_reads = Channel.empty() } - qc(input_ch.map{ it -> tuple(it[0], 'input', it[1]) }.mix(clean.out.out_reads), params.input_type, clean.out.bbduk_summary, clean.out.idxstats, clean.out.flagstats, multiqc_config) + qc(input_ch.map{ it -> tuple(it[0], 'input', it[1]) }.mix(clean.out.out_reads), params.input_type, clean.out.bbduk_summary, clean.out.idxstats.mix(keep.out.idxstats), clean.out.flagstats.mix(keep.out.flagstats), multiqc_config) } /************************** diff --git a/workflows/keep_wf.nf b/workflows/keep_wf.nf new file mode 100644 index 0000000..2c98886 --- /dev/null +++ b/workflows/keep_wf.nf @@ -0,0 +1,36 @@ +include { clean as keep_map } from './clean_wf' + +include { get_read_names; filter_fastq_by_name } from '../modules/utils' +include { idxstats_from_bam ; flagstats_from_bam } from '../modules/alignment_processing' + +workflow keep { + take: + input + keep_reference + dcs_ends_bed + mapped_clean_fastq + unmapped_clean_fastq + + main: + keep_map(input.map{ it -> ['keep_'+it[0], it[1]]}, keep_reference, dcs_ends_bed) + + keep_reads_bam = keep_map.out.contamination_bam_bai + get_read_names(keep_reads_bam.map{it -> [it[0], it[1]]}) + // works also for multiple samples? + + // mv keep mapped reads from cleaned mapped to clean unmapped + filter_fastq_by_name(get_read_names.out, mapped_clean_fastq.join(unmapped_clean_fastq)) + + // QC + idxstats = idxstats_from_bam(keep_reads_bam) + flagstats = flagstats_from_bam(keep_reads_bam) + + idxstats = idxstats_from_bam.out + flagstats = flagstats_from_bam.out + out_reads = filter_fastq_by_name.out.mapped_no_keep.mix(filter_fastq_by_name.out.unmapped_keep) + emit: + idxstats + flagstats + out_reads + keep_reads_bam +} \ No newline at end of file From 9c2b5ce4de10c30ec3cc4f276a2eb6cd400dd42d Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Wed, 13 Jul 2022 18:46:54 +0200 Subject: [PATCH 11/80] publish correct fastqs --- modules/utils.nf | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/modules/utils.nf b/modules/utils.nf index c1a1e17..f07b205 100644 --- a/modules/utils.nf +++ b/modules/utils.nf @@ -1,7 +1,11 @@ process compress_reads { label 'basics' - publishDir "${params.output}/${params.tool}", mode: 'copy', pattern: "*.gz" + + if ( ! params.keep ) { + publishDir "${params.output}/${params.tool}", mode: 'copy', pattern: "*.gz" + } + // else published by filter_fastq_by_name input: tuple val(name), val(type), path(reads) @@ -102,13 +106,17 @@ process get_read_names { process filter_fastq_by_name { label 'basics' + if ( params.keep ) { + publishDir "${params.output}/${params.tool}", mode: 'copy', pattern: "*.gz" + } + input: path(keep_read_name_list) tuple val(name), val(mapped), path(reads_mapped), val(unmapped), path(reads_unmapped) output: - tuple val(name), val(mapped), path(reads_mapped, includeInputs: true) - tuple val(name), val(unmapped), path(reads_unmapped, includeInputs: true) + tuple val(name), val(mapped), path(reads_mapped, includeInputs: true), emit: mapped_no_keep + tuple val(name), val(unmapped), path(reads_unmapped, includeInputs: true), emit: unmapped_keep script: if ( params.lib_pairedness == 'paired' ) { From 74d8bbf334c62d4f4839b2a4222e9375f7488c42 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Wed, 13 Jul 2022 18:51:29 +0200 Subject: [PATCH 12/80] rm unused stuff --- clean.nf | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/clean.nf b/clean.nf index 7e1ac39..1257739 100755 --- a/clean.nf +++ b/clean.nf @@ -204,11 +204,9 @@ workflow { keep(input_ch, keep_fasta, nanoControlBedChannel, mapped, unmapped) - } else { - keep_reads = Channel.empty() } - qc(input_ch.map{ it -> tuple(it[0], 'input', it[1]) }.mix(clean.out.out_reads), params.input_type, clean.out.bbduk_summary, clean.out.idxstats.mix(keep.out.idxstats), clean.out.flagstats.mix(keep.out.flagstats), multiqc_config) + qc(input_ch.map{ it -> tuple(it[0], 'input', it[1]) }.mix(clean.out.out_reads), params.input_type, clean.out.bbduk_summary, clean.out.idxstats, clean.out.flagstats, multiqc_config) } /************************** From fa3113f6346b6a939bdb6b733bc3dea74c956eba Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Wed, 13 Jul 2022 18:54:46 +0200 Subject: [PATCH 13/80] fixed bug for fasta input --- modules/minimap2.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/minimap2.nf b/modules/minimap2.nf index f92c6fb..30a5cfb 100644 --- a/modules/minimap2.nf +++ b/modules/minimap2.nf @@ -21,7 +21,7 @@ process minimap2 { """ } else if ( params.input_type == 'fasta' ){ """ - minimap2 -ax asm5 -N 5 --split-prefix tmp --secondary=no -t ${task.cpus} ${db} ${fasta} | samtools view -bhS -@ ${task.cpus} > ${name}.bam + minimap2 -ax asm5 -N 5 --split-prefix tmp --secondary=no -t ${task.cpus} ${db} ${input} | samtools view -bhS -@ ${task.cpus} > ${name}.bam """ } else { error "Unknown input_type: ${params.input_type}" From 281171e85c7267c1de3fb2a1dee76cc2863c7db3 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Wed, 13 Jul 2022 18:58:07 +0200 Subject: [PATCH 14/80] rm view --- clean.nf | 1 - 1 file changed, 1 deletion(-) diff --git a/clean.nf b/clean.nf index 1257739..4fec290 100755 --- a/clean.nf +++ b/clean.nf @@ -193,7 +193,6 @@ workflow { contamination = prepare_contamination.out clean(input_ch, contamination, nanoControlBedChannel) - clean.out.out_reads.view() if (params.keep){ prepare_keep(keepFastaChannel) From e1dbf5d6f6707d1042bc782572aa2d806438eac9 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Fri, 15 Jul 2022 12:43:46 +0200 Subject: [PATCH 15/80] added publish mode param --- clean.nf | 2 +- nextflow.config | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/clean.nf b/clean.nf index 4fec290..c3ac01d 100755 --- a/clean.nf +++ b/clean.nf @@ -10,7 +10,7 @@ Author: hoelzer.martin@gmail.com // Parameters sanity checking -Set valid_params = ['max_cores', 'cores', 'max_memory', 'memory', 'profile', 'help', 'input', 'input_type', 'list', 'host', 'own', 'control', 'keep', 'rm_rrna', 'bbduk', 'bbduk_kmer', 'bbduk_qin', 'reads_rna', 'min_clip', 'dcs_strict', 'output', 'multiqc_dir', 'nf_runinfo_dir', 'databases', 'condaCacheDir', 'singularityCacheDir', 'singularityCacheDir', 'cloudProcess', 'conda-cache-dir', 'singularity-cache-dir', 'cloud-process'] // don't ask me why there is also 'conda-cache-dir', 'singularity-cache-dir', 'cloud-process' +Set valid_params = ['max_cores', 'cores', 'max_memory', 'memory', 'profile', 'help', 'input', 'input_type', 'list', 'host', 'own', 'control', 'keep', 'rm_rrna', 'bbduk', 'bbduk_kmer', 'bbduk_qin', 'reads_rna', 'min_clip', 'dcs_strict', 'output', 'multiqc_dir', 'nf_runinfo_dir', 'databases', 'condaCacheDir', 'singularityCacheDir', 'singularityCacheDir', 'cloudProcess', 'conda-cache-dir', 'singularity-cache-dir', 'cloud-process', 'publish_dir_mode'] // don't ask me why there is also 'conda-cache-dir', 'singularity-cache-dir', 'cloud-process' def parameter_diff = params.keySet() - valid_params if (parameter_diff.size() != 0){ exit 1, "ERROR: Parameter(s) $parameter_diff is/are not valid in the pipeline!\n" diff --git a/nextflow.config b/nextflow.config index 0ff5276..a5c875b 100755 --- a/nextflow.config +++ b/nextflow.config @@ -42,6 +42,9 @@ params { // location for autodownload data like databases databases = 'nextflow-clean-autodownload' + // softlink results instead of copying + publish_dir_mode = 'copy' // use 'symlink' to just link the results + } timeline { From 77fa2cf07f3ffaa7f2457919476564f42e5ff62d Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Fri, 15 Jul 2022 12:44:57 +0200 Subject: [PATCH 16/80] emit both bams --- workflows/clean_wf.nf | 10 ++++------ workflows/keep_wf.nf | 6 +++--- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/workflows/clean_wf.nf b/workflows/clean_wf.nf index 320134a..b76c969 100644 --- a/workflows/clean_wf.nf +++ b/workflows/clean_wf.nf @@ -23,8 +23,7 @@ workflow clean { idxstats = Channel.empty() flagstats = Channel.empty() out_reads = bbduk.out.cleaned_reads.concat(bbduk.out.contaminated_reads) - contamination_bam_bai = Channel.empty() - cleaned_bam = Channel.empty() + bams_bai = Channel.empty() } else { minimap2(input, contamination) | sort_bam | index_bam | ( idxstats_from_bam & flagstats_from_bam ) @@ -44,8 +43,8 @@ workflow clean { contamination_bam = merge_bam3(contamination_bam.mix(filter_soft_clipped_alignments.out.bam_ok_clipped).groupTuple(by: [0,1])) cleaned_bam = merge_bam4(cleaned_bam.mix(filter_soft_clipped_alignments.out.bam_clipped).groupTuple(by: [0,1])) } - index_bam2(contamination_bam.map{ it -> [it[0], it[2]]}) - contamination_bam_bai = index_bam2.out + index_bam2(contamination_bam.mix(cleaned_bam)) + bams_bai = index_bam2.out fastq_from_bam(contamination_bam.mix(cleaned_bam)) // compress reads @@ -64,6 +63,5 @@ workflow clean { idxstats flagstats out_reads - contamination_bam_bai - cleaned_bam + bams_bai } \ No newline at end of file diff --git a/workflows/keep_wf.nf b/workflows/keep_wf.nf index 2c98886..9dc5070 100644 --- a/workflows/keep_wf.nf +++ b/workflows/keep_wf.nf @@ -14,14 +14,14 @@ workflow keep { main: keep_map(input.map{ it -> ['keep_'+it[0], it[1]]}, keep_reference, dcs_ends_bed) - keep_reads_bam = keep_map.out.contamination_bam_bai - get_read_names(keep_reads_bam.map{it -> [it[0], it[1]]}) + keep_reads_bam = keep_map.out.bams_bai.filter{ it[1] == 'mapped' } + get_read_names(keep_reads_bam.map{it -> [it[0], it[2]]}) // works also for multiple samples? // mv keep mapped reads from cleaned mapped to clean unmapped filter_fastq_by_name(get_read_names.out, mapped_clean_fastq.join(unmapped_clean_fastq)) - // QC + // QC idxstats = idxstats_from_bam(keep_reads_bam) flagstats = flagstats_from_bam(keep_reads_bam) From 78015a37440ece3e43c966b69a05bdada62acbc1 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Fri, 15 Jul 2022 12:47:05 +0200 Subject: [PATCH 17/80] added typle for bam tuple --- modules/alignment_processing.nf | 6 +++--- modules/minimap2.nf | 2 +- workflows/qc_wf.nf | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/alignment_processing.nf b/modules/alignment_processing.nf index 71a838c..ae7c549 100644 --- a/modules/alignment_processing.nf +++ b/modules/alignment_processing.nf @@ -2,7 +2,7 @@ process split_bam { label 'minimap2' input: - tuple val(name), path(bam) + tuple val(name), val(type), path(bam) output: tuple val(name), val('mapped'), path("${name}.mapped.bam"), emit: mapped @@ -199,10 +199,10 @@ process index_bam { label 'minimap2' input: - tuple val(name), path(bam) + tuple val(name), val(type), path(bam) output: - tuple val(name), path(bam), path('*.bai') + tuple val(name), val(type), path(bam), path('*.bai') script: """ diff --git a/modules/minimap2.nf b/modules/minimap2.nf index 30a5cfb..83eba56 100644 --- a/modules/minimap2.nf +++ b/modules/minimap2.nf @@ -6,7 +6,7 @@ process minimap2 { path (db) output: - tuple val(name), path("${name}.bam"), emit: bam // input just for naming + tuple val(name), val('raw'), path("${name}.bam"), emit: bam // input just for naming script: // -N is an internal algorithm option. It controls how many candidates alignment to extend. --secondary is an output option. diff --git a/workflows/qc_wf.nf b/workflows/qc_wf.nf index ef130bb..0d29ebc 100644 --- a/workflows/qc_wf.nf +++ b/workflows/qc_wf.nf @@ -21,5 +21,5 @@ workflow qc { report = fastqc.out.zip.map{ it -> it[-1] } } else { error "Invalid input type: ${input_type}" } - multiqc(multiqc_config, report.collect(), bbduk_summary.collect().ifEmpty([]), idxstats.map{ it -> it[1] }.collect().ifEmpty([]), flagstats.map{ it -> it[1] }.collect().ifEmpty([])) + multiqc(multiqc_config, report.collect(), bbduk_summary.collect().ifEmpty([]), idxstats.map{ it -> it[2] }.collect().ifEmpty([]), flagstats.map{ it -> it[2] }.collect().ifEmpty([])) } From d262bb87b924e32d0a6e49c583f04742cb717c40 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Fri, 15 Jul 2022 12:48:22 +0200 Subject: [PATCH 18/80] update publish --- modules/alignment_processing.nf | 3 +++ modules/prepare_contamination.nf | 6 +++--- modules/unused/alignment_processing.nf | 2 +- modules/utils.nf | 8 ++++---- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/modules/alignment_processing.nf b/modules/alignment_processing.nf index ae7c549..d2e0a6b 100644 --- a/modules/alignment_processing.nf +++ b/modules/alignment_processing.nf @@ -198,6 +198,9 @@ process sort_bam { process index_bam { label 'minimap2' + publishDir "${params.output}/${params.tool}", mode: params.publish_dir_mode, pattern: "*.bam" + publishDir "${params.output}/${params.tool}", mode: params.publish_dir_mode, pattern: "*.bam.bai" + input: tuple val(name), val(type), path(bam) diff --git a/modules/prepare_contamination.nf b/modules/prepare_contamination.nf index c28a23e..0898990 100644 --- a/modules/prepare_contamination.nf +++ b/modules/prepare_contamination.nf @@ -2,7 +2,7 @@ process download_host { label 'minimap2' if (params.cloudProcess) { - publishDir "${params.databases}/hosts", mode: 'copy', pattern: "*.fa.gz" + publishDir "${params.databases}/hosts", mode: params.publish_dir_mode, pattern: "*.fa.gz" } else { storeDir "${params.databases}/hosts" @@ -77,8 +77,8 @@ process check_own { process concat_contamination { label 'minimap2' - publishDir "${params.output}/", mode: 'copy', pattern: "db.fa.gz" - publishDir "${params.output}/", mode: 'copy', pattern: "db.fa.fai" + publishDir "${params.output}/", mode: params.publish_dir_mode, pattern: "db.fa.gz" + publishDir "${params.output}/", mode: params.publish_dir_mode, pattern: "db.fa.fai" input: path fastas diff --git a/modules/unused/alignment_processing.nf b/modules/unused/alignment_processing.nf index aca63b1..28f0461 100644 --- a/modules/unused/alignment_processing.nf +++ b/modules/unused/alignment_processing.nf @@ -33,7 +33,7 @@ process filter_un_mapped_alignments { process make_mapped_bam { label 'minimap2' - publishDir "${params.output}/${name}/${params.tool}", mode: 'copy', pattern: "*.mapped.bam*" + publishDir "${params.output}/${name}/${params.tool}", mode: params.publish_dir_mode, pattern: "*.mapped.bam*" input: tuple val(name), path(sam), path(reads) diff --git a/modules/utils.nf b/modules/utils.nf index f07b205..f8d1c50 100644 --- a/modules/utils.nf +++ b/modules/utils.nf @@ -3,7 +3,7 @@ process compress_reads { if ( ! params.keep ) { - publishDir "${params.output}/${params.tool}", mode: 'copy', pattern: "*.gz" + publishDir "${params.output}/${params.tool}", mode: params.publish_dir_mode, pattern: "*.gz" } // else published by filter_fastq_by_name @@ -107,7 +107,7 @@ process filter_fastq_by_name { label 'basics' if ( params.keep ) { - publishDir "${params.output}/${params.tool}", mode: 'copy', pattern: "*.gz" + publishDir "${params.output}/${params.tool}", mode: params.publish_dir_mode, pattern: "*.gz" } input: @@ -181,7 +181,7 @@ process filter_fastq_by_name { process bbdukStats { label 'smallTask' - publishDir "${params.output}/bbduk", mode: 'copy', pattern: "${name}_stats.txt" + publishDir "${params.output}/bbduk", mode: params.publish_dir_mode, pattern: "${name}_stats.txt" input: tuple val(name), path (bbdukStats) @@ -220,7 +220,7 @@ process bbdukStats { process writeLog { label 'smallTask' - publishDir "${params.output}/${params.tool}", mode: 'copy', pattern: "log.txt" + publishDir "${params.output}/${params.tool}", mode: params.publish_dir_mode, pattern: "log.txt" input: val db From 562923e4a67db0ff8c975657fc3d8145a338a5c9 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Fri, 15 Jul 2022 12:49:31 +0200 Subject: [PATCH 19/80] added type to bam --- modules/alignment_processing.nf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/alignment_processing.nf b/modules/alignment_processing.nf index d2e0a6b..6db757c 100644 --- a/modules/alignment_processing.nf +++ b/modules/alignment_processing.nf @@ -140,10 +140,10 @@ process idxstats_from_bam { label 'minimap2' input: - tuple val(name), path(bam), path(bai) + tuple val(name), val(type), path(bam), path(bai) output: - tuple val(name), path('*_idxstats.tsv') + tuple val(name), val(type), path('*_idxstats.tsv') script: """ @@ -180,10 +180,10 @@ process sort_bam { label 'minimap2' input: - tuple val(name), path(bam) + tuple val(name), val(type), path(bam) output: - tuple val(name), path("${bam.baseName}_sorted.bam") + tuple val(name), val(type), path("${bam.baseName}.sorted.bam") script: """ From a0a5e9981914e895e074e6e1d31b3d934fe7d58e Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Fri, 15 Jul 2022 12:50:16 +0200 Subject: [PATCH 20/80] update publish --- modules/alignment_processing.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/alignment_processing.nf b/modules/alignment_processing.nf index 6db757c..653c92e 100644 --- a/modules/alignment_processing.nf +++ b/modules/alignment_processing.nf @@ -50,7 +50,7 @@ process filter_soft_clipped_alignments { label 'samclipy' label 'smallTask' - publishDir "${params.output}/${params.tool}", mode: 'copy', pattern: "*.bam*" + publishDir "${params.output}/${params.tool}", mode: params.publish_dir_mode, pattern: "*.bam*" input: tuple val(name), path (bam) @@ -158,7 +158,7 @@ process idxstats_from_bam { process flagstats_from_bam { label 'minimap2' - publishDir "${params.output}/minimap2", mode: 'copy', pattern: "${bam.baseName}_flagstats.txt" + publishDir "${params.output}/minimap2", mode: params.publish_dir_mode, pattern: "${bam.baseName}_flagstats.txt" input: tuple val(name), path(bam), path(bai) From dea952b7d902f67f63ce098d790c61e6654709c0 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Fri, 15 Jul 2022 12:55:29 +0200 Subject: [PATCH 21/80] renamed output --- modules/alignment_processing.nf | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/modules/alignment_processing.nf b/modules/alignment_processing.nf index 653c92e..15dad6a 100644 --- a/modules/alignment_processing.nf +++ b/modules/alignment_processing.nf @@ -85,9 +85,9 @@ process filter_true_dcs_alignments { path (dcs_ends_bed) output: - tuple val(name), val('mapped'), path ("${name}_no_dcs.bam"), emit: no_dcs - tuple val(name), val('mapped'), path ("${name}_true_dcs.bam"), emit: true_dcs - tuple val(name), val('unmapped'), path ("${name}_false_dcs.bam"), emit: false_dcs + tuple val(name), val('mapped'), path ("${name}.no_dcs.bam"), emit: no_dcs + tuple val(name), val('mapped'), path ("${name}.true_dcs.bam"), emit: true_dcs + tuple val(name), val('unmapped'), path ("${name}.false_dcs.bam"), emit: false_dcs tuple val(name), path ('*.bam.bai') path('dcs.bam') @@ -95,17 +95,17 @@ process filter_true_dcs_alignments { """ # true spike in: 1-65 || 1-92; 3513-3560 (len 48) samtools view -b -h -e 'rname=="Lambda_3.6kb"' ${bam} > dcs.bam - samtools view -b -h -e 'rname!="Lambda_3.6kb"' ${bam} > ${name}_no_dcs.bam - bedtools intersect -wa -ubam -a dcs.bam -b ${dcs_ends_bed} > ${name}_true_dcs.bam - bedtools intersect -v -ubam -a dcs.bam -b ${dcs_ends_bed} > ${name}_false_dcs.bam + samtools view -b -h -e 'rname!="Lambda_3.6kb"' ${bam} > ${name}.no_dcs.bam + bedtools intersect -wa -ubam -a dcs.bam -b ${dcs_ends_bed} > ${name}.true_dcs.bam + bedtools intersect -v -ubam -a dcs.bam -b ${dcs_ends_bed} > ${name}.false_dcs.bam samtools index dcs.bam - samtools index ${name}_no_dcs.bam - samtools index ${name}_true_dcs.bam - samtools index ${name}_false_dcs.bam + samtools index ${name}.no_dcs.bam + samtools index ${name}.true_dcs.bam + samtools index ${name}.false_dcs.bam """ stub: """ - touch ${name}_no_dcs.bam ${name}_true_dcs.bam ${name}_false_dcs.bam ${name}_no_dcs.bam.bai ${name}_true_dcs.bam.bai ${name}_false_dcs.bam.bai + touch ${name}.no_dcs.bam ${name}.true_dcs.bam ${name}.false_dcs.bam ${name}.no_dcs.bam.bai ${name}.true_dcs.bam.bai ${name}.false_dcs.bam.bai """ } @@ -187,11 +187,11 @@ process sort_bam { script: """ - samtools sort -@ ${task.cpus} ${bam} > ${bam.baseName}_sorted.bam + samtools sort -@ ${task.cpus} ${bam} > ${bam.baseName}.sorted.bam """ stub: """ - touch ${bam.baseName}_sorted.bam + touch ${bam.baseName}.sorted.bam """ } From 12e3ce4178f82388e09e484bc507026666763291 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Fri, 15 Jul 2022 12:55:41 +0200 Subject: [PATCH 22/80] added type --- modules/alignment_processing.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/alignment_processing.nf b/modules/alignment_processing.nf index 15dad6a..05b39d6 100644 --- a/modules/alignment_processing.nf +++ b/modules/alignment_processing.nf @@ -161,10 +161,10 @@ process flagstats_from_bam { publishDir "${params.output}/minimap2", mode: params.publish_dir_mode, pattern: "${bam.baseName}_flagstats.txt" input: - tuple val(name), path(bam), path(bai) + tuple val(name), val(type), path(bam), path(bai) output: - tuple val(name), path('*_flagstats.txt') + tuple val(name), val(type), path('*_flagstats.txt') script: """ From 06b817eabf836a8726de4355a99c5209faa5d16b Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Fri, 15 Jul 2022 12:56:22 +0200 Subject: [PATCH 23/80] update publish --- modules/alignment_processing.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/alignment_processing.nf b/modules/alignment_processing.nf index 05b39d6..0135b99 100644 --- a/modules/alignment_processing.nf +++ b/modules/alignment_processing.nf @@ -78,7 +78,7 @@ process filter_soft_clipped_alignments { process filter_true_dcs_alignments { label 'bed_samtools' - publishDir "${params.output}/${params.tool}", mode: 'copy', pattern: "*.bam*" + publishDir "${params.output}/${params.tool}", mode: params.publish_dir_mode, pattern: "*.bam*" input: tuple val(name), path (bam) From c2e33592fb59d1d97238db36a0cfb67d18014276 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Fri, 15 Jul 2022 13:18:16 +0200 Subject: [PATCH 24/80] updated publish --- modules/qc.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/qc.nf b/modules/qc.nf index 3a276e1..62a45e7 100644 --- a/modules/qc.nf +++ b/modules/qc.nf @@ -94,7 +94,7 @@ process multiqc { label 'multiqc' // label 'smallTask' // this is tricky for the cloud, because only one container can be mounted. Thus comment this as hot fix - publishDir "${params.output}/${params.multiqc_dir}", pattern: 'multiqc_report.html' + publishDir "${params.output}/${params.multiqc_dir}", mode: params.publish_dir_mode, pattern: 'multiqc_report.html' input: path(config) From c0c1a20c87e0489f08785599b883b764ebbad5be Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Fri, 15 Jul 2022 16:52:41 +0200 Subject: [PATCH 25/80] added name --- modules/utils.nf | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/modules/utils.nf b/modules/utils.nf index f8d1c50..1e69943 100644 --- a/modules/utils.nf +++ b/modules/utils.nf @@ -91,7 +91,7 @@ process get_read_names { tuple val(name), path(bam) output: - path("${name}_read_names.csv") + tuple val(name), path("${name}_read_names.csv") script: """ @@ -111,8 +111,7 @@ process filter_fastq_by_name { } input: - path(keep_read_name_list) - tuple val(name), val(mapped), path(reads_mapped), val(unmapped), path(reads_unmapped) + tuple val(name), path(keep_read_name_list), val(mapped), path(reads_mapped), val(unmapped), path(reads_unmapped) output: tuple val(name), val(mapped), path(reads_mapped, includeInputs: true), emit: mapped_no_keep From 2ed4e93505b0a2018f34b2b6de0b3d48e8ca221a Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Fri, 15 Jul 2022 16:53:17 +0200 Subject: [PATCH 26/80] works now for multiple sampes --- clean.nf | 6 ++++-- workflows/keep_wf.nf | 7 +++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/clean.nf b/clean.nf index c3ac01d..f17db99 100755 --- a/clean.nf +++ b/clean.nf @@ -200,8 +200,10 @@ workflow { mapped = clean.out.out_reads.filter{ it[1] == 'mapped' } unmapped = clean.out.out_reads.filter{ it[1] == 'unmapped' } - - keep(input_ch, keep_fasta, nanoControlBedChannel, mapped, unmapped) + + un_mapped_clean_fastq = mapped.join(unmapped) + + keep(input_ch.map{ it -> ['keep_'+it[0], it[1]]}, keep_fasta.collect(), nanoControlBedChannel, un_mapped_clean_fastq) } diff --git a/workflows/keep_wf.nf b/workflows/keep_wf.nf index 9dc5070..11ca00d 100644 --- a/workflows/keep_wf.nf +++ b/workflows/keep_wf.nf @@ -8,18 +8,17 @@ workflow keep { input keep_reference dcs_ends_bed - mapped_clean_fastq - unmapped_clean_fastq + un_mapped_clean_fastq main: - keep_map(input.map{ it -> ['keep_'+it[0], it[1]]}, keep_reference, dcs_ends_bed) + keep_map(input, keep_reference, dcs_ends_bed) keep_reads_bam = keep_map.out.bams_bai.filter{ it[1] == 'mapped' } get_read_names(keep_reads_bam.map{it -> [it[0], it[2]]}) // works also for multiple samples? // mv keep mapped reads from cleaned mapped to clean unmapped - filter_fastq_by_name(get_read_names.out, mapped_clean_fastq.join(unmapped_clean_fastq)) + filter_fastq_by_name(get_read_names.out.map{ it -> [it[0].replaceAll("^keep_",""), it[1]] }.join(un_mapped_clean_fastq)) // QC idxstats = idxstats_from_bam(keep_reads_bam) From 001cbd60201ddc13206c7c9c5ab35edc5bb05eb6 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Fri, 2 Dec 2022 15:20:39 +0100 Subject: [PATCH 27/80] updated workflow figure --- README.md | 4 +++- data/figures/workflow.png | Bin 0 -> 229687 bytes figures/dag.png | Bin 146665 -> 0 bytes 3 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 data/figures/workflow.png delete mode 100644 figures/dag.png diff --git a/README.md b/README.md index 821dbb5..a587491 100755 --- a/README.md +++ b/README.md @@ -104,4 +104,6 @@ Included in this repository are: ## Flowchart -![chart](figures/dag.png) +![chart](data/figures/workflow.png) + +The icons and diagram components that make up the schematic view were originally designed by James A. Fellow Yates & nf-core under a CCO license (public domain). \ No newline at end of file diff --git a/data/figures/workflow.png b/data/figures/workflow.png new file mode 100644 index 0000000000000000000000000000000000000000..f8959dbe70b4d36174c9dabdcadba2b7503d7aa5 GIT binary patch literal 229687 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 bxXUR66TJp-J~r&=*I(+&I!aZF(8vD=1wJ?J literal 0 HcmV?d00001 diff --git a/figures/dag.png b/figures/dag.png deleted file mode 100644 index de265bc1d9572199e254e95964154957e21daceb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 146665 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 From b3df249aa3cf995511e8302b94bff2a849f3038a Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Thu, 2 Nov 2023 20:14:05 +0100 Subject: [PATCH 28/80] Fix some incorrect output names, conda envs, container for pigz --- envs/multiqc.yaml | 1 + envs/nanoplot.yaml | 4 +++- modules/alignment_processing.nf | 10 +++++----- modules/utils.nf | 2 +- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/envs/multiqc.yaml b/envs/multiqc.yaml index d8ec40a..81ba4bd 100644 --- a/envs/multiqc.yaml +++ b/envs/multiqc.yaml @@ -2,5 +2,6 @@ name: multiqc channels: - bioconda dependencies: + - python<3.12.0 - multiqc=1.12 diff --git a/envs/nanoplot.yaml b/envs/nanoplot.yaml index 33ad9de..79a4c2e 100644 --- a/envs/nanoplot.yaml +++ b/envs/nanoplot.yaml @@ -4,4 +4,6 @@ channels: - conda-forge dependencies: - nanoplot=1.32.1 - - seaborn==0.10.1 \ No newline at end of file + - seaborn==0.10.1 + - matplotlib<3.6.0 + - numpy<1.24.0 diff --git a/modules/alignment_processing.nf b/modules/alignment_processing.nf index 4b49f12..05fba6a 100644 --- a/modules/alignment_processing.nf +++ b/modules/alignment_processing.nf @@ -150,7 +150,7 @@ process idxstats_from_bam { tuple val(name), val(type), path(bam), path(bai) output: - tuple val(name), val(type), path('*_idxstats.tsv') + tuple val(name), val(type), path('*.idxstats.tsv') script: """ @@ -165,13 +165,13 @@ process idxstats_from_bam { process flagstats_from_bam { label 'minimap2' - publishDir "${params.output}/minimap2", mode: params.publish_dir_mode, pattern: "${bam.baseName}_flagstats.txt" + publishDir "${params.output}/minimap2", mode: params.publish_dir_mode, pattern: "${bam.baseName}.flagstats.txt" input: tuple val(name), val(type), path(bam), path(bai) output: - tuple val(name), val(type), path('*_flagstats.txt') + tuple val(name), val(type), path('*.flagstats.txt') script: """ @@ -195,7 +195,7 @@ process sort_bam { script: """ mv ${bam} ${bam}.tmp - samtools sort -@ ${task.cpus} ${bam}.tmp > ${bam.baseName}.bam + samtools sort -@ ${task.cpus} ${bam}.tmp > ${bam.baseName}.sorted.bam """ stub: """ @@ -223,4 +223,4 @@ process index_bam { """ touch ${bam}.bai """ -} \ No newline at end of file +} diff --git a/modules/utils.nf b/modules/utils.nf index 510fa6d..493f2d5 100644 --- a/modules/utils.nf +++ b/modules/utils.nf @@ -64,7 +64,7 @@ process get_read_names { } process filter_fastq_by_name { - label 'basics' + label 'minimap2' // We don't need minimap2 but the container has pigz if ( params.keep ) { publishDir "${params.output}/${params.tool}", mode: params.publish_dir_mode, pattern: "*.gz" From 2dbb3be570a5d578b9322e2aff5544bef9edb49e Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Wed, 8 Nov 2023 15:17:16 +0100 Subject: [PATCH 29/80] remove custom log file - provenance by nextflow's report - got overwritten with -keep --- modules/utils.nf | 27 --------------------------- workflows/clean_wf.nf | 7 ++----- 2 files changed, 2 insertions(+), 32 deletions(-) diff --git a/modules/utils.nf b/modules/utils.nf index 493f2d5..5a69b8d 100644 --- a/modules/utils.nf +++ b/modules/utils.nf @@ -175,30 +175,3 @@ process bbdukStats { touch ${name}_stats.txt ${name}_bbduk_stats.tsv """ } - -process writeLog { - label 'smallTask' - - publishDir "${params.output}/${params.tool}", mode: params.publish_dir_mode, pattern: "log.txt" - - input: - val db - path (reads) - - output: - path 'log.txt' - - script: - - """ - touch log.txt - cat <> log.txt - Input reads:\t${reads} - Contamination:\t${db} - EOF - """ - stub: - """ - touch log.txt - """ -} diff --git a/workflows/clean_wf.nf b/workflows/clean_wf.nf index 4a8cc80..1a431ca 100644 --- a/workflows/clean_wf.nf +++ b/workflows/clean_wf.nf @@ -1,6 +1,6 @@ include { minimap2 } from '../modules/minimap2' include { bbduk } from '../modules/bbmap' -include { writeLog ; bbdukStats } from '../modules/utils' +include { bbdukStats } from '../modules/utils' include { split_bam; fastq_from_bam ; idxstats_from_bam ; flagstats_from_bam ; index_bam as index_bam; index_bam as index_bam2; sort_bam ; filter_true_dcs_alignments ; merge_bam as merge_bam1 ; merge_bam as merge_bam2 ; merge_bam as merge_bam3 ; merge_bam as merge_bam4 ; filter_soft_clipped_alignments } from '../modules/alignment_processing' workflow clean { @@ -13,8 +13,6 @@ workflow clean { if ( params.bbduk ) { // map bbduk(input, contamination) - // log & stats - writeLog(contamination, input.map{ it -> it[1] }.collect()) bbdukStats(bbduk.out.stats) // define output bbduk_summary = bbdukStats.out.tsv @@ -45,8 +43,7 @@ workflow clean { bams_bai = index_bam2.out fastq_from_bam(contamination_bam.mix(cleaned_bam)) - // log & stats - writeLog(contamination, input.map{ it -> it[1] }.collect()) + // define output bbduk_summary = Channel.empty() idxstats = idxstats_from_bam.out From 307ea8391c2de5e75b017060fb53904b0e5b222e Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Thu, 9 Nov 2023 15:48:31 +0100 Subject: [PATCH 30/80] Avoid zcat'ing *.gz when output file is also a .gz file. Can cause hangups and huge files. Use switch statement to simplify code. --- modules/prepare_contamination.nf | 51 ++++++++++++++++---------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/modules/prepare_contamination.nf b/modules/prepare_contamination.nf index 0898990..60b14b5 100644 --- a/modules/prepare_contamination.nf +++ b/modules/prepare_contamination.nf @@ -16,30 +16,31 @@ process download_host { script: """ - if [ $host == 'hsa' ]; then - wget ftp://ftp.ensembl.org/pub/release-99/fasta/homo_sapiens/dna/Homo_sapiens.GRCh38.dna.primary_assembly.fa.gz - zcat *.gz | bgzip -@ ${task.cpus} -c > ${host}.fa.gz - fi - if [ $host == 'mmu' ]; then - wget ftp://ftp.ensembl.org/pub/release-99/fasta/mus_musculus/dna/Mus_musculus.GRCm38.dna.primary_assembly.fa.gz - zcat *.gz | bgzip -@ ${task.cpus} -c > ${host}.fa.gz - fi - if [ $host == 'cli' ]; then - wget ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/337/935/GCF_000337935.1_Cliv_1.0/GCF_000337935.1_Cliv_1.0_genomic.fna.gz - zcat *.gz | bgzip -@ ${task.cpus} -c > ${host}.fa.gz - fi - if [ $host == 'csa' ]; then - wget ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/409/795/GCF_000409795.2_Chlorocebus_sabeus_1.1/GCF_000409795.2_Chlorocebus_sabeus_1.1_genomic.fna.gz - zcat *.gz | bgzip -@ ${task.cpus} -c > ${host}.fa.gz - fi - if [ $host == 'gga' ]; then - wget ftp://ftp.ensembl.org/pub/release-99/fasta/gallus_gallus/dna/Gallus_gallus.GRCg6a.dna.toplevel.fa.gz - zcat *.gz | bgzip -@ ${task.cpus} -c > ${host}.fa.gz - fi - if [ $host == 'eco' ]; then - wget ftp://ftp.ensemblgenomes.org/pub/release-45/bacteria//fasta/bacteria_90_collection/escherichia_coli_k_12/dna/Escherichia_coli_k_12.ASM80076v1.dna.toplevel.fa.gz - zcat *.gz | bgzip -@ ${task.cpus} -c > ${host}.fa.gz - fi + case $host in + hsa) + wget ftp://ftp.ensembl.org/pub/release-99/fasta/homo_sapiens/dna/Homo_sapiens.GRCh38.dna.primary_assembly.fa.gz -O host-temp.fa.gz + ;; + mmu) + wget ftp://ftp.ensembl.org/pub/release-99/fasta/mus_musculus/dna/Mus_musculus.GRCm38.dna.primary_assembly.fa.gz -O host-temp.fa.gz + ;; + cli) + wget ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/337/935/GCF_000337935.1_Cliv_1.0/GCF_000337935.1_Cliv_1.0_genomic.fna.gz -O host-temp.fa.gz + ;; + csa) + wget ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/409/795/GCF_000409795.2_Chlorocebus_sabeus_1.1/GCF_000409795.2_Chlorocebus_sabeus_1.1_genomic.fna.gz -O host-temp.fa.gz + ;; + gga) + wget ftp://ftp.ensembl.org/pub/release-99/fasta/gallus_gallus/dna/Gallus_gallus.GRCg6a.dna.toplevel.fa.gz -O host-temp.fa.gz + ;; + eco) + wget ftp://ftp.ensemblgenomes.org/pub/release-45/bacteria//fasta/bacteria_90_collection/escherichia_coli_k_12/dna/Escherichia_coli_k_12.ASM80076v1.dna.toplevel.fa.gz -O host-temp.fa.gz + ;; + *) + echo "Unknown host ($host)." + ;; + esac + + zcat host-temp.fa.gz | bgzip -@ ${task.cpus} -c > ${host}.fa.gz """ stub: """ @@ -108,4 +109,4 @@ process concat_contamination { """ touch db.fa.gz db.fa.fai """ -} \ No newline at end of file +} From fb759f5fb375a7d09d4b7aa3c9bd036c484fcd97 Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Wed, 15 Nov 2023 16:30:21 +0100 Subject: [PATCH 31/80] Disable all publishDir directives. Add back the publishing of 'keep' output for now, to new dir with new name. --- README.md | 43 ++++++++++++++++++++++++++ modules/alignment_processing.nf | 14 ++++----- modules/bbmap.nf | 2 +- modules/prepare_contamination.nf | 5 +-- modules/qc.nf | 2 +- modules/unused/alignment_processing.nf | 2 +- modules/utils.nf | 13 ++++++-- nextflow.config | 14 +++------ 8 files changed, 70 insertions(+), 25 deletions(-) mode change 100755 => 100644 README.md mode change 100755 => 100644 nextflow.config diff --git a/README.md b/README.md old mode 100755 new mode 100644 index 23f50c7..a43e021 --- a/README.md +++ b/README.md @@ -108,6 +108,49 @@ Included in this repository are: The icons and diagram components that make up the schematic view were originally designed by James A. Fellow Yates & nf-core under a CCO license (public domain). +## Results + +Running the pipeline will create a directory called `results/` in the current directory with some or all of the following directories and files: + +```text +results/ + clean/ + .fastq.gz + removed/ + .fastq.gz + intermedate/ + to-remove/ + mapped.fastq.gz + unmapped.fastq.gz + mapped.bam + unmapped.bam + dcs-strict/ + no-dcs.bam + true-dcs.bam + false-dcs.bam + soft-clipped/ + soft-clipped.bam + passed-clipped.bam + to-keep/ + mapped.fastq.gz + unmapped.fastq.gz + mapped.bam + unmapped.bam + dcs-strict/ + no-dcs.bam + true-dcs.bam + false-dcs.bam + soft-clipped/ + soft-clipped.bam + passed-clipped.bam + logs/\*.html + qc/multiqc_report.html +``` + +The most important files you are likely interested in are `results/clean/.fastq.gz`, which are the "cleaned" reads. These are the input reads that *do not* map to the host, control, own fasta or rRNA files (or the subset of these that you provided), plus those reads that map to the "keep" sequence if you used the `--keep` option. Any files that were removed from your input fasta file are placed in `results/removed/.fastq.gz`. + +For debugging purposes we also provide various intermediate results in the `intermediate/` folder. + ## Citations If you use `CLEAN` in your work, please consider citing our preprint: diff --git a/modules/alignment_processing.nf b/modules/alignment_processing.nf index 05fba6a..5106e17 100644 --- a/modules/alignment_processing.nf +++ b/modules/alignment_processing.nf @@ -50,7 +50,7 @@ process filter_soft_clipped_alignments { label 'samclipy' label 'smallTask' - publishDir "${params.output}/${params.tool}", mode: params.publish_dir_mode, pattern: "*.bam*" + publishDir "${params.output}/${params.tool}", mode: params.publish_dir_mode, pattern: "*.bam*", enabled: false input: tuple val(name), path (bam) @@ -78,7 +78,7 @@ process filter_soft_clipped_alignments { process filter_true_dcs_alignments { label 'bed_samtools' - publishDir "${params.output}/${params.tool}", mode: params.publish_dir_mode, pattern: "*.bam*" + publishDir "${params.output}/${params.tool}", mode: params.publish_dir_mode, pattern: "*.bam*", enabled: false input: tuple val(name), path (bam) @@ -111,7 +111,7 @@ process filter_true_dcs_alignments { process fastq_from_bam { label 'minimap2' - publishDir "${params.output}/${params.tool}/${name}", mode: 'copy', pattern: "*.gz" + publishDir "${params.output}/${params.tool}/${name}", mode: 'copy', pattern: "*.gz", enabled: false input: tuple val(name), val(type), path(bam) @@ -144,7 +144,7 @@ process fastq_from_bam { process idxstats_from_bam { label 'minimap2' - publishDir "${params.output}/minimap2/${name}", mode: 'copy', pattern: "${bam.baseName}.idxstats.tsv" + publishDir "${params.output}/minimap2/${name}", mode: 'copy', pattern: "${bam.baseName}.idxstats.tsv" , enabled: false input: tuple val(name), val(type), path(bam), path(bai) @@ -165,7 +165,7 @@ process idxstats_from_bam { process flagstats_from_bam { label 'minimap2' - publishDir "${params.output}/minimap2", mode: params.publish_dir_mode, pattern: "${bam.baseName}.flagstats.txt" + publishDir "${params.output}/minimap2", mode: params.publish_dir_mode, pattern: "${bam.baseName}.flagstats.txt" , enabled: false input: tuple val(name), val(type), path(bam), path(bai) @@ -206,8 +206,8 @@ process sort_bam { process index_bam { label 'minimap2' - publishDir "${params.output}/${params.tool}", mode: params.publish_dir_mode, pattern: "*.bam" - publishDir "${params.output}/${params.tool}", mode: params.publish_dir_mode, pattern: "*.bam.bai" + publishDir "${params.output}/${params.tool}", mode: params.publish_dir_mode, pattern: "*.bam", enabled: false + publishDir "${params.output}/${params.tool}", mode: params.publish_dir_mode, pattern: "*.bam.bai", enabled: false input: tuple val(name), val(type), path(bam) diff --git a/modules/bbmap.nf b/modules/bbmap.nf index c750232..c1f81ef 100644 --- a/modules/bbmap.nf +++ b/modules/bbmap.nf @@ -1,7 +1,7 @@ process bbduk { label 'bbmap' - publishDir "${params.output}/${params.tool}/${name}", mode: 'copy', pattern: "*.gz" + publishDir "${params.output}/${params.tool}/${name}", mode: 'copy', pattern: "*.gz", enabled: false input: tuple val(name), path(reads) diff --git a/modules/prepare_contamination.nf b/modules/prepare_contamination.nf index 60b14b5..45cb44e 100644 --- a/modules/prepare_contamination.nf +++ b/modules/prepare_contamination.nf @@ -2,7 +2,7 @@ process download_host { label 'minimap2' if (params.cloudProcess) { - publishDir "${params.databases}/hosts", mode: params.publish_dir_mode, pattern: "*.fa.gz" + publishDir "${params.databases}/hosts", mode: params.publish_dir_mode, pattern: "*.fa.gz" } else { storeDir "${params.databases}/hosts" @@ -78,9 +78,6 @@ process check_own { process concat_contamination { label 'minimap2' - publishDir "${params.output}/", mode: params.publish_dir_mode, pattern: "db.fa.gz" - publishDir "${params.output}/", mode: params.publish_dir_mode, pattern: "db.fa.fai" - input: path fastas diff --git a/modules/qc.nf b/modules/qc.nf index 62a45e7..239d80a 100644 --- a/modules/qc.nf +++ b/modules/qc.nf @@ -94,7 +94,7 @@ process multiqc { label 'multiqc' // label 'smallTask' // this is tricky for the cloud, because only one container can be mounted. Thus comment this as hot fix - publishDir "${params.output}/${params.multiqc_dir}", mode: params.publish_dir_mode, pattern: 'multiqc_report.html' + publishDir "${params.output}/${params.multiqc_dir}", mode: params.publish_dir_mode, pattern: 'multiqc_report.html', enabled: false input: path(config) diff --git a/modules/unused/alignment_processing.nf b/modules/unused/alignment_processing.nf index 28f0461..4fc9bdf 100644 --- a/modules/unused/alignment_processing.nf +++ b/modules/unused/alignment_processing.nf @@ -33,7 +33,7 @@ process filter_un_mapped_alignments { process make_mapped_bam { label 'minimap2' - publishDir "${params.output}/${name}/${params.tool}", mode: params.publish_dir_mode, pattern: "*.mapped.bam*" + publishDir "${params.output}/${name}/${params.tool}", mode: params.publish_dir_mode, pattern: "*.mapped.bam*", enabled: false input: tuple val(name), path(sam), path(reads) diff --git a/modules/utils.nf b/modules/utils.nf index 5a69b8d..5b62ec2 100644 --- a/modules/utils.nf +++ b/modules/utils.nf @@ -67,7 +67,16 @@ process filter_fastq_by_name { label 'minimap2' // We don't need minimap2 but the container has pigz if ( params.keep ) { - publishDir "${params.output}/${params.tool}", mode: params.publish_dir_mode, pattern: "*.gz" + publishDir ( + path: params.output, + mode: params.publish_dir_mode, + pattern: "*.gz", + saveAs: { fn -> + fn.endsWith('.unmapped.fastq.gz') ? "clean/${fn}".replaceAll(~'.unmapped.fastq.gz$', '.fastq.gz') : + fn.endsWith('.mapped.fastq.gz') ? "removed/${fn}".replaceAll(~'.mapped.fastq.gz$', '.fastq.gz') : + fn + } + ) } input: @@ -140,7 +149,7 @@ process filter_fastq_by_name { process bbdukStats { label 'smallTask' - publishDir "${params.output}/bbduk", mode: params.publish_dir_mode, pattern: "${name}_stats.txt" + publishDir "${params.output}/bbduk", mode: params.publish_dir_mode, pattern: "${name}_stats.txt", enabled: false input: tuple val(name), path (bbdukStats) diff --git a/nextflow.config b/nextflow.config old mode 100755 new mode 100644 index 40e18fe..344106f --- a/nextflow.config +++ b/nextflow.config @@ -32,8 +32,8 @@ params { // folder structure output = 'results' - multiqc_dir = 'Summary' - nf_runinfo_dir = 'Logs' + multiqc_dir = 'qc' + nf_runinfo_dir = 'logs' // location for storing the conda or singularity environments condaCacheDir = 'conda' @@ -65,7 +65,7 @@ report { profiles { - //executors + // executors local { executor { name = "local" @@ -97,7 +97,7 @@ profiles { } - //engines + // engines docker { docker { enabled = true } includeConfig 'configs/container.config' @@ -130,7 +130,7 @@ profiles { } - //pre-merged + // pre-merged standard { params.cloudProcess = false includeConfig 'configs/local.config' @@ -230,9 +230,5 @@ profiles { process { withLabel: noDocker { cpus = 1; memory = '4.0 GB'; container = 'nanozoo/template:3.8--ccd0653' } } - } - - - } From df2497e042117766a0f53b7785a12622f8429a5f Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Thu, 16 Nov 2023 13:25:49 +0100 Subject: [PATCH 32/80] Place fastq files that map to 'keep' genome and to the host/control/own/rrna 'remove' genomes in appropriate intermediate folders --- modules/alignment_processing.nf | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/modules/alignment_processing.nf b/modules/alignment_processing.nf index 5106e17..0ee46bc 100644 --- a/modules/alignment_processing.nf +++ b/modules/alignment_processing.nf @@ -111,7 +111,32 @@ process filter_true_dcs_alignments { process fastq_from_bam { label 'minimap2' - publishDir "${params.output}/${params.tool}/${name}", mode: 'copy', pattern: "*.gz", enabled: false + + publishDir ( + path: "${params.output}/intermediate", + mode: params.publish_dir_mode, + pattern: "*.gz", + overwrite: false, + saveAs: { fn -> + fn.startsWith("keep_") ? "map-to-keep/${fn.replaceAll(~'^keep_', '')}" : "map-to-remove/${fn}" + } + ) + + if ( !params.keep ) { + publishDir ( + path: params.output, + overwrite: false, + mode: params.publish_dir_mode, + pattern: "*.gz", + saveAs: { fn -> + fn.endsWith('.unmapped.fastq.gz') ? "clean/${fn}".replaceAll(~'.unmapped.fastq.gz$', '.fastq.gz') : + fn.endsWith('.mapped.fastq.gz') ? "removed/${fn}".replaceAll(~'.mapped.fastq.gz$', '.fastq.gz') : + fn.endsWith('.unmapped.fastq.gz') ? "clean/${fn}".replaceAll(~'.unmapped.fastq.gz$', '.fastq.gz') : + fn.endsWith('.mapped.fastq.gz') ? "removed/${fn}".replaceAll(~'.mapped.fastq.gz$', '.fastq.gz') : + fn + } + ) + } input: tuple val(name), val(type), path(bam) From f739f8b18eb4ba91568a9bc89981018e0d312f0b Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Thu, 16 Nov 2023 13:54:11 +0100 Subject: [PATCH 33/80] Re-publish multiqc report to the qc/ directory (by default) --- modules/qc.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/qc.nf b/modules/qc.nf index 239d80a..62a45e7 100644 --- a/modules/qc.nf +++ b/modules/qc.nf @@ -94,7 +94,7 @@ process multiqc { label 'multiqc' // label 'smallTask' // this is tricky for the cloud, because only one container can be mounted. Thus comment this as hot fix - publishDir "${params.output}/${params.multiqc_dir}", mode: params.publish_dir_mode, pattern: 'multiqc_report.html', enabled: false + publishDir "${params.output}/${params.multiqc_dir}", mode: params.publish_dir_mode, pattern: 'multiqc_report.html' input: path(config) From b2ec3556e556af7eb477e2b6cbaec4655a798ca2 Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Thu, 16 Nov 2023 15:58:44 +0100 Subject: [PATCH 34/80] Only publish sorted.bam{,.bai} intermediate bam files --- modules/alignment_processing.nf | 19 +++++++++++++------ modules/utils.nf | 2 +- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/modules/alignment_processing.nf b/modules/alignment_processing.nf index 0ee46bc..c7baca1 100644 --- a/modules/alignment_processing.nf +++ b/modules/alignment_processing.nf @@ -50,7 +50,7 @@ process filter_soft_clipped_alignments { label 'samclipy' label 'smallTask' - publishDir "${params.output}/${params.tool}", mode: params.publish_dir_mode, pattern: "*.bam*", enabled: false + publishDir "${params.output}/intermediate/soft-clipped", mode: params.publish_dir_mode, pattern: "*.bam*", overwrite: false input: tuple val(name), path (bam) @@ -78,7 +78,7 @@ process filter_soft_clipped_alignments { process filter_true_dcs_alignments { label 'bed_samtools' - publishDir "${params.output}/${params.tool}", mode: params.publish_dir_mode, pattern: "*.bam*", enabled: false + publishDir "${params.output}/intermediate/true-dcs", mode: params.publish_dir_mode, pattern: "*.bam*", overwrite: false input: tuple val(name), path (bam) @@ -169,7 +169,7 @@ process fastq_from_bam { process idxstats_from_bam { label 'minimap2' - publishDir "${params.output}/minimap2/${name}", mode: 'copy', pattern: "${bam.baseName}.idxstats.tsv" , enabled: false + publishDir "${params.output}/qc", mode: 'copy', pattern: "${bam.baseName}.idxstats.tsv", overwrite: false, enabled: false input: tuple val(name), val(type), path(bam), path(bai) @@ -190,7 +190,7 @@ process idxstats_from_bam { process flagstats_from_bam { label 'minimap2' - publishDir "${params.output}/minimap2", mode: params.publish_dir_mode, pattern: "${bam.baseName}.flagstats.txt" , enabled: false + publishDir "${params.output}/qc", mode: params.publish_dir_mode, pattern: "${bam.baseName}.flagstats.txt", overwrite: false, enabled: false input: tuple val(name), val(type), path(bam), path(bai) @@ -231,8 +231,15 @@ process sort_bam { process index_bam { label 'minimap2' - publishDir "${params.output}/${params.tool}", mode: params.publish_dir_mode, pattern: "*.bam", enabled: false - publishDir "${params.output}/${params.tool}", mode: params.publish_dir_mode, pattern: "*.bam.bai", enabled: false + publishDir ( + path: "${params.output}/intermediate", + mode: params.publish_dir_mode, + pattern: "*.sorted.bam{,.bai}", + overwrite: false, + saveAs: { fn -> + fn.startsWith("keep_") ? "map-to-keep/${fn.replaceAll(~'^keep_', '')}" : "map-to-remove/${fn}" + } + ) input: tuple val(name), val(type), path(bam) diff --git a/modules/utils.nf b/modules/utils.nf index 5b62ec2..acbc21f 100644 --- a/modules/utils.nf +++ b/modules/utils.nf @@ -149,7 +149,7 @@ process filter_fastq_by_name { process bbdukStats { label 'smallTask' - publishDir "${params.output}/bbduk", mode: params.publish_dir_mode, pattern: "${name}_stats.txt", enabled: false + publishDir "${params.output}/qc", mode: params.publish_dir_mode, pattern: "${name}_stats.txt" input: tuple val(name), path (bbdukStats) From d91f94f0d1e02205bf6fea2bca03f78d7833eb8d Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Thu, 16 Nov 2023 16:56:32 +0100 Subject: [PATCH 35/80] Publish idxstats and flagstats so they are next to their bam files --- modules/alignment_processing.nf | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/modules/alignment_processing.nf b/modules/alignment_processing.nf index c7baca1..1671186 100644 --- a/modules/alignment_processing.nf +++ b/modules/alignment_processing.nf @@ -169,7 +169,15 @@ process fastq_from_bam { process idxstats_from_bam { label 'minimap2' - publishDir "${params.output}/qc", mode: 'copy', pattern: "${bam.baseName}.idxstats.tsv", overwrite: false, enabled: false + publishDir ( + path: "${params.output}/intermediate", + mode: params.publish_dir_mode, + pattern: "*.sorted.idxstats.tsv", + overwrite: false, + saveAs: { fn -> + fn.startsWith("keep_") ? "map-to-keep/${fn.replaceAll(~'^keep_', '')}" : "map-to-remove/${fn}" + } + ) input: tuple val(name), val(type), path(bam), path(bai) @@ -190,7 +198,15 @@ process idxstats_from_bam { process flagstats_from_bam { label 'minimap2' - publishDir "${params.output}/qc", mode: params.publish_dir_mode, pattern: "${bam.baseName}.flagstats.txt", overwrite: false, enabled: false + publishDir ( + path: "${params.output}/intermediate", + mode: params.publish_dir_mode, + pattern: "*.sorted.flagstats.txt", + overwrite: false, + saveAs: { fn -> + fn.startsWith("keep_") ? "map-to-keep/${fn.replaceAll(~'^keep_', '')}" : "map-to-remove/${fn}" + } + ) input: tuple val(name), val(type), path(bam), path(bai) From 82b60c074cd199f29f0bb3a97d69cd9bb24c43da Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Fri, 17 Nov 2023 14:47:04 +0100 Subject: [PATCH 36/80] Handle --strict_dcs and --min_clip output in results dir --- modules/alignment_processing.nf | 64 +++++++++++++++++++++------------ modules/utils.nf | 7 ++++ 2 files changed, 49 insertions(+), 22 deletions(-) diff --git a/modules/alignment_processing.nf b/modules/alignment_processing.nf index 1671186..cc708d0 100644 --- a/modules/alignment_processing.nf +++ b/modules/alignment_processing.nf @@ -50,44 +50,60 @@ process filter_soft_clipped_alignments { label 'samclipy' label 'smallTask' - publishDir "${params.output}/intermediate/soft-clipped", mode: params.publish_dir_mode, pattern: "*.bam*", overwrite: false + publishDir ( + path: "${params.output}/intermediate", + mode: params.publish_dir_mode, + pattern: "${name}*.bam{,.bai}", + overwrite: false, + saveAs: { fn -> + fn.startsWith("keep_") ? "map-to-keep/soft-clipped/${fn.replaceAll(~'^keep_', '')}" : "map-to-remove/soft-clipped/${fn}" + } + ) input: tuple val(name), path (bam) val (minClip) output: - tuple val(name), val('unmapped'), path ('*.softclipped.bam'), emit: bam_clipped - tuple val(name), val('mapped'), path ('*.passedclipped.bam'), emit: bam_ok_clipped + tuple val(name), val('unmapped'), path ('*.soft-clipped.bam'), emit: bam_clipped + tuple val(name), val('mapped'), path ('*.passed-clipped.bam'), emit: bam_ok_clipped tuple val(name), path ('*.bam.bai') script: """ git clone https://github.com/MarieLataretu/samclipy.git --branch v0.0.2 || git clone git@github.com:MarieLataretu/samclipy.git --branch v0.0.2 - samtools view -h ${bam} | python samclipy/samclipy.py --invert --minClip ${minClip} | samtools sort > ${name}.softclipped.bam - samtools view -h ${bam} | python samclipy/samclipy.py --minClip ${minClip} | samtools sort > ${name}.passedclipped.bam - samtools index ${name}.softclipped.bam - samtools index ${name}.passedclipped.bam + samtools view -h ${bam} | python samclipy/samclipy.py --invert --minClip ${minClip} | samtools sort > ${name}.soft-clipped.bam + samtools view -h ${bam} | python samclipy/samclipy.py --minClip ${minClip} | samtools sort > ${name}.passed-clipped.bam + samtools index ${name}.soft-clipped.bam + samtools index ${name}.passed-clipped.bam """ stub: """ - touch ${name}.softclipped.bam ${name}.passedclipped.bam ${name}.softclipped.bam.bai ${name}.passedclipped.bam.bai + touch ${name}.soft-clipped.bam ${name}.passed-clipped.bam ${name}.soft-clipped.bam.bai ${name}.passed-clipped.bam.bai """ } process filter_true_dcs_alignments { label 'bed_samtools' - publishDir "${params.output}/intermediate/true-dcs", mode: params.publish_dir_mode, pattern: "*.bam*", overwrite: false + publishDir ( + path: "${params.output}/intermediate", + mode: params.publish_dir_mode, + pattern: "${name}*.bam{,.bai}", + overwrite: false, + saveAs: { fn -> + fn.startsWith("keep_") ? "map-to-keep/strict-dcs/${fn.replaceAll(~'^keep_', '')}" : "map-to-remove/strict-dcs/${fn}" + } + ) input: tuple val(name), path (bam) path (dcs_ends_bed) output: - tuple val(name), val('mapped'), path ("${name}.no_dcs.bam"), emit: no_dcs - tuple val(name), val('mapped'), path ("${name}.true_dcs.bam"), emit: true_dcs - tuple val(name), val('unmapped'), path ("${name}.false_dcs.bam"), emit: false_dcs + tuple val(name), val('mapped'), path ("${name}.no-dcs.bam"), emit: no_dcs + tuple val(name), val('mapped'), path ("${name}.true-dcs.bam"), emit: true_dcs + tuple val(name), val('unmapped'), path ("${name}.false-dcs.bam"), emit: false_dcs tuple val(name), path ('*.bam.bai') path('dcs.bam') @@ -95,17 +111,17 @@ process filter_true_dcs_alignments { """ # true spike in: 1-65 || 1-92; 3513-3560 (len 48) samtools view -b -h -e 'rname=="Lambda_3.6kb"' ${bam} > dcs.bam - samtools view -b -h -e 'rname!="Lambda_3.6kb"' ${bam} > ${name}.no_dcs.bam - bedtools intersect -wa -ubam -a dcs.bam -b ${dcs_ends_bed} > ${name}.true_dcs.bam - bedtools intersect -v -ubam -a dcs.bam -b ${dcs_ends_bed} > ${name}.false_dcs.bam + samtools view -b -h -e 'rname!="Lambda_3.6kb"' ${bam} > ${name}.no-dcs.bam + bedtools intersect -wa -ubam -a dcs.bam -b ${dcs_ends_bed} > ${name}.true-dcs.bam + bedtools intersect -v -ubam -a dcs.bam -b ${dcs_ends_bed} > ${name}.false-dcs.bam samtools index dcs.bam - samtools index ${name}.no_dcs.bam - samtools index ${name}.true_dcs.bam - samtools index ${name}.false_dcs.bam + samtools index ${name}.no-dcs.bam + samtools index ${name}.true-dcs.bam + samtools index ${name}.false-dcs.bam """ stub: """ - touch ${name}.no_dcs.bam ${name}.true_dcs.bam ${name}.false_dcs.bam ${name}.no_dcs.bam.bai ${name}.true_dcs.bam.bai ${name}.false_dcs.bam.bai + touch ${name}.no-dcs.bam ${name}.true-dcs.bam ${name}.false-dcs.bam ${name}.no-dcs.bam.bai ${name}.true-dcs.bam.bai ${name}.false-dcs.bam.bai """ } @@ -118,10 +134,12 @@ process fastq_from_bam { pattern: "*.gz", overwrite: false, saveAs: { fn -> - fn.startsWith("keep_") ? "map-to-keep/${fn.replaceAll(~'^keep_', '')}" : "map-to-remove/${fn}" + fn.startsWith("keep_") ? "map-to-keep/${fn.replaceAll(~'^keep_', '').replaceAll(~'_merged', '')}" : "map-to-remove/${fn.replaceAll(~'_merged', '')}" } ) + // When using --keep, cleaned fastq files are generated by the + // filter_fastq_by_name process and not here if ( !params.keep ) { publishDir ( path: params.output, @@ -131,8 +149,10 @@ process fastq_from_bam { saveAs: { fn -> fn.endsWith('.unmapped.fastq.gz') ? "clean/${fn}".replaceAll(~'.unmapped.fastq.gz$', '.fastq.gz') : fn.endsWith('.mapped.fastq.gz') ? "removed/${fn}".replaceAll(~'.mapped.fastq.gz$', '.fastq.gz') : - fn.endsWith('.unmapped.fastq.gz') ? "clean/${fn}".replaceAll(~'.unmapped.fastq.gz$', '.fastq.gz') : - fn.endsWith('.mapped.fastq.gz') ? "removed/${fn}".replaceAll(~'.mapped.fastq.gz$', '.fastq.gz') : + fn.endsWith('.unmapped_merged.fastq.gz') ? "clean/${fn}".replaceAll(~'.unmapped_merged.fastq.gz$', '.fastq.gz') : + fn.endsWith('.mapped_merged.fastq.gz') ? "removed/${fn}".replaceAll(~'.mapped_merged.fastq.gz$', '.fastq.gz') : + fn.endsWith('.unmapped_merged_merged.fastq.gz') ? "clean/${fn}".replaceAll(~'.unmapped_merged_merged.fastq.gz$', '.fastq.gz') : + fn.endsWith('.soft-clipped_merged.fastq.gz') ? "clean/${fn}".replaceAll(~'.soft-clipped_merged.fastq.gz$', '.fastq.gz') : fn } ) diff --git a/modules/utils.nf b/modules/utils.nf index acbc21f..5feea0f 100644 --- a/modules/utils.nf +++ b/modules/utils.nf @@ -66,6 +66,8 @@ process get_read_names { process filter_fastq_by_name { label 'minimap2' // We don't need minimap2 but the container has pigz + // When using --keep, this is where the final cleaned fastq file is + // generated. If not, it's generated by the fastq_from_bam process if ( params.keep ) { publishDir ( path: params.output, @@ -74,6 +76,11 @@ process filter_fastq_by_name { saveAs: { fn -> fn.endsWith('.unmapped.fastq.gz') ? "clean/${fn}".replaceAll(~'.unmapped.fastq.gz$', '.fastq.gz') : fn.endsWith('.mapped.fastq.gz') ? "removed/${fn}".replaceAll(~'.mapped.fastq.gz$', '.fastq.gz') : + fn.endsWith('.unmapped_merged.fastq.gz') ? "clean/${fn}".replaceAll(~'.unmapped_merged.fastq.gz$', '.fastq.gz') : + fn.endsWith('.mapped_merged.fastq.gz') ? "removed/${fn}".replaceAll(~'.mapped_merged.fastq.gz$', '.fastq.gz') : + fn.endsWith('.unmapped_merged_merged.fastq.gz') ? "clean/${fn}".replaceAll(~'.unmapped_merged_merged.fastq.gz$', '.fastq.gz') : + fn.endsWith('.mapped_merged_merged.fastq.gz') ? "removed/${fn}".replaceAll(~'.mapped_merged_merged.fastq.gz$', '.fastq.gz') : + fn.endsWith('.fastq.gz') ? "removed/${fn}".replaceAll(~'.mapped_merged_merged.fastq.gz$', '.fastq.gz') : fn } ) From fc1318bba66f12280a4d1ed2f1be0b54c2527417 Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Fri, 17 Nov 2023 17:41:06 +0100 Subject: [PATCH 37/80] First steps towards making illumina/bbduk results dir look right --- modules/bbmap.nf | 35 +++++++++++++++++++++++++++++------ modules/utils.nf | 26 +++++++++++++++++--------- workflows/clean_wf.nf | 8 ++++---- 3 files changed, 50 insertions(+), 19 deletions(-) diff --git a/modules/bbmap.nf b/modules/bbmap.nf index c1f81ef..c020a13 100644 --- a/modules/bbmap.nf +++ b/modules/bbmap.nf @@ -1,7 +1,30 @@ process bbduk { label 'bbmap' + + publishDir ( + path: "${params.output}/intermediate", + mode: params.publish_dir_mode, + pattern: "*.gz", + overwrite: false, + saveAs: { fn -> + fn.startsWith("keep_") ? "map-to-keep/${fn.replaceAll(~'^keep_', '').replaceAll(~'_merged', '')}" : "map-to-remove/${fn.replaceAll(~'_merged', '')}" + } + ) - publishDir "${params.output}/${params.tool}/${name}", mode: 'copy', pattern: "*.gz", enabled: false + //if ( !params.keep ) { + if ( true ) { + publishDir ( + path: params.output, + overwrite: false, + mode: params.publish_dir_mode, + pattern: "*.gz", + saveAs: { fn -> + fn.endsWith('.clean.fastq.gz') ? "clean/${fn}".replaceAll(~'.fastq.clean.fastq.gz$', '.fastq.gz') : + fn.endsWith('.contamination.fastq.gz') ? "removed/${fn}".replaceAll(~'.fastq.contamination.fastq.gz$', '.fastq.gz') : + fn + } + ) + } input: tuple val(name), path(reads) @@ -11,13 +34,13 @@ process bbduk { val name, emit: name tuple val(name), val('clean'), path('*clean.fastq.gz'), emit: cleaned_reads tuple val(name), val('contamination'), path('*contamination.fastq.gz'), emit: contaminated_reads - tuple val(name), path("${name}_bbduk_stats.txt"), emit: stats + tuple val(name), path("${name}.bbduk_stats.txt"), emit: stats script: if ( params.lib_pairedness == 'paired' ) { """ MEM=\$(echo ${task.memory} | sed 's/ GB//g') - bbduk.sh -Xmx\${MEM}g ref=${db} threads=${task.cpus} stats=${name}_bbduk_stats.txt ordered=t k=${params.bbduk_kmer} in=${reads[0]} in2=${reads[1]} out=${reads[0].baseName}.clean.fastq out2=${reads[1].baseName}.clean.fastq outm=${reads[0].baseName}.contamination.fastq outm2=${reads[1].baseName}.contamination.fastq + bbduk.sh -Xmx\${MEM}g ref=${db} threads=${task.cpus} stats=${name}.bbduk_stats.txt ordered=t k=${params.bbduk_kmer} in=${reads[0]} in2=${reads[1]} out=${reads[0].baseName}.clean.fastq out2=${reads[1].baseName}.clean.fastq outm=${reads[0].baseName}.contamination.fastq outm2=${reads[1].baseName}.contamination.fastq gzip --no-name *.clean.fastq gzip --no-name *.contamination.fastq @@ -25,7 +48,7 @@ process bbduk { } else if ( params.lib_pairedness == 'single' ) { """ MEM=\$(echo ${task.memory} | sed 's/ GB//g') - bbduk.sh -Xmx\${MEM}g ref=${db} threads=${task.cpus} stats=${name}_bbduk_stats.txt ordered=t k=${params.bbduk_kmer} in=${reads} out=${name}.clean.fastq outm=${name}.contamination.fastq + bbduk.sh -Xmx\${MEM}g ref=${db} threads=${task.cpus} stats=${name}.bbduk_stats.txt ordered=t k=${params.bbduk_kmer} in=${reads} out=${name}.clean.fastq outm=${name}.contamination.fastq gzip --no-name *.clean.fastq gzip --no-name *.contamination.fastq @@ -36,12 +59,12 @@ process bbduk { stub: if ( params.lib_pairedness == 'paired' ) { """ - touch ${name}_bbduk_stats.txt + touch ${name}.bbduk_stats.txt touch ${reads[0].baseName}.clean.fastq.gz ${reads[0].baseName}.contamination.fastq.gz ${reads[1].baseName}.clean.fastq.gz ${reads[1].baseName}.contamination.fastq.gz """ } else if ( params.lib_pairedness == 'single' ) { """ - touch ${name}_bbduk_stats.txt + touch ${name}.bbduk_stats.txt touch ${name}.contamination.fastq.gz ${name}.clean.fastq.gz """ } diff --git a/modules/utils.nf b/modules/utils.nf index 5feea0f..6500503 100644 --- a/modules/utils.nf +++ b/modules/utils.nf @@ -153,17 +153,25 @@ process filter_fastq_by_name { // """ // } -process bbdukStats { +process bbduk_stats { label 'smallTask' - publishDir "${params.output}/qc", mode: params.publish_dir_mode, pattern: "${name}_stats.txt" + publishDir ( + path: "${params.output}/intermediate", + mode: params.publish_dir_mode, + pattern: "*.stats.tsv", + overwrite: false, + saveAs: { fn -> + fn.startsWith("keep_") ? "map-to-keep/${fn.replaceAll(~'^keep_', '')}" : "map-to-remove/${fn}" + } + ) input: tuple val(name), path (bbdukStats) output: - tuple val(name), path ("${name}_stats.txt") - path("${name}_bbduk_stats.tsv"), emit: tsv + tuple val(name), path ("${name}.stats.txt") + path("${name}.bbduk_stats.tsv"), emit: tsv script: """ @@ -173,21 +181,21 @@ process bbdukStats { FA=\$(awk -F '\\t' '/^[^#]/ {print "\\t\\t"\$2" ("\$3") aligned to "\$1}' ${bbdukStats}) - touch ${name}_stats.txt - cat <> ${name}_stats.txt + touch ${name}.stats.txt + cat <> ${name}.stats.txt \$TOTAL reads in total; of these: \t\$MNUM (\$MPER) reads were properly mapped; of these: \$FA EOF - touch ${name}_bbduk_stats.tsv - cat <> ${name}_bbduk_stats.tsv + touch ${name}.bbduk_stats.tsv + cat <> ${name}.bbduk_stats.tsv Sample Name\tClean reads\tMapped reads ${name}\t\$((\$TOTAL-\$MNUM))\t\$MNUM EOF """ stub: """ - touch ${name}_stats.txt ${name}_bbduk_stats.tsv + touch ${name}.stats.txt ${name}.bbduk_stats.tsv """ } diff --git a/workflows/clean_wf.nf b/workflows/clean_wf.nf index 1a431ca..c066a4e 100644 --- a/workflows/clean_wf.nf +++ b/workflows/clean_wf.nf @@ -1,6 +1,6 @@ include { minimap2 } from '../modules/minimap2' include { bbduk } from '../modules/bbmap' -include { bbdukStats } from '../modules/utils' +include { bbduk_stats } from '../modules/utils' include { split_bam; fastq_from_bam ; idxstats_from_bam ; flagstats_from_bam ; index_bam as index_bam; index_bam as index_bam2; sort_bam ; filter_true_dcs_alignments ; merge_bam as merge_bam1 ; merge_bam as merge_bam2 ; merge_bam as merge_bam3 ; merge_bam as merge_bam4 ; filter_soft_clipped_alignments } from '../modules/alignment_processing' workflow clean { @@ -13,9 +13,9 @@ workflow clean { if ( params.bbduk ) { // map bbduk(input, contamination) - bbdukStats(bbduk.out.stats) + bbduk_stats(bbduk.out.stats) // define output - bbduk_summary = bbdukStats.out.tsv + bbduk_summary = bbduk_stats.out.tsv idxstats = Channel.empty() flagstats = Channel.empty() out_reads = bbduk.out.cleaned_reads.concat(bbduk.out.contaminated_reads) @@ -57,4 +57,4 @@ workflow clean { flagstats out_reads bams_bai -} \ No newline at end of file +} From f03c8a5711e834402251fed2224ff34ee356e25c Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Sun, 19 Nov 2023 21:22:51 +0100 Subject: [PATCH 38/80] Add bed_samtools container bump minimap2 container (from main) --- configs/container.config | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/configs/container.config b/configs/container.config index 733c0e6..598f12a 100644 --- a/configs/container.config +++ b/configs/container.config @@ -1,9 +1,10 @@ process { withLabel: smallTask { container = 'nanozoo/samtools:1.14--d8fb865' } - withLabel: minimap2 { container = 'nanozoo/minimap2:2.26--ef54a1d' } + withLabel: minimap2 { container = 'nanozoo/minimap2:2.26--d9ef6b6' } withLabel: bbmap { container = 'nanozoo/bbmap:38.79--8e915d7' } withLabel: multiqc { container = 'nanozoo/multiqc:1.9--aba729b' } withLabel: fastqc { container = 'nanozoo/fastqc:0.11.9--f61b8b4' } withLabel: nanoplot { container = 'nanozoo/nanoplot:1.32.0--1ae6f5d' } withLabel: quast { container = 'nanozoo/quast:5.0.2--e7f0cfe' } -} \ No newline at end of file + withLabel: bed_samtools { container = 'nanozoo/bed_samtools:2.30.0--cc7d1b9' } +} From 619c205e276359996896f405b98e6018c438bb21 Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Tue, 21 Nov 2023 14:03:40 +0100 Subject: [PATCH 39/80] --keep is now working with bbduk. results/ is properly populated. --- clean.nf | 2 +- configs/conda.config | 1 + configs/container.config | 5 +++-- modules/bbmap.nf | 19 ++++++++--------- modules/utils.nf | 27 +++++++++++++++++++++--- workflows/clean_wf.nf | 3 ++- workflows/keep_wf.nf | 44 ++++++++++++++++++++++++++-------------- 7 files changed, 69 insertions(+), 32 deletions(-) diff --git a/clean.nf b/clean.nf index 894b017..69c27fb 100755 --- a/clean.nf +++ b/clean.nf @@ -194,7 +194,7 @@ workflow { prepare_contamination(nanoControlFastaChannel, illuminaControlFastaChannel, rRNAChannel, hostNameChannel, ownFastaChannel) contamination = prepare_contamination.out - clean(input_ch, contamination, nanoControlBedChannel) + clean(input_ch, contamination, nanoControlBedChannel, 'map-to-remove') if (params.keep){ prepare_keep(keepFastaChannel) diff --git a/configs/conda.config b/configs/conda.config index 700a584..d13d30d 100644 --- a/configs/conda.config +++ b/configs/conda.config @@ -8,4 +8,5 @@ process { withLabel: nanoplot { conda = "$baseDir/envs/nanoplot.yaml" } withLabel: quast { conda = "$baseDir/envs/quast.yaml" } withLabel: bed_samtools { conda = "$baseDir/envs/bed_samtools.yaml" } + withLabel: seqkit { conda = "$baseDir/envs/seqkit.yaml" } } diff --git a/configs/container.config b/configs/container.config index 598f12a..6d310ac 100644 --- a/configs/container.config +++ b/configs/container.config @@ -1,10 +1,11 @@ process { - withLabel: smallTask { container = 'nanozoo/samtools:1.14--d8fb865' } + withLabel: smallTask { container = 'nanozoo/samtools:1.14--d8fb865' } withLabel: minimap2 { container = 'nanozoo/minimap2:2.26--d9ef6b6' } - withLabel: bbmap { container = 'nanozoo/bbmap:38.79--8e915d7' } + withLabel: bbmap { container = 'nanozoo/bbmap:38.79--8e915d7' } withLabel: multiqc { container = 'nanozoo/multiqc:1.9--aba729b' } withLabel: fastqc { container = 'nanozoo/fastqc:0.11.9--f61b8b4' } withLabel: nanoplot { container = 'nanozoo/nanoplot:1.32.0--1ae6f5d' } withLabel: quast { container = 'nanozoo/quast:5.0.2--e7f0cfe' } withLabel: bed_samtools { container = 'nanozoo/bed_samtools:2.30.0--cc7d1b9' } + withLabel: seqkit { container = 'quay.io/biocontainers/seqkit:2.6.1--h9ee0642_0' } } diff --git a/modules/bbmap.nf b/modules/bbmap.nf index c020a13..4326ac4 100644 --- a/modules/bbmap.nf +++ b/modules/bbmap.nf @@ -2,17 +2,15 @@ process bbduk { label 'bbmap' publishDir ( - path: "${params.output}/intermediate", + path: "${params.output}/intermediate/${map_target}", mode: params.publish_dir_mode, - pattern: "*.gz", - overwrite: false, - saveAs: { fn -> - fn.startsWith("keep_") ? "map-to-keep/${fn.replaceAll(~'^keep_', '').replaceAll(~'_merged', '')}" : "map-to-remove/${fn.replaceAll(~'_merged', '')}" - } + pattern: "*.{clean,contamination}.fastq.gz", + overwrite: false ) - //if ( !params.keep ) { - if ( true ) { + // When using `--keep`, we need to do further processing before we have + // the final clean and removed data sets. + if ( !params.keep ) { publishDir ( path: params.output, overwrite: false, @@ -29,11 +27,12 @@ process bbduk { input: tuple val(name), path(reads) path db + val(map_target) output: val name, emit: name - tuple val(name), val('clean'), path('*clean.fastq.gz'), emit: cleaned_reads - tuple val(name), val('contamination'), path('*contamination.fastq.gz'), emit: contaminated_reads + tuple val(name), val('unmapped'), path('*clean.fastq.gz'), emit: cleaned_reads + tuple val(name), val('mapped'), path('*contamination.fastq.gz'), emit: contaminated_reads tuple val(name), path("${name}.bbduk_stats.txt"), emit: stats script: diff --git a/modules/utils.nf b/modules/utils.nf index 6500503..40c0c2b 100644 --- a/modules/utils.nf +++ b/modules/utils.nf @@ -63,11 +63,31 @@ process get_read_names { """ } +process get_read_names_fastx { + label 'seqkit' + + input: + tuple val(name), path(fastx) + + output: + tuple val(name), path("${name}.ids") + + script: + """ + seqkit seq -ni ${fastx} | sort | uniq > ${name}.ids + """ + stub: + """ + touch ${name}.ids + """ +} + process filter_fastq_by_name { label 'minimap2' // We don't need minimap2 but the container has pigz // When using --keep, this is where the final cleaned fastq file is - // generated. If not, it's generated by the fastq_from_bam process + // generated. If not, it's generated by the fastq_from_bam process or + // bbduk mapping if ( params.keep ) { publishDir ( path: params.output, @@ -80,7 +100,8 @@ process filter_fastq_by_name { fn.endsWith('.mapped_merged.fastq.gz') ? "removed/${fn}".replaceAll(~'.mapped_merged.fastq.gz$', '.fastq.gz') : fn.endsWith('.unmapped_merged_merged.fastq.gz') ? "clean/${fn}".replaceAll(~'.unmapped_merged_merged.fastq.gz$', '.fastq.gz') : fn.endsWith('.mapped_merged_merged.fastq.gz') ? "removed/${fn}".replaceAll(~'.mapped_merged_merged.fastq.gz$', '.fastq.gz') : - fn.endsWith('.fastq.gz') ? "removed/${fn}".replaceAll(~'.mapped_merged_merged.fastq.gz$', '.fastq.gz') : + fn.endsWith('.fastq.clean.fastq.gz') ? "clean/${fn}".replaceAll(~'.fastq.clean.fastq.gz$', '.fastq.gz') : + fn.endsWith('.fastq.contamination.fastq.gz') ? "removed/${fn}".replaceAll(~'.fastq.contamination.fastq.gz$', '.fastq.gz') : fn } ) @@ -159,7 +180,7 @@ process bbduk_stats { publishDir ( path: "${params.output}/intermediate", mode: params.publish_dir_mode, - pattern: "*.stats.tsv", + pattern: "*.bbduk_stats.tsv", overwrite: false, saveAs: { fn -> fn.startsWith("keep_") ? "map-to-keep/${fn.replaceAll(~'^keep_', '')}" : "map-to-remove/${fn}" diff --git a/workflows/clean_wf.nf b/workflows/clean_wf.nf index c066a4e..b61ed5b 100644 --- a/workflows/clean_wf.nf +++ b/workflows/clean_wf.nf @@ -8,11 +8,12 @@ workflow clean { input contamination dcs_ends_bed + map_target main: if ( params.bbduk ) { // map - bbduk(input, contamination) + bbduk(input, contamination, map_target) bbduk_stats(bbduk.out.stats) // define output bbduk_summary = bbduk_stats.out.tsv diff --git a/workflows/keep_wf.nf b/workflows/keep_wf.nf index 11ca00d..12605a4 100644 --- a/workflows/keep_wf.nf +++ b/workflows/keep_wf.nf @@ -1,6 +1,6 @@ include { clean as keep_map } from './clean_wf' -include { get_read_names; filter_fastq_by_name } from '../modules/utils' +include { get_read_names; get_read_names_fastx; filter_fastq_by_name } from '../modules/utils' include { idxstats_from_bam ; flagstats_from_bam } from '../modules/alignment_processing' workflow keep { @@ -11,25 +11,39 @@ workflow keep { un_mapped_clean_fastq main: - keep_map(input, keep_reference, dcs_ends_bed) + keep_map(input, keep_reference, dcs_ends_bed, 'map-to-keep') - keep_reads_bam = keep_map.out.bams_bai.filter{ it[1] == 'mapped' } - get_read_names(keep_reads_bam.map{it -> [it[0], it[2]]}) - // works also for multiple samples? - - // mv keep mapped reads from cleaned mapped to clean unmapped - filter_fastq_by_name(get_read_names.out.map{ it -> [it[0].replaceAll("^keep_",""), it[1]] }.join(un_mapped_clean_fastq)) + if ( params.bbduk ) { + keep_reads_fastx = keep_map.out.out_reads.filter{ it[1] == 'mapped' } + get_read_names_fastx(keep_reads_fastx.map{it -> [it[0], it[2]]}) + + filter_fastq_by_name(get_read_names_fastx.out.map{ it -> [it[0].replaceAll("^keep_",""), it[1]] }.join(un_mapped_clean_fastq)) + + // These channels are not populated when we're working using bbduk + idxstats = Channel.empty() + flagstats = Channel.empty() + keep_reads_bam = Channel.empty() + out_reads = filter_fastq_by_name.out.mapped_no_keep.mix(filter_fastq_by_name.out.unmapped_keep) + } else { + + keep_reads_bam = keep_map.out.bams_bai.filter{ it[1] == 'mapped' } + get_read_names(keep_reads_bam.map{it -> [it[0], it[2]]}) + // works also for multiple samples? + + // mv keep mapped reads from cleaned mapped to clean unmapped + filter_fastq_by_name(get_read_names.out.map{ it -> [it[0].replaceAll("^keep_",""), it[1]] }.join(un_mapped_clean_fastq)) - // QC - idxstats = idxstats_from_bam(keep_reads_bam) - flagstats = flagstats_from_bam(keep_reads_bam) + // QC + idxstats = idxstats_from_bam(keep_reads_bam) + flagstats = flagstats_from_bam(keep_reads_bam) - idxstats = idxstats_from_bam.out - flagstats = flagstats_from_bam.out - out_reads = filter_fastq_by_name.out.mapped_no_keep.mix(filter_fastq_by_name.out.unmapped_keep) + idxstats = idxstats_from_bam.out + flagstats = flagstats_from_bam.out + out_reads = filter_fastq_by_name.out.mapped_no_keep.mix(filter_fastq_by_name.out.unmapped_keep) + } emit: idxstats flagstats out_reads keep_reads_bam -} \ No newline at end of file +} From 4611647dbc1400fb80232779fb85fc9091cb630f Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Tue, 21 Nov 2023 14:11:45 +0100 Subject: [PATCH 40/80] Add seqkit conda environment file --- envs/seqkit.yaml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 envs/seqkit.yaml diff --git a/envs/seqkit.yaml b/envs/seqkit.yaml new file mode 100644 index 0000000..3dc07d1 --- /dev/null +++ b/envs/seqkit.yaml @@ -0,0 +1,6 @@ +name: seqkit +channels: + - bioconda + - conda-forge +dependencies: + - seqkit==2.6.1 From e5e5659d654987c8fefee8cf73209f4d2694f400 Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Tue, 21 Nov 2023 16:44:19 +0100 Subject: [PATCH 41/80] Output fasta when input is fasta Also remove dead code, skip creation of uncompressed fast[aq] file by letting samtools directly write a gzipped file. Remove whitespace at end of some lines. --- README.md | 16 +++---- clean.nf | 56 +++++++++++------------ modules/alignment_processing.nf | 28 ++++++------ modules/unused/alignment_processing.nf | 34 -------------- modules/utils.nf | 62 +++++--------------------- 5 files changed, 61 insertions(+), 135 deletions(-) diff --git a/README.md b/README.md index a43e021..d0d8674 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Technologies ([DNA CS (DCS)](https://assets.ctfassets.net/hkzaxo8a05x5/2IX56YmF5 ## What this workflow does for you -With this workflow you can screen and clean your Illumina, Nanopore or any FASTA-formated sequence date. The results are the clean sequences and the sequences identified as contaminated. +With this workflow you can screen and clean your Illumina, Nanopore or any FASTA-formated sequence data. The results are the clean sequences and the sequences identified as contaminated. Per default [minimap2](https://github.com/lh3/minimap2) is used for aligning your sequences to reference sequences but I recommend using `bbduk`, part of [BBTools](https://github.com/BioInfoTools/BBMap), to clean short-read data (_--bbduk_). You can simply specify provided hosts and controls for the cleanup or use your own FASTA files. The reads are then mapped against the specified host, control and user defined FASTA files. All reads that map are considered as contamination. In case of Illumina paired-end reads, both mates need to be aligned. @@ -35,7 +35,7 @@ We saw many soft-clipped reads after the mapping, that probably aren't contamina ### Dependencies management -- [Conda](https://docs.conda.io/en/latest/miniconda.html) +- [Conda](https://docs.conda.io/en/latest/miniconda.html) and/or @@ -57,7 +57,7 @@ Get help: nextflow run hoelzer/clean --help ``` -Clean Nanopore data by filtering against a combined reference of the _E. coli_ genome and the Nanopore DNA CS spike-in. +Clean Nanopore data by filtering against a combined reference of the _E. coli_ genome and the Nanopore DNA CS spike-in. ```bash # uses Docker per default @@ -77,7 +77,7 @@ nextflow run hoelzer/clean --input_type illumina --input '/home/martin/.nextflow --own ~/.nextflow/assets/hoelzer/clean/test/ref.fasta.gz --bbduk ``` -Clean some Illumina, Nanopore, and assembly files against the mouse and phiX genomes. +Clean some Illumina, Nanopore, and assembly files against the mouse and phiX genomes. ## Supported species and control sequences @@ -119,7 +119,7 @@ results/ removed/ .fastq.gz intermedate/ - to-remove/ + map-to-remove/ mapped.fastq.gz unmapped.fastq.gz mapped.bam @@ -131,7 +131,7 @@ results/ soft-clipped/ soft-clipped.bam passed-clipped.bam - to-keep/ + map-to-keep/ mapped.fastq.gz unmapped.fastq.gz mapped.bam @@ -154,11 +154,11 @@ For debugging purposes we also provide various intermediate results in the `inte ## Citations If you use `CLEAN` in your work, please consider citing our preprint: - + > Targeted decontamination of sequencing data with CLEAN > > Marie Lataretu, Sebastian Krautwurst, Adrian Viehweger, Christian Brandt, Martin Hölzer > -> bioRxiv 2023.08.05.552089; doi: https://doi.org/10.1101/2023.08.05.552089 +> bioRxiv 2023.08.05.552089; doi: https://doi.org/10.1101/2023.08.05.552089 Additionally, an extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file. diff --git a/clean.nf b/clean.nf index 69c27fb..3e43de6 100755 --- a/clean.nf +++ b/clean.nf @@ -15,19 +15,19 @@ def parameter_diff = params.keySet() - valid_params if (parameter_diff.size() != 0){ exit 1, "ERROR: Parameter(s) $parameter_diff is/are not valid in the pipeline!\n" } -if (params.input.contains('.clean.') ) { - exit 1, "ERROR: Input files cannot contain `.clean.`\n" +if (params.input.contains('.clean.') ) { + exit 1, "ERROR: Input files cannot contain `.clean.`\n" } -/************************** -* META & HELP MESSAGES +/************************** +* META & HELP MESSAGES **************************/ -/* +/* Comment section: First part is a terminal print for additional user information, followed by some help statements (e.g. missing input) Second part is file channel input. This allows via --list to alter the input of --nano & --illumina -to add csv instead. name,path or name,pathR1,pathR2 in case of illumina +to add csv instead. name,path or name,pathR1,pathR2 in case of illumina */ // terminal prints @@ -51,7 +51,7 @@ if ( workflow.profile.contains('singularity') ) { println "Singularity cache directory:" println " $params.singularityCacheDir" } -if ( workflow.profile.contains('conda') ) { +if ( workflow.profile.contains('conda') ) { println "Conda cache directory:" println " $params.condaCacheDir" } @@ -66,11 +66,11 @@ if (workflow.profile == 'standard' || workflow.profile.contains('local')) { println "\033[2mMemory to use: $params.memory, maximal memory to use: $params.max_memory\u001B[0m" println " " } -if ( !workflow.revision ) { +if ( !workflow.revision ) { println "\033[0;33mWARNING: Not a stable execution. Please use -r for full reproducibility.\033[0m\n" } def folder = new File(params.output) -if ( folder.exists() ) { +if ( folder.exists() ) { println "\033[0;33mWARNING: Output folder already exists. Results might be overwritten! You can adjust the output folder via [--output]\033[0m\n" } if ( workflow.profile.contains('singularity') ) { @@ -85,15 +85,15 @@ Set input_types = ['nano', 'illumina', 'illumina_single_end', 'fasta'] if ( params.profile ) { exit 1, "--profile is wrong, use -profile" } if ( params.input == '' || !params.input_type == '' ) { exit 1, "Missing required input parameters [--input] and [--input_type]" } -if ( params.input_type ) { if ( ! (params.input_type in input_types ) ) { exit 1, "Choose one of the the input types with --input_type: " + input_types } } +if ( params.input_type ) { if ( ! (params.input_type in input_types ) ) { exit 1, "Choose one of the the input types with --input_type: " + input_types } } if ( params.control ) { for( String ctr : params.control.split(',') ) if ( ! (ctr in controls ) ) { exit 1, "Wrong control defined (" + ctr + "), use one of these: " + controls } } if ( params.input_type == 'nano' && params.control && 'dcs' in params.control.split(',') && 'eno' in params.control.split(',') ) { exit 1, "Please choose either eno (for ONT dRNA-Seq) or dcs (for ONT DNA-Seq)." } if ( params.host ) { for( String hst : params.host.split(',') ) if ( ! (hst in hosts ) ) { exit 1, "Wrong host defined (" + hst + "), use one of these: " + hosts } } if ( !params.host && !params.own && !params.control && !params.rm_rrna ) { exit 1, "Please provide a control (--control), a host tag (--host), a FASTA file (--own) or set --rm_rrna for rRNA removal for the clean up."} -/************************** -* INPUT CHANNELS +/************************** +* INPUT CHANNELS **************************/ if ( params.input_type == 'illumina' ) { @@ -174,7 +174,7 @@ multiqc_config = Channel.fromPath( workflow.projectDir + '/assets/multiqc_config tool = params.bbduk ? 'bbduk' : 'minimap2' lib_pairedness = params.input_type == 'illumina' ? 'paired' : 'single' -/************************** +/************************** * MODULES **************************/ @@ -186,7 +186,7 @@ include { keep } from './workflows/keep_wf' addParams( tool: tool, lib_pairednes include { qc } from './workflows/qc_wf' -/************************** +/************************** * WORKFLOW ENTRY POINT **************************/ @@ -202,9 +202,9 @@ workflow { mapped = clean.out.out_reads.filter{ it[1] == 'mapped' } unmapped = clean.out.out_reads.filter{ it[1] == 'unmapped' } - + un_mapped_clean_fastq = mapped.join(unmapped) - + keep(input_ch.map{ it -> ['keep_'+it[0], it[1]]}, keep_fasta.collect(), nanoControlBedChannel, un_mapped_clean_fastq) } @@ -212,7 +212,7 @@ workflow { qc(input_ch.map{ it -> tuple(it[0], 'input', it[1]) }.mix(clean.out.out_reads), params.input_type, clean.out.bbduk_summary, clean.out.idxstats, clean.out.flagstats, multiqc_config) } -/************************** +/************************** * --help **************************/ def helpMSG() { @@ -223,19 +223,19 @@ def helpMSG() { c_dim = "\033[2m"; log.info """ ____________________________________________________________________________________________ - + Workflow: Decontamination - Clean your Illumina, Nanopore or any FASTA-formated sequence date. The output are the clean + Clean your Illumina, Nanopore or any FASTA-formated sequence date. The output are the clean and as contaminated identified sequences. Per default minimap2 is used for aligning your sequences - to a host but we recommend using the ${c_dim}--bbduk${c_reset} flag to switch to bbduk to clean short-read data. + to a host but we recommend using the ${c_dim}--bbduk${c_reset} flag to switch to bbduk to clean short-read data. + + Use the ${c_dim}--host${c_reset} and ${c_dim}--control${c_reset} flag to download a host database or specify your ${c_dim}--own${c_reset} FASTA. - Use the ${c_dim}--host${c_reset} and ${c_dim}--control${c_reset} flag to download a host database or specify your ${c_dim}--own${c_reset} FASTA. - ${c_yellow}Usage example:${c_reset} - nextflow run clean.nf --input_type nano --input '*/*.fastq' --host eco --control dcs + nextflow run clean.nf --input_type nano --input '*/*.fastq' --host eco --control dcs or - nextflow run clean.nf --input_type illumina --input '*/*.R{1,2}.fastq' --own some_host.fasta --bbduk + nextflow run clean.nf --input_type illumina --input '*/*.R{1,2}.fastq' --own some_host.fasta --bbduk or nextflow run clean.nf --input_type illumina --input 'test/illumina*.R{1,2}.fastq.gz' --nano data/nanopore.fastq.gz --fasta data/assembly.fasta --host eco --control phix @@ -244,8 +244,8 @@ def helpMSG() { ${c_green}--input_type illumina --input${c_reset} '*.R{1,2}.fastq.gz' -> file pairs ${c_green}--input_type illumina_single_end --input${c_reset} '*.fastq.gz' -> one sample per file ${c_green}--input_type fasta --input${c_reset} '*.fasta.gz' -> one sample per file - ${c_dim} ...read above input from csv files:${c_reset} ${c_green}--list ${c_reset} - ${c_dim}required format: name,path for --input_type nano and --input_type fasta; name,pathR1,pathR2 for --illumina input_type; name,path for --input_type illumina_single_end${c_reset} + ${c_dim} ...read above input from csv files:${c_reset} ${c_green}--list ${c_reset} + ${c_dim}required format: name,path for --input_type nano and --input_type fasta; name,pathR1,pathR2 for --illumina input_type; name,path for --input_type illumina_single_end${c_reset} ${c_yellow}Decontamination options:${c_reset} ${c_green}--host${c_reset} comma separated list of reference genomes for decontamination, downloaded based on this parameter [default: $params.host] @@ -287,11 +287,11 @@ def helpMSG() { In particular for execution of the workflow on a HPC (LSF, SLURM) adjust the following parameters: --databases defines the path where databases are stored [default: $params.databases] --condaCacheDir defines the path where environments (conda) are cached [default: $params.condaCacheDir] - --singularityCacheDir defines the path where images (singularity) are cached [default: $params.singularityCacheDir] + --singularityCacheDir defines the path where images (singularity) are cached [default: $params.singularityCacheDir] ${c_yellow}Miscellaneous:${c_reset} --cleanup_work_dir deletes all files in the work directory after a successful completion of a run [default: $params.cleanup_work_dir] - ${c_dim}warning: if ture, the option will prevent the use of the resume feature!${c_reset} + ${c_dim}warning: if ture, the option will prevent the use of the resume feature!${c_reset} ${c_yellow}Profile:${c_reset} You can merge different profiles for different setups, e.g. diff --git a/modules/alignment_processing.nf b/modules/alignment_processing.nf index cc708d0..c13f0dd 100644 --- a/modules/alignment_processing.nf +++ b/modules/alignment_processing.nf @@ -35,7 +35,7 @@ process merge_bam { output: tuple val(name), val(type), path("${bam[0].baseName}_merged.bam") - + script: """ samtools merge -@ ${task.cpus} ${bam[0].baseName}_merged.bam ${bam} # first bam is output @@ -63,15 +63,15 @@ process filter_soft_clipped_alignments { input: tuple val(name), path (bam) val (minClip) - + output: tuple val(name), val('unmapped'), path ('*.soft-clipped.bam'), emit: bam_clipped tuple val(name), val('mapped'), path ('*.passed-clipped.bam'), emit: bam_ok_clipped tuple val(name), path ('*.bam.bai') - + script: """ - git clone https://github.com/MarieLataretu/samclipy.git --branch v0.0.2 || git clone git@github.com:MarieLataretu/samclipy.git --branch v0.0.2 + git clone https://github.com/MarieLataretu/samclipy.git --branch v0.0.2 || git clone git@github.com:MarieLataretu/samclipy.git --branch v0.0.2 samtools view -h ${bam} | python samclipy/samclipy.py --invert --minClip ${minClip} | samtools sort > ${name}.soft-clipped.bam samtools view -h ${bam} | python samclipy/samclipy.py --minClip ${minClip} | samtools sort > ${name}.passed-clipped.bam samtools index ${name}.soft-clipped.bam @@ -118,7 +118,7 @@ process filter_true_dcs_alignments { samtools index ${name}.no-dcs.bam samtools index ${name}.true-dcs.bam samtools index ${name}.false-dcs.bam - """ + """ stub: """ touch ${name}.no-dcs.bam ${name}.true-dcs.bam ${name}.false-dcs.bam ${name}.no-dcs.bam.bai ${name}.true-dcs.bam.bai ${name}.false-dcs.bam.bai @@ -147,12 +147,12 @@ process fastq_from_bam { mode: params.publish_dir_mode, pattern: "*.gz", saveAs: { fn -> - fn.endsWith('.unmapped.fastq.gz') ? "clean/${fn}".replaceAll(~'.unmapped.fastq.gz$', '.fastq.gz') : - fn.endsWith('.mapped.fastq.gz') ? "removed/${fn}".replaceAll(~'.mapped.fastq.gz$', '.fastq.gz') : - fn.endsWith('.unmapped_merged.fastq.gz') ? "clean/${fn}".replaceAll(~'.unmapped_merged.fastq.gz$', '.fastq.gz') : - fn.endsWith('.mapped_merged.fastq.gz') ? "removed/${fn}".replaceAll(~'.mapped_merged.fastq.gz$', '.fastq.gz') : - fn.endsWith('.unmapped_merged_merged.fastq.gz') ? "clean/${fn}".replaceAll(~'.unmapped_merged_merged.fastq.gz$', '.fastq.gz') : - fn.endsWith('.soft-clipped_merged.fastq.gz') ? "clean/${fn}".replaceAll(~'.soft-clipped_merged.fastq.gz$', '.fastq.gz') : + fn.matches('.*.unmapped.fast[aq].gz$') ? "clean/${fn}".replaceAll(~'.unmapped(.fast[aq].gz)$', '$1') : + fn.matches('.*.mapped.fast[aq].gz$') ? "removed/${fn}".replaceAll(~'.mapped(.fast[aq].gz)$', '$1') : + fn.matches('.*.unmapped_merged.fast[aq].gz$') ? "clean/${fn}".replaceAll(~'.unmapped_merged(.fast[aq].gz)$', '$1') : + fn.matches('.*.mapped_merged.fast[aq].gz$') ? "removed/${fn}".replaceAll(~'.mapped_merged(.fast[aq].gz)$', '$1') : + fn.matches('.*.unmapped_merged_merged.fast[aq].gz$') ? "clean/${fn}".replaceAll(~'.unmapped_merged_merged(.fast[aq].gz)$', '$1') : + fn.matches('.*.soft-clipped_merged.fast[aq].gz$') ? "clean/${fn}".replaceAll(~'.soft-clipped_merged(.fast[aq].gz)$', '$1') : fn } ) @@ -167,14 +167,12 @@ process fastq_from_bam { script: if ( params.lib_pairedness == 'paired' ) { """ - samtools fastq -@ ${task.cpus} -1 ${bam.baseName}_1.fastq -2 ${bam.baseName}_2.fastq -s ${bam.baseName}_singleton.fastq ${bam} - gzip --no-name *.fastq + samtools fastq -@ ${task.cpus} -c 6 -1 ${bam.baseName}_1.fastq.gz -2 ${bam.baseName}_2.fastq.gz -s ${bam.baseName}_singleton.fastq.gz ${bam} """ } else if ( params.lib_pairedness == 'single' ) { dtype = (params.input_type == 'fasta') ? 'a' : 'q' """ - samtools fastq -@ ${task.cpus} -0 ${bam.baseName}.fast${dtype} ${bam} - gzip --no-name *.fast${dtype} + samtools fast${dtype} -@ ${task.cpus} -c 6 -0 ${bam.baseName}.fast${dtype}.gz ${bam} """ } else { error "Invalid pairedness: ${params.lib_pairedness}" diff --git a/modules/unused/alignment_processing.nf b/modules/unused/alignment_processing.nf index 4fc9bdf..061085c 100644 --- a/modules/unused/alignment_processing.nf +++ b/modules/unused/alignment_processing.nf @@ -30,37 +30,3 @@ process filter_un_mapped_alignments { """ } -process make_mapped_bam { - label 'minimap2' - - publishDir "${params.output}/${name}/${params.tool}", mode: params.publish_dir_mode, pattern: "*.mapped.bam*", enabled: false - - input: - tuple val(name), path(sam), path(reads) - - output: - tuple val(name), path ('*.mapped.bam'), emit: contamination_bam - tuple val(name), path ('*.mapped.bam.bai'), emit: contamination_bai - tuple val(name), path ('idxstats.tsv'), emit: idxstats - - script: - if ( params.mode == 'paired' ) { - """ - samtools view -@ ${task.cpus} -b -f 2 -F 2048 ${name}.sam | samtools sort -o ${name}.mapped.bam --threads ${task.cpus} - samtools index ${name}.mapped.bam - samtools idxstats ${name}.mapped.bam > idxstats.tsv - """ - } else if ( params.mode == 'single' ) { - """ - samtools view -@ ${task.cpus} -b -F 2052 ${name}.sam | samtools sort -o ${name}.mapped.bam --threads ${task.cpus} - samtools index ${name}.mapped.bam - samtools idxstats ${name}.mapped.bam > idxstats.tsv - """ - } else { - error "Invalid mode: ${params.mode}" - } - stub: - """ - touch ${name}.mapped.bam ${name}.mapped.bam.bai idxstats.tsv - """ -} diff --git a/modules/utils.nf b/modules/utils.nf index 40c0c2b..00ebaf1 100644 --- a/modules/utils.nf +++ b/modules/utils.nf @@ -49,10 +49,10 @@ process get_read_names { input: tuple val(name), path(bam) - + output: tuple val(name), path("${name}_read_names.csv") - + script: """ samtools view ${bam} | cut -f1 | sort | uniq > ${name}_read_names.csv @@ -89,19 +89,19 @@ process filter_fastq_by_name { // generated. If not, it's generated by the fastq_from_bam process or // bbduk mapping if ( params.keep ) { - publishDir ( + publishDir ( path: params.output, mode: params.publish_dir_mode, pattern: "*.gz", saveAs: { fn -> - fn.endsWith('.unmapped.fastq.gz') ? "clean/${fn}".replaceAll(~'.unmapped.fastq.gz$', '.fastq.gz') : - fn.endsWith('.mapped.fastq.gz') ? "removed/${fn}".replaceAll(~'.mapped.fastq.gz$', '.fastq.gz') : - fn.endsWith('.unmapped_merged.fastq.gz') ? "clean/${fn}".replaceAll(~'.unmapped_merged.fastq.gz$', '.fastq.gz') : - fn.endsWith('.mapped_merged.fastq.gz') ? "removed/${fn}".replaceAll(~'.mapped_merged.fastq.gz$', '.fastq.gz') : - fn.endsWith('.unmapped_merged_merged.fastq.gz') ? "clean/${fn}".replaceAll(~'.unmapped_merged_merged.fastq.gz$', '.fastq.gz') : - fn.endsWith('.mapped_merged_merged.fastq.gz') ? "removed/${fn}".replaceAll(~'.mapped_merged_merged.fastq.gz$', '.fastq.gz') : - fn.endsWith('.fastq.clean.fastq.gz') ? "clean/${fn}".replaceAll(~'.fastq.clean.fastq.gz$', '.fastq.gz') : - fn.endsWith('.fastq.contamination.fastq.gz') ? "removed/${fn}".replaceAll(~'.fastq.contamination.fastq.gz$', '.fastq.gz') : + fn.matches('.*.unmapped.fast[aq].gz$') ? "clean/${fn}".replaceAll(~'.unmapped(.fast[aq].gz)$', '$1') : + fn.matches('.*.mapped.fast[aq].gz$') ? "removed/${fn}".replaceAll(~'.mapped(.fast[aq].gz)$', '$1') : + fn.matches('.*.unmapped_merged.fast[aq].gz$') ? "clean/${fn}".replaceAll(~'.unmapped_merged(.fast[aq].gz)$', '$1') : + fn.matches('.*.mapped_merged.fast[aq].gz$') ? "removed/${fn}".replaceAll(~'.mapped_merged(.fast[aq].gz)$', '$1') : + fn.matches('.*.unmapped_merged_merged.fast[aq].gz$') ? "clean/${fn}".replaceAll(~'.unmapped_merged_merged(.fast[aq].gz)$', '$1') : + fn.matches('.*.mapped_merged_merged.fast[aq].gz$') ? "removed/${fn}".replaceAll(~'.mapped_merged_merged(.fast[aq].gz)$', '$1') : + fn.matches('.*.fast[aq].clean.fast[aq].gz$') ? "clean/${fn}".replaceAll(~'.fast[aq].clean(.fast[aq].gz)$', '$1') : + fn.matches('.*.fast[aq].contamination.fast[aq].gz$') ? "removed/${fn}".replaceAll(~'.fast[aq].contamination(.fast[aq].gz)$', '$1') : fn } ) @@ -113,7 +113,7 @@ process filter_fastq_by_name { output: tuple val(name), val(mapped), path(reads_mapped, includeInputs: true), emit: mapped_no_keep tuple val(name), val(unmapped), path(reads_unmapped, includeInputs: true), emit: unmapped_keep - + script: if ( params.lib_pairedness == 'paired' ) { """ @@ -136,44 +136,6 @@ process filter_fastq_by_name { """ } -// process split_bam { -// label 'pysam' -// echo true - -// input: -// path(read_name_list) -// tuple val(name), path(mapped_bam), path(mapped_bai) - -// output: -// tuple val(name), val('mapped'), path('mapped.fq'), emit: mapped -// tuple val(name), val('unmapped'), path('unmapped.fq'), emit: unmapped - -// script: -// """ -// #!/usr/bin/env python3 - -// import pysam - -// reads = set() -// with open('${read_name_list}', 'r') as infile: -// for line in infile: -// reads.add(line.strip()) -// print(reads) - -// # split bam into mapped (not in list) -// # and "unmapped" (in list) - -// bamfile = pysam.AlignmentFile('${mapped_bam}', 'rb') -// for read in bamfile.fetch(until_eof=True): -// if (read.query_name in reads): -// #write to unmapped -// pass -// else: -// # write to mapped -// pass -// """ -// } - process bbduk_stats { label 'smallTask' From 753f97ce991abe1342c620a163d57709cb368299 Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Wed, 22 Nov 2023 10:32:51 +0100 Subject: [PATCH 42/80] Add --no_intermediate argument to skip publishing intermediate files to results/ --- clean.nf | 6 ++++-- modules/alignment_processing.nf | 6 ++++++ modules/bbmap.nf | 7 ++++--- modules/utils.nf | 1 + nextflow.config | 1 + 5 files changed, 16 insertions(+), 5 deletions(-) diff --git a/clean.nf b/clean.nf index 3e43de6..aab7973 100755 --- a/clean.nf +++ b/clean.nf @@ -10,7 +10,7 @@ Author: hoelzer.martin@gmail.com // Parameters sanity checking -Set valid_params = ['max_cores', 'cores', 'max_memory', 'memory', 'profile', 'help', 'input', 'input_type', 'list', 'host', 'own', 'control', 'keep', 'rm_rrna', 'bbduk', 'bbduk_kmer', 'bbduk_qin', 'reads_rna', 'min_clip', 'dcs_strict', 'output', 'multiqc_dir', 'nf_runinfo_dir', 'databases', 'cleanup_work_dir','condaCacheDir', 'singularityCacheDir', 'singularityCacheDir', 'cloudProcess', 'conda-cache-dir', 'singularity-cache-dir', 'cloud-process', 'publish_dir_mode'] // don't ask me why there is also 'conda-cache-dir', 'singularity-cache-dir', 'cloud-process' +Set valid_params = ['max_cores', 'cores', 'max_memory', 'memory', 'profile', 'help', 'input', 'input_type', 'list', 'host', 'own', 'control', 'keep', 'rm_rrna', 'bbduk', 'bbduk_kmer', 'bbduk_qin', 'reads_rna', 'min_clip', 'dcs_strict', 'output', 'multiqc_dir', 'nf_runinfo_dir', 'databases', 'cleanup_work_dir','condaCacheDir', 'singularityCacheDir', 'singularityCacheDir', 'cloudProcess', 'conda-cache-dir', 'singularity-cache-dir', 'cloud-process', 'publish_dir_mode', 'no_intermediate'] // don't ask me why there is also 'conda-cache-dir', 'singularity-cache-dir', 'cloud-process' def parameter_diff = params.keySet() - valid_params if (parameter_diff.size() != 0){ exit 1, "ERROR: Parameter(s) $parameter_diff is/are not valid in the pipeline!\n" @@ -291,7 +291,9 @@ def helpMSG() { ${c_yellow}Miscellaneous:${c_reset} --cleanup_work_dir deletes all files in the work directory after a successful completion of a run [default: $params.cleanup_work_dir] - ${c_dim}warning: if ture, the option will prevent the use of the resume feature!${c_reset} + ${c_dim}warning: if true, the option will prevent the use of the resume feature!${c_reset} + --no_intermediate do not save intermediate .bam/fastq/etc files into the `results/intermediate/` directory [default: $params.cleanup_work_dir] + saves a lot of disk space, especially if used with the `--cleanup_work_dir` argument. ${c_yellow}Profile:${c_reset} You can merge different profiles for different setups, e.g. diff --git a/modules/alignment_processing.nf b/modules/alignment_processing.nf index c13f0dd..85cc74f 100644 --- a/modules/alignment_processing.nf +++ b/modules/alignment_processing.nf @@ -55,6 +55,7 @@ process filter_soft_clipped_alignments { mode: params.publish_dir_mode, pattern: "${name}*.bam{,.bai}", overwrite: false, + enabled: !params.no_intermediate, saveAs: { fn -> fn.startsWith("keep_") ? "map-to-keep/soft-clipped/${fn.replaceAll(~'^keep_', '')}" : "map-to-remove/soft-clipped/${fn}" } @@ -91,6 +92,7 @@ process filter_true_dcs_alignments { mode: params.publish_dir_mode, pattern: "${name}*.bam{,.bai}", overwrite: false, + enabled: !params.no_intermediate, saveAs: { fn -> fn.startsWith("keep_") ? "map-to-keep/strict-dcs/${fn.replaceAll(~'^keep_', '')}" : "map-to-remove/strict-dcs/${fn}" } @@ -133,6 +135,7 @@ process fastq_from_bam { mode: params.publish_dir_mode, pattern: "*.gz", overwrite: false, + enabled: !params.no_intermediate, saveAs: { fn -> fn.startsWith("keep_") ? "map-to-keep/${fn.replaceAll(~'^keep_', '').replaceAll(~'_merged', '')}" : "map-to-remove/${fn.replaceAll(~'_merged', '')}" } @@ -192,6 +195,7 @@ process idxstats_from_bam { mode: params.publish_dir_mode, pattern: "*.sorted.idxstats.tsv", overwrite: false, + enabled: !params.no_intermediate, saveAs: { fn -> fn.startsWith("keep_") ? "map-to-keep/${fn.replaceAll(~'^keep_', '')}" : "map-to-remove/${fn}" } @@ -221,6 +225,7 @@ process flagstats_from_bam { mode: params.publish_dir_mode, pattern: "*.sorted.flagstats.txt", overwrite: false, + enabled: !params.no_intermediate, saveAs: { fn -> fn.startsWith("keep_") ? "map-to-keep/${fn.replaceAll(~'^keep_', '')}" : "map-to-remove/${fn}" } @@ -270,6 +275,7 @@ process index_bam { mode: params.publish_dir_mode, pattern: "*.sorted.bam{,.bai}", overwrite: false, + enabled: !params.no_intermediate, saveAs: { fn -> fn.startsWith("keep_") ? "map-to-keep/${fn.replaceAll(~'^keep_', '')}" : "map-to-remove/${fn}" } diff --git a/modules/bbmap.nf b/modules/bbmap.nf index 4326ac4..4aabe4d 100644 --- a/modules/bbmap.nf +++ b/modules/bbmap.nf @@ -5,10 +5,11 @@ process bbduk { path: "${params.output}/intermediate/${map_target}", mode: params.publish_dir_mode, pattern: "*.{clean,contamination}.fastq.gz", + enabled: !params.no_intermediate, overwrite: false ) - - // When using `--keep`, we need to do further processing before we have + + // When using `--keep`, we need to do further processing before we have // the final clean and removed data sets. if ( !params.keep ) { publishDir ( @@ -23,7 +24,7 @@ process bbduk { } ) } - + input: tuple val(name), path(reads) path db diff --git a/modules/utils.nf b/modules/utils.nf index 00ebaf1..dd6a917 100644 --- a/modules/utils.nf +++ b/modules/utils.nf @@ -144,6 +144,7 @@ process bbduk_stats { mode: params.publish_dir_mode, pattern: "*.bbduk_stats.tsv", overwrite: false, + enabled: !params.no_intermediate, saveAs: { fn -> fn.startsWith("keep_") ? "map-to-keep/${fn.replaceAll(~'^keep_', '')}" : "map-to-remove/${fn}" } diff --git a/nextflow.config b/nextflow.config index 344106f..870397b 100644 --- a/nextflow.config +++ b/nextflow.config @@ -47,6 +47,7 @@ params { // cleanup cleanup_work_dir = false + no_intermediate = false } // see https://www.nextflow.io/docs/latest/config.html?highlight=cleanup#miscellaneous From bb499ac48c8019ed8098ef117a7073f5952e87b0 Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Wed, 22 Nov 2023 12:01:08 +0100 Subject: [PATCH 43/80] Add singularity/ dir to .gitignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index eec86d5..dbcfd8c 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,5 @@ work/ results/ centrifuge-cloud/ conda/ -.vscode/ \ No newline at end of file +singularity/ +.vscode/ From 14840fb50ce59b11f49c4733e0a3ddb1f286addf Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Wed, 22 Nov 2023 20:33:19 +0100 Subject: [PATCH 44/80] Tweak filter_fastq_by_name to work properly, avoid reading and writing to the same file in a pipe --- modules/utils.nf | 11 ++++++++--- workflows/keep_wf.nf | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/modules/utils.nf b/modules/utils.nf index dd6a917..4f6088b 100644 --- a/modules/utils.nf +++ b/modules/utils.nf @@ -84,6 +84,7 @@ process get_read_names_fastx { process filter_fastq_by_name { label 'minimap2' // We don't need minimap2 but the container has pigz + stageInMode 'copy' // When using --keep, this is where the final cleaned fastq file is // generated. If not, it's generated by the fastq_from_bam process or @@ -114,18 +115,22 @@ process filter_fastq_by_name { tuple val(name), val(mapped), path(reads_mapped, includeInputs: true), emit: mapped_no_keep tuple val(name), val(unmapped), path(reads_unmapped, includeInputs: true), emit: unmapped_keep + // The commands below are in a very specific ordering, because we are + // modifying the input files: + // 1. First move reads that mapped to keep from host mapped to unmapped + // 2. Then remove those same reads from the host mapped set script: if ( params.lib_pairedness == 'paired' ) { """ - zcat ${reads_mapped[0]} | paste - - - - | grep -v -F -f ${keep_read_name_list} | tr "\t" "\n" | pigz -fc -p ${task.cpus} > ${reads_mapped[0]} zcat ${reads_mapped[0]} | paste - - - - | grep -F -f ${keep_read_name_list} | tr "\t" "\n" | pigz -fc -p ${task.cpus} >> ${reads_unmapped[0]} - zcat ${reads_mapped[1]} | paste - - - - | grep -v -F -f ${keep_read_name_list} | tr "\t" "\n" | pigz -fc -p ${task.cpus} > ${reads_mapped[1]} + zcat ${reads_mapped[0]} | paste - - - - | grep -v -F -f ${keep_read_name_list} | tr "\t" "\n" | pigz -fc -p ${task.cpus} > ${reads_mapped[0]} && mv ${reads_mapped[0]}{.tmp,} zcat ${reads_mapped[1]} | paste - - - - | grep -F -f ${keep_read_name_list} | tr "\t" "\n" | pigz -fc -p ${task.cpus} >> ${reads_unmapped[1]} + zcat ${reads_mapped[1]} | paste - - - - | grep -v -F -f ${keep_read_name_list} | tr "\t" "\n" | pigz -fc -p ${task.cpus} > ${reads_mapped[1]} && mv ${reads_mapped[1]}{.tmp,} """ } else if ( params.lib_pairedness == 'single' ) { """ - zcat ${reads_mapped} | paste - - - - | grep -v -F -f ${keep_read_name_list} | tr "\t" "\n" | pigz -fc -p ${task.cpus} > ${reads_mapped} zcat ${reads_mapped} | paste - - - - | grep -F -f ${keep_read_name_list} | tr "\t" "\n" | pigz -fc -p ${task.cpus} >> ${reads_unmapped} + zcat ${reads_mapped} | paste - - - - | grep -v -F -f ${keep_read_name_list} | tr "\t" "\n" | pigz -fc -p ${task.cpus} > ${reads_mapped}.tmp && mv ${reads_mapped}{.tmp,} """ } else { error "Invalid mode: ${params.lib_pairedness}" diff --git a/workflows/keep_wf.nf b/workflows/keep_wf.nf index 12605a4..3054a40 100644 --- a/workflows/keep_wf.nf +++ b/workflows/keep_wf.nf @@ -12,7 +12,7 @@ workflow keep { main: keep_map(input, keep_reference, dcs_ends_bed, 'map-to-keep') - + if ( params.bbduk ) { keep_reads_fastx = keep_map.out.out_reads.filter{ it[1] == 'mapped' } get_read_names_fastx(keep_reads_fastx.map{it -> [it[0], it[2]]}) From bb074a7c6042c59e3907dfaabc29c62295fc04ad Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Wed, 22 Nov 2023 21:00:47 +0100 Subject: [PATCH 45/80] Replace scary zcat/paste/grep/tr with seqkit grep --- modules/utils.nf | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/utils.nf b/modules/utils.nf index 4f6088b..53d5694 100644 --- a/modules/utils.nf +++ b/modules/utils.nf @@ -83,7 +83,7 @@ process get_read_names_fastx { } process filter_fastq_by_name { - label 'minimap2' // We don't need minimap2 but the container has pigz + label 'seqkit' // We don't need minimap2 but the container has pigz stageInMode 'copy' // When using --keep, this is where the final cleaned fastq file is @@ -122,15 +122,15 @@ process filter_fastq_by_name { script: if ( params.lib_pairedness == 'paired' ) { """ - zcat ${reads_mapped[0]} | paste - - - - | grep -F -f ${keep_read_name_list} | tr "\t" "\n" | pigz -fc -p ${task.cpus} >> ${reads_unmapped[0]} - zcat ${reads_mapped[0]} | paste - - - - | grep -v -F -f ${keep_read_name_list} | tr "\t" "\n" | pigz -fc -p ${task.cpus} > ${reads_mapped[0]} && mv ${reads_mapped[0]}{.tmp,} - zcat ${reads_mapped[1]} | paste - - - - | grep -F -f ${keep_read_name_list} | tr "\t" "\n" | pigz -fc -p ${task.cpus} >> ${reads_unmapped[1]} - zcat ${reads_mapped[1]} | paste - - - - | grep -v -F -f ${keep_read_name_list} | tr "\t" "\n" | pigz -fc -p ${task.cpus} > ${reads_mapped[1]} && mv ${reads_mapped[1]}{.tmp,} + seqkit grep --pattern-file ${keep_read_name_list} ${reads_mapped[0]} | gzip >> ${reads_unmapped[0]} + seqkit grep --invert-match --pattern-file ${keep_read_name_list} ${reads_mapped[0]} | gzip > ${reads_mapped[0]}.tmp && mv ${reads_mapped[0]}{.tmp,} + seqkit grep --pattern-file ${keep_read_name_list} ${reads_mapped[1]} | gzip >> ${reads_unmapped[1]} + seqkit grep --invert-match --pattern-file ${keep_read_name_list} ${reads_mapped[1]} | gzip > ${reads_mapped[1]}.tmp && mv ${reads_mapped[1]}{.tmp,} """ } else if ( params.lib_pairedness == 'single' ) { """ - zcat ${reads_mapped} | paste - - - - | grep -F -f ${keep_read_name_list} | tr "\t" "\n" | pigz -fc -p ${task.cpus} >> ${reads_unmapped} - zcat ${reads_mapped} | paste - - - - | grep -v -F -f ${keep_read_name_list} | tr "\t" "\n" | pigz -fc -p ${task.cpus} > ${reads_mapped}.tmp && mv ${reads_mapped}{.tmp,} + seqkit grep --pattern-file ${keep_read_name_list} ${reads_mapped} | gzip >> ${reads_unmapped} + seqkit grep --invert-match --pattern-file ${keep_read_name_list} ${reads_mapped} | gzip > ${reads_mapped}.tmp && mv ${reads_mapped}{.tmp,} """ } else { error "Invalid mode: ${params.lib_pairedness}" From 40276ea52097b3704349c5d6d5d8b17ce48a3af3 Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Wed, 22 Nov 2023 21:16:02 +0100 Subject: [PATCH 46/80] Add clarifying comments to the filter_fastq_by_name process --- modules/utils.nf | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/utils.nf b/modules/utils.nf index 53d5694..6352558 100644 --- a/modules/utils.nf +++ b/modules/utils.nf @@ -84,6 +84,9 @@ process get_read_names_fastx { process filter_fastq_by_name { label 'seqkit' // We don't need minimap2 but the container has pigz + + // Needed because we want to modify the input files and pass them on as + // output stageInMode 'copy' // When using --keep, this is where the final cleaned fastq file is @@ -119,6 +122,8 @@ process filter_fastq_by_name { // modifying the input files: // 1. First move reads that mapped to keep from host mapped to unmapped // 2. Then remove those same reads from the host mapped set + // If these two steps are done in the opposite order the results will be + // wrong. script: if ( params.lib_pairedness == 'paired' ) { """ From dc59d2821b262db6af77f15a3548eba7e7289690 Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Wed, 22 Nov 2023 21:45:14 +0100 Subject: [PATCH 47/80] Remove overwrite: false from publishDir directives --- modules/alignment_processing.nf | 7 ------- modules/bbmap.nf | 4 +--- modules/utils.nf | 1 - 3 files changed, 1 insertion(+), 11 deletions(-) diff --git a/modules/alignment_processing.nf b/modules/alignment_processing.nf index 85cc74f..21b557f 100644 --- a/modules/alignment_processing.nf +++ b/modules/alignment_processing.nf @@ -54,7 +54,6 @@ process filter_soft_clipped_alignments { path: "${params.output}/intermediate", mode: params.publish_dir_mode, pattern: "${name}*.bam{,.bai}", - overwrite: false, enabled: !params.no_intermediate, saveAs: { fn -> fn.startsWith("keep_") ? "map-to-keep/soft-clipped/${fn.replaceAll(~'^keep_', '')}" : "map-to-remove/soft-clipped/${fn}" @@ -91,7 +90,6 @@ process filter_true_dcs_alignments { path: "${params.output}/intermediate", mode: params.publish_dir_mode, pattern: "${name}*.bam{,.bai}", - overwrite: false, enabled: !params.no_intermediate, saveAs: { fn -> fn.startsWith("keep_") ? "map-to-keep/strict-dcs/${fn.replaceAll(~'^keep_', '')}" : "map-to-remove/strict-dcs/${fn}" @@ -134,7 +132,6 @@ process fastq_from_bam { path: "${params.output}/intermediate", mode: params.publish_dir_mode, pattern: "*.gz", - overwrite: false, enabled: !params.no_intermediate, saveAs: { fn -> fn.startsWith("keep_") ? "map-to-keep/${fn.replaceAll(~'^keep_', '').replaceAll(~'_merged', '')}" : "map-to-remove/${fn.replaceAll(~'_merged', '')}" @@ -146,7 +143,6 @@ process fastq_from_bam { if ( !params.keep ) { publishDir ( path: params.output, - overwrite: false, mode: params.publish_dir_mode, pattern: "*.gz", saveAs: { fn -> @@ -194,7 +190,6 @@ process idxstats_from_bam { path: "${params.output}/intermediate", mode: params.publish_dir_mode, pattern: "*.sorted.idxstats.tsv", - overwrite: false, enabled: !params.no_intermediate, saveAs: { fn -> fn.startsWith("keep_") ? "map-to-keep/${fn.replaceAll(~'^keep_', '')}" : "map-to-remove/${fn}" @@ -224,7 +219,6 @@ process flagstats_from_bam { path: "${params.output}/intermediate", mode: params.publish_dir_mode, pattern: "*.sorted.flagstats.txt", - overwrite: false, enabled: !params.no_intermediate, saveAs: { fn -> fn.startsWith("keep_") ? "map-to-keep/${fn.replaceAll(~'^keep_', '')}" : "map-to-remove/${fn}" @@ -274,7 +268,6 @@ process index_bam { path: "${params.output}/intermediate", mode: params.publish_dir_mode, pattern: "*.sorted.bam{,.bai}", - overwrite: false, enabled: !params.no_intermediate, saveAs: { fn -> fn.startsWith("keep_") ? "map-to-keep/${fn.replaceAll(~'^keep_', '')}" : "map-to-remove/${fn}" diff --git a/modules/bbmap.nf b/modules/bbmap.nf index 4aabe4d..46c56f9 100644 --- a/modules/bbmap.nf +++ b/modules/bbmap.nf @@ -5,8 +5,7 @@ process bbduk { path: "${params.output}/intermediate/${map_target}", mode: params.publish_dir_mode, pattern: "*.{clean,contamination}.fastq.gz", - enabled: !params.no_intermediate, - overwrite: false + enabled: !params.no_intermediate ) // When using `--keep`, we need to do further processing before we have @@ -14,7 +13,6 @@ process bbduk { if ( !params.keep ) { publishDir ( path: params.output, - overwrite: false, mode: params.publish_dir_mode, pattern: "*.gz", saveAs: { fn -> diff --git a/modules/utils.nf b/modules/utils.nf index 6352558..5d94aad 100644 --- a/modules/utils.nf +++ b/modules/utils.nf @@ -153,7 +153,6 @@ process bbduk_stats { path: "${params.output}/intermediate", mode: params.publish_dir_mode, pattern: "*.bbduk_stats.tsv", - overwrite: false, enabled: !params.no_intermediate, saveAs: { fn -> fn.startsWith("keep_") ? "map-to-keep/${fn.replaceAll(~'^keep_', '')}" : "map-to-remove/${fn}" From 39bd52e9cc71e311b6637ad1c296f067702e94d5 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Sun, 10 Dec 2023 11:03:40 +0100 Subject: [PATCH 48/80] fix stub touch - output is expecting the suffix .sorted.bam --- modules/alignment_processing.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/alignment_processing.nf b/modules/alignment_processing.nf index 21b557f..0f908f7 100644 --- a/modules/alignment_processing.nf +++ b/modules/alignment_processing.nf @@ -257,7 +257,7 @@ process sort_bam { """ stub: """ - touch ${bam.baseName}.bam + touch ${bam.baseName}.sorted.bam """ } From d29a5ef63ceba64df11bd20ed6fc2a24d0ddea22 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Sun, 10 Dec 2023 11:10:34 +0100 Subject: [PATCH 49/80] added seqkit to citations --- CITATIONS.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CITATIONS.md b/CITATIONS.md index 0771f59..8d0e428 100644 --- a/CITATIONS.md +++ b/CITATIONS.md @@ -29,6 +29,10 @@ > Li H, Handsaker B, Wysoker A, Fennell T, Ruan J, Homer N, Marth G, Abecasis G, Durbin R; 1000 Genome Project Data Processing Subgroup. The Sequence Alignment/Map format and SAMtools. Bioinformatics. 2009 Aug 15;25(16):2078-9. doi: 10.1093/bioinformatics/btp352. Epub 2009 Jun 8. PubMed PMID: 19505943; PubMed Central PMCID: PMC2723002. +- [SeqKit](https://pubmed.ncbi.nlm.nih.gov/27706213/) + + > Shen W, Le S, Li Y, Hu F. SeqKit: A Cross-Platform and Ultrafast Toolkit for FASTA/Q File Manipulation. PLoS One. 2016 Oct 5;11(10):e0163962. doi: 10.1371/journal.pone.0163962. PMID: 27706213; PMCID: PMC5051824. + - [QUAST](https://pubmed.ncbi.nlm.nih.gov/23422339/) > Gurevich A, Saveliev V, Vyahhi N, Tesler G. QUAST: quality assessment tool for genome assemblies. Bioinformatics. 2013 Apr 15;29(8):1072-5. doi: 10.1093/bioinformatics/btt086. Epub 2013 Feb 19. PMID: 23422339; PMCID: PMC3624806. From d2ae118956e91633b7f70140e674157e82bb1489 Mon Sep 17 00:00:00 2001 From: martin Date: Sun, 10 Dec 2023 16:58:35 +0100 Subject: [PATCH 50/80] Add -keep to help mssg. Reformated --help a bit. Removed old profiles for ARA and EBI. --- clean.nf | 55 ++++++++++++++++++++++---------------------- nextflow.config | 61 ------------------------------------------------- 2 files changed, 27 insertions(+), 89 deletions(-) diff --git a/clean.nf b/clean.nf index aab7973..e68d5f5 100755 --- a/clean.nf +++ b/clean.nf @@ -248,7 +248,7 @@ def helpMSG() { ${c_dim}required format: name,path for --input_type nano and --input_type fasta; name,pathR1,pathR2 for --illumina input_type; name,path for --input_type illumina_single_end${c_reset} ${c_yellow}Decontamination options:${c_reset} - ${c_green}--host${c_reset} comma separated list of reference genomes for decontamination, downloaded based on this parameter [default: $params.host] + ${c_green}--host${c_reset} Comma separated list of reference genomes for decontamination, downloaded based on this parameter [default: $params.host] ${c_dim}Currently supported are: - hsa [Ensembl: Homo_sapiens.GRCh38.dna.primary_assembly] - mmu [Ensembl: Mus_musculus.GRCm38.dna.primary_assembly] @@ -256,44 +256,46 @@ def helpMSG() { - gga [NCBI: Gallus_gallus.GRCg6a.dna.toplevel] - cli [NCBI: GCF_000337935.1_Cliv_1.0_genomic] - eco [Ensembl: Escherichia_coli_k_12.ASM80076v1.dna.toplevel]${c_reset} - ${c_green}--control${c_reset} comma separated list of common controls used in Illumina or Nanopore sequencing [default: $params.control] + ${c_green}--control${c_reset} Comma separated list of common controls used in Illumina or Nanopore sequencing [default: $params.control] ${c_dim}Currently supported are: - phix [Illumina: enterobacteria_phage_phix174_sensu_lato_uid14015, NC_001422] - dcs [ONT DNA-Seq: a positive control (3.6 kb standard amplicon mapping the 3' end of the Lambda genome)] - eno [ONT RNA-Seq: a positive control (yeast ENO2 Enolase II of strain S288C, YHR174W)]${c_reset} - ${c_green}--own ${c_reset} use your own FASTA sequences (comma separated list of files) for decontamination, e.g. host.fasta.gz,spike.fasta [default: $params.own] - ${c_green}--rm_rrna ${c_reset} clean your data from rRNA [default: $params.rm_rrna] - ${c_green}--bbduk${c_reset} add this flag to use bbduk instead of minimap2 for decontamination of short reads [default: $params.bbduk] - ${c_green}--bbduk_kmer${c_reset} set kmer for bbduk [default: $params.bbduk_kmer] - ${c_green}--bbduk_qin${c_reset} set quality ASCII encoding for bbduk [default: $params.bbduk_qin; options are: 64, 33, auto] - ${c_green}--reads_rna${c_reset} add this flag for noisy direct RNA-Seq Nanopore data [default: $params.reads_rna] - - ${c_green}--min_clip${c_reset} filter mapped reads by soft-clipped length (left + right). If >= 1 total - number; if < 1 relative to read length - ${c_green}--dcs_strict${c_reset} filter out alignments that cover artificial ends of the ONT DCS to discriminate between Lambda Phage and DCS + ${c_green}--own ${c_reset} Use your own FASTA sequences (comma separated list of files) for decontamination, e.g. host.fasta.gz,spike.fasta [default: $params.own] + ${c_green}--keep ${c_reset} Use your own FASTA sequences (comma separated list of files) to explicitly keep mapped reads, e.g. target.fasta.gz,important.fasta [default: $params.keep] + Reads are assigned to a combined index for decontamination and keeping. The use of this parameter can prevent + false positive hits and the accidental removal of reads due to (poor quality) mappings. + ${c_green}--rm_rrna ${c_reset} Clean your data from rRNA [default: $params.rm_rrna] + ${c_green}--bbduk${c_reset} Add this flag to use bbduk instead of minimap2 for decontamination of short reads [default: $params.bbduk] + ${c_green}--bbduk_kmer${c_reset} Set kmer for bbduk [default: $params.bbduk_kmer] + ${c_green}--bbduk_qin${c_reset} Set quality ASCII encoding for bbduk [default: $params.bbduk_qin; options are: 64, 33, auto] + ${c_green}--reads_rna${c_reset} Add this flag for noisy direct RNA-Seq Nanopore data [default: $params.reads_rna] + + ${c_green}--min_clip${c_reset} Filter mapped reads by soft-clipped length (left + right). If >= 1 total number; if < 1 relative to read length + ${c_green}--dcs_strict${c_reset} Filter out alignments that cover artificial ends of the ONT DCS to discriminate between Lambda Phage and DCS ${c_yellow}Compute options:${c_reset} - --cores max cores per process for local use [default $params.cores] - --max_cores max cores used on the machine for local use [default $params.max_cores] - --memory max memory for local use, enter in this format '8.GB' [default: $params.memory] - --output name of the result folder [default: $params.output] + --cores Max cores per process for local use [default $params.cores] + --max_cores Max cores used on the machine for local use [default $params.max_cores] + --memory Max memory for local use, enter in this format '8.GB' [default: $params.memory] + --output Name of the result folder [default: $params.output] ${c_dim}Nextflow options: - -with-report rep.html cpu / ram usage (may cause errors) - -with-dag chart.html generates a flowchart for the process tree - -with-timeline time.html timeline (may cause errors) + -with-report rep.html CPU / RAM usage (may cause errors) + -with-dag chart.html Generates a flowchart for the process tree + -with-timeline time.html Timeline (may cause errors) ${c_yellow}Computing:${c_reset} In particular for execution of the workflow on a HPC (LSF, SLURM) adjust the following parameters: - --databases defines the path where databases are stored [default: $params.databases] - --condaCacheDir defines the path where environments (conda) are cached [default: $params.condaCacheDir] - --singularityCacheDir defines the path where images (singularity) are cached [default: $params.singularityCacheDir] + --databases Defines the path where databases are stored [default: $params.databases] + --condaCacheDir Defines the path where environments (conda) are cached [default: $params.condaCacheDir] + --singularityCacheDir Defines the path where images (singularity) are cached [default: $params.singularityCacheDir] ${c_yellow}Miscellaneous:${c_reset} - --cleanup_work_dir deletes all files in the work directory after a successful completion of a run [default: $params.cleanup_work_dir] + --cleanup_work_dir Deletes all files in the work directory after a successful completion of a run [default: $params.cleanup_work_dir] ${c_dim}warning: if true, the option will prevent the use of the resume feature!${c_reset} - --no_intermediate do not save intermediate .bam/fastq/etc files into the `results/intermediate/` directory [default: $params.cleanup_work_dir] - saves a lot of disk space, especially if used with the `--cleanup_work_dir` argument. + --no_intermediate Do not save intermediate .bam/fastq/etc files into the `results/intermediate/` directory [default: $params.cleanup_work_dir] + Saves a lot of disk space, especially if used with the `--cleanup_work_dir` argument. ${c_yellow}Profile:${c_reset} You can merge different profiles for different setups, e.g. @@ -313,9 +315,6 @@ def helpMSG() { conda mamba - ebi (lsf,singularity; preconfigured for the EBI cluster) - yoda (lsf,singularity; preconfigured for the EBI YODA cluster) - ara (slurm,conda; preconfigured for the ARA cluster) gcloud (use this as template for your own GCP setup) ${c_reset} """.stripIndent() diff --git a/nextflow.config b/nextflow.config index 870397b..a5f7316 100644 --- a/nextflow.config +++ b/nextflow.config @@ -130,7 +130,6 @@ profiles { includeConfig 'configs/conda.config' } - // pre-merged standard { params.cloudProcess = false @@ -139,66 +138,6 @@ profiles { includeConfig 'configs/container.config' } - ebi { - params.databases = "/hps/nobackup2/production/metagenomics/$USER/nextflow-databases/" - params.cachedir = "/hps/nobackup2/singularity/$USER" - - workDir = "/hps/nobackup2/production/metagenomics/$USER/nextflow-work-$USER" - executor { - name = "lsf" - queueSize = 200 - } - params.cloudProcess = true - process.cache = "lenient" - includeConfig 'configs/node.config' - - singularity { - enabled = true - autoMounts = true - cacheDir = params.cachedir - } - includeConfig 'configs/container.config' - } - - yoda { - params.databases = "/hps/nobackup2/metagenomics/$USER/nextflow-databases/" - params.cachedir = "/hps/nobackup2/metagenomics/$USER/singularity" - - workDir = "/hps/nobackup2/metagenomics/$USER/nextflow-work-$USER" - executor { - name = "lsf" - queueSize = 200 - } - params.cloudProcess = true - process.cache = "lenient" - includeConfig 'configs/node.config' - - singularity { - enabled = true - autoMounts = true - cacheDir = params.cachedir - } - includeConfig 'configs/container.config' - } - - ara { - params.cloudProcess = true - workDir = "/beegfs/rna-hta/$USER/work" - params.databases = "/beegfs/rna-hta/nextflow-clean-autodownload/" - conda { cacheDir = "/beegfs/rna-hta/$USER/nextflow-conda-cache" } - process { - clusterOptions = '--partition=s_standard,s_fat,b_standard,b_fat' - withLabel: smallTask { executor = 'local' } - } - executor { - name = "slurm" - queueSize = 200 - } - process.cache = "lenient" - includeConfig 'configs/node.config' - includeConfig 'configs/conda.config' - } - // cloud configs node { docker { enabled = true } From 95ce2eeb7c6b29ae8f7c1e826e4b5e0cc7323e03 Mon Sep 17 00:00:00 2001 From: martin Date: Sun, 10 Dec 2023 17:15:35 +0100 Subject: [PATCH 51/80] adjusted the README a bit --- README.md | 64 +++++++++++++++++++++++++++---------------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index d0d8674..2ed3d59 100644 --- a/README.md +++ b/README.md @@ -110,41 +110,41 @@ Included in this repository are: ## Results -Running the pipeline will create a directory called `results/` in the current directory with some or all of the following directories and files: +Running the pipeline will create a directory called `results/` in the current directory with some or all of the following directories and files (plus additional failes for indices, ...): ```text results/ - clean/ - .fastq.gz - removed/ - .fastq.gz - intermedate/ - map-to-remove/ - mapped.fastq.gz - unmapped.fastq.gz - mapped.bam - unmapped.bam - dcs-strict/ - no-dcs.bam - true-dcs.bam - false-dcs.bam - soft-clipped/ - soft-clipped.bam - passed-clipped.bam - map-to-keep/ - mapped.fastq.gz - unmapped.fastq.gz - mapped.bam - unmapped.bam - dcs-strict/ - no-dcs.bam - true-dcs.bam - false-dcs.bam - soft-clipped/ - soft-clipped.bam - passed-clipped.bam - logs/\*.html - qc/multiqc_report.html +├── clean/ +│ └── .fastq.gz +├── removed/ +│ └── .fastq.gz +├── intermediate/ +│ ├── map-to-remove/ +│ │ ├── .mapped.fastq.gz +│ │ ├── .unmapped.fastq.gz +│ │ ├── .mapped.bam +│ │ ├── .unmapped.bam +│ │ ├── strict-dcs/ +│ │ │ ├── .no-dcs.bam +│ │ │ ├── .true-dcs.bam +│ │ │ └── .false-dcs.bam +│ │ └── soft-clipped/ +│ │ ├── .soft-clipped.bam +│ │ └── .passed-clipped.bam +│ └── map-to-keep/ +│ ├── .mapped.fastq.gz +│ ├── .unmapped.fastq.gz +│ ├── .mapped.bam +│ ├── .unmapped.bam +│ ├── strict-dcs/ +│ │ ├── .no-dcs.bam +│ │ ├── .true-dcs.bam +│ │ └── .false-dcs.bam +│ └── soft-clipped/ +│ ├── .soft-clipped.bam +│ └── .passed-clipped.bam +├── logs/*.html +└── qc/multiqc_report.html ``` The most important files you are likely interested in are `results/clean/.fastq.gz`, which are the "cleaned" reads. These are the input reads that *do not* map to the host, control, own fasta or rRNA files (or the subset of these that you provided), plus those reads that map to the "keep" sequence if you used the `--keep` option. Any files that were removed from your input fasta file are placed in `results/removed/.fastq.gz`. From 975e05ab49dc7d4ed6471e1f0ddaa8639ef5d02c Mon Sep 17 00:00:00 2001 From: martin Date: Sun, 10 Dec 2023 22:33:43 +0100 Subject: [PATCH 52/80] change sed command for --keep and add empty BED channel for phix control --- clean.nf | 1 + modules/prepare_contamination.nf | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/clean.nf b/clean.nf index e68d5f5..2ba3dc3 100755 --- a/clean.nf +++ b/clean.nf @@ -120,6 +120,7 @@ if ( params.input_type == 'illumina' ) { if ( params.control ) { if ( 'phix' in params.control.split(',') ) { illuminaControlFastaChannel = Channel.fromPath( workflow.projectDir + '/data/controls/phix.fa.gz' , checkIfExists: true ) + nanoControlBedChannel = [] } else { illuminaControlFastaChannel = Channel.empty() } if ( 'dcs' in params.control.split(',') ) { nanoControlFastaChannel = Channel.fromPath( workflow.projectDir + '/data/controls/dcs.fa.gz' , checkIfExists: true ) diff --git a/modules/prepare_contamination.nf b/modules/prepare_contamination.nf index 45cb44e..0991342 100644 --- a/modules/prepare_contamination.nf +++ b/modules/prepare_contamination.nf @@ -61,8 +61,8 @@ process check_own { """ # -L for following a symbolic link if ! ( file -L $fasta | grep -q 'BGZF; gzip compatible\\|gzip compressed' ); then - sed -i -e '\$a\\' ${fasta} - bgzip -@ ${task.cpus} < ${fasta} > ${fasta}.gz + sed -e '\$a\\' ${fasta} > ${fasta}.tmp + bgzip -@ ${task.cpus} < ${fasta}.tmp > ${fasta}.gz # now $fasta'.gz' else mv ${fasta} ${fasta}.tmp From 814e37b9726272aa2d05d2e222e2bff374d1ec65 Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Mon, 11 Dec 2023 14:56:54 +0100 Subject: [PATCH 53/80] Publish host genome and index for loading into IGV. Skipped if intermediate files are skipped. --- modules/prepare_contamination.nf | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/modules/prepare_contamination.nf b/modules/prepare_contamination.nf index 0991342..85657b2 100644 --- a/modules/prepare_contamination.nf +++ b/modules/prepare_contamination.nf @@ -77,18 +77,33 @@ process check_own { process concat_contamination { label 'minimap2' - + + publishDir ( + path: "${params.output}/intermediate", + mode: params.publish_dir_mode, + pattern: "db.fa.gz", + enabled: !params.no_intermediate, + saveAs: { "host.fa.gz" } + ) + publishDir ( + path: "${params.output}/intermediate", + mode: params.publish_dir_mode, + pattern: "db.fa.fai", + enabled: !params.no_intermediate, + saveAs: { "host.fa.fai" } + ) + input: path fastas output: path 'db.fa.gz', emit: fa path 'db.fa.fai', emit: fai - + script: len = fastas.collect().size() """ - if [[ ${len} -gt 1 ]] + if [[ ${len} -gt 1 ]] then for FASTA in ${fastas} do From 5d87ac41e68ea44a9848e554bbdb433dfe486fb4 Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Mon, 11 Dec 2023 17:53:30 +0100 Subject: [PATCH 54/80] Switch to seqkit for check_own and concat_contamination --- envs/seqkit.yaml | 2 ++ modules/prepare_contamination.nf | 31 ++++++------------------------- 2 files changed, 8 insertions(+), 25 deletions(-) diff --git a/envs/seqkit.yaml b/envs/seqkit.yaml index 3dc07d1..d69fd7c 100644 --- a/envs/seqkit.yaml +++ b/envs/seqkit.yaml @@ -4,3 +4,5 @@ channels: - conda-forge dependencies: - seqkit==2.6.1 + - tabix==1.11 + - samtools==1.18 diff --git a/modules/prepare_contamination.nf b/modules/prepare_contamination.nf index 85657b2..5eca4ec 100644 --- a/modules/prepare_contamination.nf +++ b/modules/prepare_contamination.nf @@ -49,7 +49,7 @@ process download_host { } process check_own { - label 'minimap2' + label 'seqkit' input: path fasta @@ -59,15 +59,7 @@ process check_own { script: """ - # -L for following a symbolic link - if ! ( file -L $fasta | grep -q 'BGZF; gzip compatible\\|gzip compressed' ); then - sed -e '\$a\\' ${fasta} > ${fasta}.tmp - bgzip -@ ${task.cpus} < ${fasta}.tmp > ${fasta}.gz - # now $fasta'.gz' - else - mv ${fasta} ${fasta}.tmp - zcat ${fasta}.tmp | sed -e '\$a\\' | bgzip -@ ${task.cpus} -c > ${fasta}.gz - fi + seqkit seq ${fasta} -o ${fasta}.gz """ stub: """ @@ -76,7 +68,7 @@ process check_own { } process concat_contamination { - label 'minimap2' + label 'seqkit' publishDir ( path: "${params.output}/intermediate", @@ -101,21 +93,10 @@ process concat_contamination { path 'db.fa.fai', emit: fai script: - len = fastas.collect().size() """ - if [[ ${len} -gt 1 ]] - then - for FASTA in ${fastas} - do - NAME="\${FASTA%%.*}" - zcat \$FASTA | awk -v n=\$NAME '/>/{sub(">","&"n"_")}1' | bgzip -@ ${task.cpus} -c >> db.fa.gz - done - else - mv ${fastas} db.fa.gz - fi - - samtools faidx db.fa.gz - mv db.fa.gz.fai db.fa.fai + # Combine input files, rename duplicate sequences (by id) if found, and compress + seqkit seq ${fastas} | seqkit rename | bgzip -@ ${task.cpus} -c > db.fa.gz + samtools faidx db.fa.gz --gzi-idx db.fa.fai """ stub: """ From 4228c4b9f4f824a061ce631557aef3ce62a61e03 Mon Sep 17 00:00:00 2001 From: martin Date: Mon, 11 Dec 2023 20:21:57 +0100 Subject: [PATCH 55/80] bump seqkit container --- configs/container.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/container.config b/configs/container.config index 6d310ac..f713429 100644 --- a/configs/container.config +++ b/configs/container.config @@ -7,5 +7,5 @@ process { withLabel: nanoplot { container = 'nanozoo/nanoplot:1.32.0--1ae6f5d' } withLabel: quast { container = 'nanozoo/quast:5.0.2--e7f0cfe' } withLabel: bed_samtools { container = 'nanozoo/bed_samtools:2.30.0--cc7d1b9' } - withLabel: seqkit { container = 'quay.io/biocontainers/seqkit:2.6.1--h9ee0642_0' } + withLabel: seqkit { container = 'nanozoo/seqkit:2.6.1--022e008' } } From 26bd1d09438f44f4177585888530982de234d698 Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Wed, 13 Dec 2023 12:20:52 +0100 Subject: [PATCH 56/80] Update fastq_from_bam to publish illumina data properly. Regexes are geting crazy, need to rethink this. --- modules/alignment_processing.nf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/alignment_processing.nf b/modules/alignment_processing.nf index 0f908f7..ca3b693 100644 --- a/modules/alignment_processing.nf +++ b/modules/alignment_processing.nf @@ -152,6 +152,8 @@ process fastq_from_bam { fn.matches('.*.mapped_merged.fast[aq].gz$') ? "removed/${fn}".replaceAll(~'.mapped_merged(.fast[aq].gz)$', '$1') : fn.matches('.*.unmapped_merged_merged.fast[aq].gz$') ? "clean/${fn}".replaceAll(~'.unmapped_merged_merged(.fast[aq].gz)$', '$1') : fn.matches('.*.soft-clipped_merged.fast[aq].gz$') ? "clean/${fn}".replaceAll(~'.soft-clipped_merged(.fast[aq].gz)$', '$1') : + fn.matches('.*.unmapped_(1|2|singleton).fast[aq].gz$') ? "clean/${fn}".replaceAll(~'.unmapped_(1|2|singleton)(.fast[aq].gz)$', '_$1$2') : + fn.matches('.*.mapped_(1|2|singleton).fast[aq].gz$') ? "removed/${fn}".replaceAll(~'.mapped_(1|2|singleton)(.fast[aq].gz)$', '_$1$2') : fn } ) From f50812e6af21a383a5f3444f5887a0984db5261c Mon Sep 17 00:00:00 2001 From: "Lataretu, Marie" Date: Thu, 14 Dec 2023 17:30:40 +0100 Subject: [PATCH 57/80] linked to correct workflow figure --- README.md | 2 +- data/figures/workflow.png | Bin 229687 -> 0 bytes 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 data/figures/workflow.png diff --git a/README.md b/README.md index caed673..e26a88d 100644 --- a/README.md +++ b/README.md @@ -105,7 +105,7 @@ Included in this repository are: ## Workflow -![chart](data/figures/workflow.png) +![chart](figures/clean_workflow_latest.png) The icons and diagram components that make up the schematic view were originally designed by James A. Fellow Yates & nf-core under a CCO license (public domain). diff --git a/data/figures/workflow.png b/data/figures/workflow.png deleted file mode 100644 index f8959dbe70b4d36174c9dabdcadba2b7503d7aa5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229687 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 bxXUR66TJp-J~r&=*I(+&I!aZF(8vD=1wJ?J From 237782d804ca8dc5d17f0557170f27ee876ff5e8 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Fri, 15 Dec 2023 09:38:32 +0100 Subject: [PATCH 58/80] added nf-tests - dry (stub) runs for each input type - input are empty files - dry run ci test with nf-test --- .github/workflows/dryrun.yml | 65 +++++++++++++++++++++++++++++ .gitignore | 1 + assets/EMPTY_FILE | 0 assets/EMPTY_FILE_R1.fastq | 0 assets/EMPTY_FILE_R2.fastq | 0 configs/test.config | 12 ++++++ nf-test.config | 7 ++++ tests/fasta/main.nf.test | 24 +++++++++++ tests/illumina/main.nf.test | 80 ++++++++++++++++++++++++++++++++++++ tests/nanopore/main.nf.test | 24 +++++++++++ 10 files changed, 213 insertions(+) create mode 100644 .github/workflows/dryrun.yml create mode 100644 assets/EMPTY_FILE create mode 100644 assets/EMPTY_FILE_R1.fastq create mode 100644 assets/EMPTY_FILE_R2.fastq create mode 100644 configs/test.config create mode 100644 nf-test.config create mode 100644 tests/fasta/main.nf.test create mode 100644 tests/illumina/main.nf.test create mode 100644 tests/nanopore/main.nf.test diff --git a/.github/workflows/dryrun.yml b/.github/workflows/dryrun.yml new file mode 100644 index 0000000..66e2838 --- /dev/null +++ b/.github/workflows/dryrun.yml @@ -0,0 +1,65 @@ +name: dry run CI + +env: + NXF_ANSI_LOG: false + +jobs: + test: + name: Dry run ${{ matrix.inputtype }}-${{ matrix.profile }} pipeline test + runs-on: ubuntu-latest + strategy: + matrix: + NXF_VER: + - "23.04.1" + - "latest" + inputtype: + - fasta + - illumina + - nanopore + profile: ["docker"] # TODO , "singularity", "conda"] + steps: + - name: Check out pipeline code + uses: actions/checkout@v3 + + - uses: actions/cache@v2 + with: + path: /usr/local/bin/nextflow + key: ${{ runner.os }} + restore-keys: | + ${{ runner.os }}-nextflow- + + - name: Install Nextflow + uses: nf-core/setup-nextflow@v1 + with: + version: "${{ matrix.NXF_VER }}" + + - name: Install nf-test + run: | + wget -qO- https://code.askimed.com/install/nf-test | bash + sudo mv nf-test /usr/local/bin/ + + - name: Set up Singularity + if: matrix.profile == 'singularity' + uses: eWaterCycle/setup-singularity@v5 + with: + singularity-version: 3.7.1 + + - name: Set up miniconda + if: matrix.profile == 'conda' + uses: conda-incubator/setup-miniconda@v2 + with: + auto-update-conda: true + channels: conda-forge,bioconda,defaults + python-version: ${{ matrix.python-version }} + + - name: Conda clean + if: matrix.profile == 'conda' + run: conda clean -a + + - name: Run nf-test + run: nf-test test --profile=${{ matrix.profile }} tests/${{ matrix.inputtype }}/*.nf.test --tap=test.tap + + - uses: pcolby/tap-summary@v1 + with: + path: >- + test.tap diff --git a/.gitignore b/.gitignore index dbcfd8c..0e71847 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ centrifuge-cloud/ conda/ singularity/ .vscode/ +.nf-test/ diff --git a/assets/EMPTY_FILE b/assets/EMPTY_FILE new file mode 100644 index 0000000..e69de29 diff --git a/assets/EMPTY_FILE_R1.fastq b/assets/EMPTY_FILE_R1.fastq new file mode 100644 index 0000000..e69de29 diff --git a/assets/EMPTY_FILE_R2.fastq b/assets/EMPTY_FILE_R2.fastq new file mode 100644 index 0000000..e69de29 diff --git a/configs/test.config b/configs/test.config new file mode 100644 index 0000000..beced6e --- /dev/null +++ b/configs/test.config @@ -0,0 +1,12 @@ +/* +======================================================================================== + Nextflow config file for running tests +======================================================================================== +*/ +params { + // Limit resources so that this can run on GitHub Actions + max_cores = 2 + cores = 1 + max_memory = 6.GB + memory = 6.GB +} \ No newline at end of file diff --git a/nf-test.config b/nf-test.config new file mode 100644 index 0000000..51c113c --- /dev/null +++ b/nf-test.config @@ -0,0 +1,7 @@ +config { + + testsDir "tests" + workDir ".nf-test" + configFile "tests/nextflow.config" + +} diff --git a/tests/fasta/main.nf.test b/tests/fasta/main.nf.test new file mode 100644 index 0000000..dde2ae0 --- /dev/null +++ b/tests/fasta/main.nf.test @@ -0,0 +1,24 @@ +nextflow_pipeline { + + name "FASTA input" + script "../../clean.nf" + + test("Stub") { + options "-stub-run" + + when { + params { + input_type = "fasta" + input = "$projectDir/assets/EMPTY_FILE" + own = "$projectDir/assets/EMPTY_FILE" + } + } + + then { + assertAll( + { assert workflow.success } + ) + } + } + +} \ No newline at end of file diff --git a/tests/illumina/main.nf.test b/tests/illumina/main.nf.test new file mode 100644 index 0000000..d53af29 --- /dev/null +++ b/tests/illumina/main.nf.test @@ -0,0 +1,80 @@ +nextflow_pipeline { + + name "Illumina input" + script "../../clean.nf" + + test("Stub paired-end") { + options "-stub-run" + + when { + params { + input_type = "illumina" + input = "$projectDir/assets/EMPTY_FILE_{R1,R2}.fastq" + own = "$projectDir/assets/EMPTY_FILE" + } + } + + then { + assertAll( + { assert workflow.success } + ) + } + } + + test("Stub single-end") { + options "-stub-run" + + when { + params { + input_type = "illumina_single_end" + input = "$projectDir/assets/EMPTY_FILE" + own = "$projectDir/assets/EMPTY_FILE" + } + } + + then { + assertAll( + { assert workflow.success } + ) + } + } + + test("Stub paired-end bbduk") { + options "-stub-run" + + when { + params { + input_type = "illumina" + input = "$projectDir/assets/EMPTY_FILE_{R1,R2}.fastq" + own = "$projectDir/assets/EMPTY_FILE" + bbduk = true + } + } + + then { + assertAll( + { assert workflow.success } + ) + } + } + + test("Stub single-end bbduk") { + options "-stub-run" + + when { + params { + input_type = "illumina_single_end" + input = "$projectDir/assets/EMPTY_FILE" + own = "$projectDir/assets/EMPTY_FILE" + bbduk = true + } + } + + then { + assertAll( + { assert workflow.success } + ) + } + } + +} \ No newline at end of file diff --git a/tests/nanopore/main.nf.test b/tests/nanopore/main.nf.test new file mode 100644 index 0000000..eb5ac62 --- /dev/null +++ b/tests/nanopore/main.nf.test @@ -0,0 +1,24 @@ +nextflow_pipeline { + + name "Nanopore input" + script "../../clean.nf" + + test("Stub") { + options "-stub-run" + + when { + params { + input_type = "nano" + input = "$projectDir/assets/EMPTY_FILE" + own = "$projectDir/assets/EMPTY_FILE" + } + } + + then { + assertAll( + { assert workflow.success } + ) + } + } + +} \ No newline at end of file From 932edc93d5d8105cc7ddd2b57f8c3c7f89273b2c Mon Sep 17 00:00:00 2001 From: MarieLataretu <52002068+MarieLataretu@users.noreply.github.com> Date: Sat, 16 Dec 2023 09:22:11 +0100 Subject: [PATCH 59/80] update the repo location --- README.md | 14 +++++++------- clean.nf | 6 +++--- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index e26a88d..6d25113 100644 --- a/README.md +++ b/README.md @@ -48,24 +48,24 @@ In default `docker` is used; to switch to `conda` use `-profile conda`. Get or update the workflow: ```bash -nextflow pull hoelzer/clean +nextflow pull rki-mf1/clean ``` Get help: ```bash -nextflow run hoelzer/clean --help +nextflow run rki-mf1/clean --help ``` Clean Nanopore data by filtering against a combined reference of the _E. coli_ genome and the Nanopore DNA CS spike-in. ```bash # uses Docker per default -nextflow run hoelzer/clean --input_type nano --input ~/.nextflow/assets/hoelzer/clean/test/nanopore.fastq.gz \ +nextflow run rki-mf1/clean --input_type nano --input ~/.nextflow/assets/rki-mf1/clean/test/nanopore.fastq.gz \ --host eco --control dcs # use conda instead of Docker -nextflow run hoelzer/clean --input_type nano --input ~/.nextflow/assets/hoelzer/clean/test/nanopore.fastq.gz \ +nextflow run rki-mf1/clean --input_type nano --input ~/.nextflow/assets/rki-mf1/clean/test/nanopore.fastq.gz \ --host eco --control dcs -profile conda ``` @@ -73,8 +73,8 @@ Clean Illumina paired-end data against your own reference FASTA using bbduk inst ```bash # enter your home dir! -nextflow run hoelzer/clean --input_type illumina --input '/home/martin/.nextflow/assets/hoelzer/clean/test/illumina*.R{1,2}.fastq.gz' \ ---own ~/.nextflow/assets/hoelzer/clean/test/ref.fasta.gz --bbduk +nextflow run rki-mf1/clean --input_type illumina --input '/home/martin/.nextflow/assets/rki-mf1/clean/test/illumina*.R{1,2}.fastq.gz' \ +--own ~/.nextflow/assets/rki-mf1/clean/test/ref.fasta.gz --bbduk ``` Clean some Illumina, Nanopore, and assembly files against the mouse and phiX genomes. @@ -98,7 +98,7 @@ Included in this repository are: |flag | recommended usage | control/spike | source | |-----|-|---------|-------| | dcs | ONT DNA-Seq reads |3.6 kb standard amplicon mapping the 3' end of the Lambda genome| https://assets.ctfassets.net/hkzaxo8a05x5/2IX56YmF5ug0kAQYoAg2Uk/159523e326b1b791e3b842c4791420a6/DNA_CS.txt | -| eno | ONT RNA-Seq reads |yeast ENO2 Enolase II of strain S288C, YHR174W| https://raw.githubusercontent.com/hoelzer/clean/master/controls/S288C_YHR174W_ENO2_coding.fsa | +| eno | ONT RNA-Seq reads |yeast ENO2 Enolase II of strain S288C, YHR174W| https://raw.githubusercontent.com/rki-mf1/clean/master/controls/S288C_YHR174W_ENO2_coding.fsa | | phix| Illumina reads |enterobacteria_phage_phix174_sensu_lato_uid14015, NC_001422| ftp://ftp.ncbi.nlm.nih.gov/genomes/Viruses/enterobacteria_phage_phix174_sensu_lato_uid14015/NC_001422.fna | ... for reasons. More can be easily added! Just write me, add an issue or make a pull request. diff --git a/clean.nf b/clean.nf index 565826e..bf2d4bc 100755 --- a/clean.nf +++ b/clean.nf @@ -234,11 +234,11 @@ def helpMSG() { Use the ${c_dim}--host${c_reset} and ${c_dim}--control${c_reset} flag to download a host database or specify your ${c_dim}--own${c_reset} FASTA. ${c_yellow}Usage example:${c_reset} - nextflow run clean.nf --input_type nano --input '*/*.fastq' --host eco --control dcs + nextflow run rki-mf1/clean --input_type nano --input '*/*.fastq' --host eco --control dcs or - nextflow run clean.nf --input_type illumina --input '*/*.R{1,2}.fastq' --own some_host.fasta --bbduk + nextflow run rki-mf1/clean --input_type illumina --input '*/*.R{1,2}.fastq' --own some_host.fasta --bbduk or - nextflow run clean.nf --input_type illumina --input 'test/illumina*.R{1,2}.fastq.gz' --nano data/nanopore.fastq.gz --fasta data/assembly.fasta --host eco --control phix + nextflow run rki-mf1/clean --input_type illumina --input 'test/illumina*.R{1,2}.fastq.gz' --nano data/nanopore.fastq.gz --fasta data/assembly.fasta --host eco --control phix ${c_yellow}Input:${c_reset} ${c_green}--input_type nano --input${c_reset} '*.fasta' or '*.fastq.gz' -> one sample per file From e2b381a196ce3d1d5b2c0a85a0d7e8e274db892a Mon Sep 17 00:00:00 2001 From: MarieLataretu <52002068+MarieLataretu@users.noreply.github.com> Date: Sat, 16 Dec 2023 09:31:54 +0100 Subject: [PATCH 60/80] added on trigger --- .github/workflows/dryrun.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/dryrun.yml b/.github/workflows/dryrun.yml index 66e2838..962a552 100644 --- a/.github/workflows/dryrun.yml +++ b/.github/workflows/dryrun.yml @@ -1,4 +1,13 @@ name: dry run CI +on: + push: + branches: + - dev + pull_request: + # Sequence of patterns matched against refs/heads + branches: + - main + env: NXF_ANSI_LOG: false From 88244b9dfe8fa8374efe23f766872e4c0553155b Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Sat, 16 Dec 2023 09:36:47 +0100 Subject: [PATCH 61/80] fix test config location --- nf-test.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nf-test.config b/nf-test.config index 51c113c..cc9ba1b 100644 --- a/nf-test.config +++ b/nf-test.config @@ -2,6 +2,6 @@ config { testsDir "tests" workDir ".nf-test" - configFile "tests/nextflow.config" + configFile "configs/test.config" } From f5361f44692e703987e29a9ab43a05810419981c Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Sat, 16 Dec 2023 09:52:05 +0100 Subject: [PATCH 62/80] enable singularity tests --- .github/workflows/dryrun.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dryrun.yml b/.github/workflows/dryrun.yml index 962a552..605807a 100644 --- a/.github/workflows/dryrun.yml +++ b/.github/workflows/dryrun.yml @@ -25,7 +25,7 @@ jobs: - fasta - illumina - nanopore - profile: ["docker"] # TODO , "singularity", "conda"] + profile: ["docker", "singularity"] # TODO, "conda"] steps: - name: Check out pipeline code uses: actions/checkout@v3 From 6a0ad65e2f05a161ff01bca11a306fd7bd8708f5 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Sat, 16 Dec 2023 09:57:46 +0100 Subject: [PATCH 63/80] disable singularity tests due to `Failed to pull singularity image` errors --- .github/workflows/dryrun.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dryrun.yml b/.github/workflows/dryrun.yml index 605807a..ddba88a 100644 --- a/.github/workflows/dryrun.yml +++ b/.github/workflows/dryrun.yml @@ -25,7 +25,7 @@ jobs: - fasta - illumina - nanopore - profile: ["docker", "singularity"] # TODO, "conda"] + profile: ["docker"] # TODO "singularity", "conda"] steps: - name: Check out pipeline code uses: actions/checkout@v3 From c899acac4e7537438ea7b9584623f9c6d10256c4 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Sat, 16 Dec 2023 09:58:29 +0100 Subject: [PATCH 64/80] bump action/cache v3 --- .github/workflows/dryrun.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dryrun.yml b/.github/workflows/dryrun.yml index ddba88a..c8f05ca 100644 --- a/.github/workflows/dryrun.yml +++ b/.github/workflows/dryrun.yml @@ -30,7 +30,7 @@ jobs: - name: Check out pipeline code uses: actions/checkout@v3 - - uses: actions/cache@v2 + - uses: actions/cache@v3 with: path: /usr/local/bin/nextflow key: ${{ runner.os }} From 528417dd68fa13403de029fe7ca293114dd63f3c Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Sat, 16 Dec 2023 10:04:26 +0100 Subject: [PATCH 65/80] enable conda tests --- .github/workflows/dryrun.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dryrun.yml b/.github/workflows/dryrun.yml index c8f05ca..7bffbe2 100644 --- a/.github/workflows/dryrun.yml +++ b/.github/workflows/dryrun.yml @@ -25,7 +25,7 @@ jobs: - fasta - illumina - nanopore - profile: ["docker"] # TODO "singularity", "conda"] + profile: ["docker", "conda"] # TODO "singularity"] steps: - name: Check out pipeline code uses: actions/checkout@v3 From be9620d4a87fbb250c6ff2ce633bae5dd8ad9b27 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Sat, 16 Dec 2023 11:51:11 +0100 Subject: [PATCH 66/80] adde paired-end publishing with keep --- modules/utils.nf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/utils.nf b/modules/utils.nf index 5d94aad..8e72106 100644 --- a/modules/utils.nf +++ b/modules/utils.nf @@ -107,6 +107,9 @@ process filter_fastq_by_name { fn.matches('.*.fast[aq].clean.fast[aq].gz$') ? "clean/${fn}".replaceAll(~'.fast[aq].clean(.fast[aq].gz)$', '$1') : fn.matches('.*.fast[aq].contamination.fast[aq].gz$') ? "removed/${fn}".replaceAll(~'.fast[aq].contamination(.fast[aq].gz)$', '$1') : fn + fn.matches('.*.unmapped_(1|2|singleton).fast[aq].gz$') ? "clean/${fn}".replaceAll(~'.unmapped_(1|2|singleton)(.fast[aq].gz)$', '_$1$2') : + fn.matches('.*.mapped_(1|2|singleton).fast[aq].gz$') ? "removed/${fn}".replaceAll(~'.mapped_(1|2|singleton)(.fast[aq].gz)$', '_$1$2') : + fn } ) } From 17745d63409ebc8825b15dfa2f766b9e77d31ab2 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Sat, 16 Dec 2023 11:52:12 +0100 Subject: [PATCH 67/80] extended results example in readme --- README.md | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 6d25113..fd098b8 100644 --- a/README.md +++ b/README.md @@ -123,8 +123,10 @@ results/ │ ├── map-to-remove/ │ │ ├── .mapped.fastq.gz │ │ ├── .unmapped.fastq.gz -│ │ ├── .mapped.bam -│ │ ├── .unmapped.bam +│ │ ├── .sorted.bam +│ │ ├── .sorted.bam.bai +│ │ ├── .sorted.flagstat.txt +│ │ ├── .sorted.idxstats.tsv │ │ ├── strict-dcs/ │ │ │ ├── .no-dcs.bam │ │ │ ├── .true-dcs.bam @@ -132,18 +134,22 @@ results/ │ │ └── soft-clipped/ │ │ ├── .soft-clipped.bam │ │ └── .passed-clipped.bam -│ └── map-to-keep/ -│ ├── .mapped.fastq.gz -│ ├── .unmapped.fastq.gz -│ ├── .mapped.bam -│ ├── .unmapped.bam -│ ├── strict-dcs/ -│ │ ├── .no-dcs.bam -│ │ ├── .true-dcs.bam -│ │ └── .false-dcs.bam -│ └── soft-clipped/ -│ ├── .soft-clipped.bam -│ └── .passed-clipped.bam +│ ├── map-to-keep/ +│ │ ├── .mapped.fastq.gz +│ │ ├── .unmapped.fastq.gz +│ │ ├── .sorted.bam +│ │ ├── .sorted.bam.bai +│ │ ├── .sorted.flagstat.txt +│ │ ├── .sorted.idxstats.tsv +│ │ ├── strict-dcs/ +│ │ │ ├── .no-dcs.bam +│ │ │ ├── .true-dcs.bam +│ │ │ └── .false-dcs.bam +│ │ └── soft-clipped/ +│ │ ├── .soft-clipped.bam +│ │ └── .passed-clipped.bam +| ├── host.fa.fai +| └── host.fa.gz ├── logs/*.html └── qc/multiqc_report.html ``` From bb9e91b07f0e2d43ba7f81b59f89bf468e337d00 Mon Sep 17 00:00:00 2001 From: martin Date: Sat, 16 Dec 2023 13:30:33 +0100 Subject: [PATCH 68/80] add acknow --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index fd098b8..2eaa0d4 100644 --- a/README.md +++ b/README.md @@ -158,6 +158,10 @@ The most important files you are likely interested in are `results/clean/ Date: Sat, 16 Dec 2023 13:33:30 +0100 Subject: [PATCH 69/80] typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2eaa0d4..ee45c64 100644 --- a/README.md +++ b/README.md @@ -160,7 +160,7 @@ For debugging purposes we also provide various intermediate results in the `inte ## Acknowledgements -Thanks to Matt Huska (@matthuska) for extensive testing of CLEAN, bug fixing, and reorganizing the output. +Thanks to Matt Huska (@matthuska) for extensive testing of `CLEAN`, bug fixing, and reorganizing the output. ## Citations From b9bbd0a76103adee0e28cbd0fbf2b5c3db682fe0 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Sat, 16 Dec 2023 14:23:52 +0100 Subject: [PATCH 70/80] fix copy paste error - removed duplicated line --- modules/utils.nf | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/utils.nf b/modules/utils.nf index 8e72106..6b4e001 100644 --- a/modules/utils.nf +++ b/modules/utils.nf @@ -106,7 +106,6 @@ process filter_fastq_by_name { fn.matches('.*.mapped_merged_merged.fast[aq].gz$') ? "removed/${fn}".replaceAll(~'.mapped_merged_merged(.fast[aq].gz)$', '$1') : fn.matches('.*.fast[aq].clean.fast[aq].gz$') ? "clean/${fn}".replaceAll(~'.fast[aq].clean(.fast[aq].gz)$', '$1') : fn.matches('.*.fast[aq].contamination.fast[aq].gz$') ? "removed/${fn}".replaceAll(~'.fast[aq].contamination(.fast[aq].gz)$', '$1') : - fn fn.matches('.*.unmapped_(1|2|singleton).fast[aq].gz$') ? "clean/${fn}".replaceAll(~'.unmapped_(1|2|singleton)(.fast[aq].gz)$', '_$1$2') : fn.matches('.*.mapped_(1|2|singleton).fast[aq].gz$') ? "removed/${fn}".replaceAll(~'.mapped_(1|2|singleton)(.fast[aq].gz)$', '_$1$2') : fn From 1a2be07bf0cbf57728fb70e702ebc17e445caa11 Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Wed, 20 Dec 2023 13:21:10 +0100 Subject: [PATCH 71/80] Bump setup-miniconda to v3, to support libmamba solver for conda. Set solver explicitly. --- .github/workflows/dryrun.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dryrun.yml b/.github/workflows/dryrun.yml index 7bffbe2..fffa6dc 100644 --- a/.github/workflows/dryrun.yml +++ b/.github/workflows/dryrun.yml @@ -5,7 +5,7 @@ on: - dev pull_request: # Sequence of patterns matched against refs/heads - branches: + branches: - main @@ -55,9 +55,10 @@ jobs: - name: Set up miniconda if: matrix.profile == 'conda' - uses: conda-incubator/setup-miniconda@v2 + uses: conda-incubator/setup-miniconda@v3 with: auto-update-conda: true + conda-solver: libmamba channels: conda-forge,bioconda,defaults python-version: ${{ matrix.python-version }} From 645b7f3b3a1e7eb49ff715cafc421dba8bd12a06 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Wed, 3 Jan 2024 09:39:25 +0100 Subject: [PATCH 72/80] fix stub --- modules/alignment_processing.nf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/alignment_processing.nf b/modules/alignment_processing.nf index ca3b693..06bdc82 100644 --- a/modules/alignment_processing.nf +++ b/modules/alignment_processing.nf @@ -121,7 +121,7 @@ process filter_true_dcs_alignments { """ stub: """ - touch ${name}.no-dcs.bam ${name}.true-dcs.bam ${name}.false-dcs.bam ${name}.no-dcs.bam.bai ${name}.true-dcs.bam.bai ${name}.false-dcs.bam.bai + touch ${name}.no-dcs.bam ${name}.true-dcs.bam ${name}.false-dcs.bam ${name}.no-dcs.bam.bai ${name}.true-dcs.bam.bai ${name}.false-dcs.bam.bai dcs.bam dcs.bam.bai """ } @@ -154,6 +154,8 @@ process fastq_from_bam { fn.matches('.*.soft-clipped_merged.fast[aq].gz$') ? "clean/${fn}".replaceAll(~'.soft-clipped_merged(.fast[aq].gz)$', '$1') : fn.matches('.*.unmapped_(1|2|singleton).fast[aq].gz$') ? "clean/${fn}".replaceAll(~'.unmapped_(1|2|singleton)(.fast[aq].gz)$', '_$1$2') : fn.matches('.*.mapped_(1|2|singleton).fast[aq].gz$') ? "removed/${fn}".replaceAll(~'.mapped_(1|2|singleton)(.fast[aq].gz)$', '_$1$2') : + fn.matches('.*.unmapped_merged_(1|2|singleton).fast[aq].gz$') ? "clean/${fn}".replaceAll(~'.unmapped_(1|2|singleton)(.fast[aq].gz)$', '_$1$2') : + fn.matches('.*.mapped_merged_(1|2|singleton).fast[aq].gz$') ? "removed/${fn}".replaceAll(~'.mapped_(1|2|singleton)(.fast[aq].gz)$', '_$1$2') : fn } ) From bfdc856efb2a368b820c519e848ad9c1cd22d915 Mon Sep 17 00:00:00 2001 From: MarieLataretu Date: Wed, 3 Jan 2024 09:47:47 +0100 Subject: [PATCH 73/80] publish (un)mapped_merged with keep --- modules/utils.nf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/utils.nf b/modules/utils.nf index 6b4e001..3a59335 100644 --- a/modules/utils.nf +++ b/modules/utils.nf @@ -108,6 +108,8 @@ process filter_fastq_by_name { fn.matches('.*.fast[aq].contamination.fast[aq].gz$') ? "removed/${fn}".replaceAll(~'.fast[aq].contamination(.fast[aq].gz)$', '$1') : fn.matches('.*.unmapped_(1|2|singleton).fast[aq].gz$') ? "clean/${fn}".replaceAll(~'.unmapped_(1|2|singleton)(.fast[aq].gz)$', '_$1$2') : fn.matches('.*.mapped_(1|2|singleton).fast[aq].gz$') ? "removed/${fn}".replaceAll(~'.mapped_(1|2|singleton)(.fast[aq].gz)$', '_$1$2') : + fn.matches('.*.unmapped_merged_(1|2|singleton).fast[aq].gz$') ? "clean/${fn}".replaceAll(~'.unmapped_(1|2|singleton)(.fast[aq].gz)$', '_$1$2') : + fn.matches('.*.mapped_merged_(1|2|singleton).fast[aq].gz$') ? "removed/${fn}".replaceAll(~'.mapped_(1|2|singleton)(.fast[aq].gz)$', '_$1$2') : fn } ) From a5491563dd547df1e0f544bca39480da02027ea2 Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Wed, 3 Jan 2024 14:51:43 +0100 Subject: [PATCH 74/80] Change zcat comands to read file from stdin --- data/rRNA/readme.md | 2 +- modules/prepare_contamination.nf | 2 +- modules/utils.nf | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/data/rRNA/readme.md b/data/rRNA/readme.md index aa4b7a8..1e9346c 100644 --- a/data/rRNA/readme.md +++ b/data/rRNA/readme.md @@ -1,3 +1,3 @@ Fasta files downloaded from https://github.com/biocore/sortmerna/tree/master/data/rRNA_databases [2020-05-20] Files were rezipped with bgzip: -for rrna in `ls data/rRNA/*.fasta.gz`; do zcat data/rRNA/$rrna | bgzip -@ 8 -c > data/rRNA/$rrna; done \ No newline at end of file +for rrna in `ls data/rRNA/*.fasta.gz`; do zcat < data/rRNA/$rrna | bgzip -@ 8 -c > data/rRNA/$rrna; done diff --git a/modules/prepare_contamination.nf b/modules/prepare_contamination.nf index 5eca4ec..132958c 100644 --- a/modules/prepare_contamination.nf +++ b/modules/prepare_contamination.nf @@ -40,7 +40,7 @@ process download_host { ;; esac - zcat host-temp.fa.gz | bgzip -@ ${task.cpus} -c > ${host}.fa.gz + zcat < host-temp.fa.gz | bgzip -@ ${task.cpus} -c > ${host}.fa.gz """ stub: """ diff --git a/modules/utils.nf b/modules/utils.nf index 3a59335..2a81130 100644 --- a/modules/utils.nf +++ b/modules/utils.nf @@ -11,8 +11,8 @@ process get_number_of_records { if ( params.lib_pairedness == 'paired' ) { """ if [[ ${reads[0]} =~ \\.gz\$ ]]; then - TOTALRECORDS_1=\$(zcat ${reads[0]} | echo \$((`wc -l`/4))) - TOTALRECORDS_2=\$(zcat ${reads[1]} | echo \$((`wc -l`/4))) + TOTALRECORDS_1=\$(zcat < ${reads[0]} | echo \$((`wc -l`/4))) + TOTALRECORDS_2=\$(zcat < ${reads[1]} | echo \$((`wc -l`/4))) else TOTALRECORDS_1=\$(cat ${reads[0]} | echo \$((`wc -l`/4))) TOTALRECORDS_2=\$(cat ${reads[1]} | echo \$((`wc -l`/4))) @@ -22,7 +22,7 @@ process get_number_of_records { } else if ( params.lib_pairedness == 'single' && params.input_type != 'fasta' ) { """ if [[ ${reads} =~ \\.gz\$ ]]; then - TOTALRECORDS=\$(zcat ${reads} | echo \$((`wc -l`/4))) + TOTALRECORDS=\$(zcat < ${reads} | echo \$((`wc -l`/4))) else TOTALRECORDS=\$(cat ${reads} | echo \$((`wc -l`/4))) fi From 6aa33d276083bf15598974570705ed97a8247307 Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Wed, 3 Jan 2024 15:04:49 +0100 Subject: [PATCH 75/80] Run dryrun action on PR against main or dev, and pushes directly to main --- .github/workflows/dryrun.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dryrun.yml b/.github/workflows/dryrun.yml index fffa6dc..e851422 100644 --- a/.github/workflows/dryrun.yml +++ b/.github/workflows/dryrun.yml @@ -2,11 +2,11 @@ name: dry run CI on: push: branches: - - dev + - main pull_request: - # Sequence of patterns matched against refs/heads branches: - main + - dev env: From 59d26568804ff8b551e07666035ffa8f01287c1b Mon Sep 17 00:00:00 2001 From: "Huska, Matthew" Date: Wed, 3 Jan 2024 16:43:43 +0100 Subject: [PATCH 76/80] Add python-version to matrix (fixed to 3.9 for now), and include nextflow version in job name --- .github/workflows/dryrun.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/dryrun.yml b/.github/workflows/dryrun.yml index e851422..681521f 100644 --- a/.github/workflows/dryrun.yml +++ b/.github/workflows/dryrun.yml @@ -14,7 +14,7 @@ env: jobs: test: - name: Dry run ${{ matrix.inputtype }}-${{ matrix.profile }} pipeline test + name: Dry run ${{ matrix.inputtype }}-${{ matrix.profile }}-nf_${{ matrix.NXF_VER }} pipeline test runs-on: ubuntu-latest strategy: matrix: @@ -26,6 +26,8 @@ jobs: - illumina - nanopore profile: ["docker", "conda"] # TODO "singularity"] + python-version: + - "3.9" steps: - name: Check out pipeline code uses: actions/checkout@v3 From bad429fff41a46c665f97e1be4dc06ecccedcb5d Mon Sep 17 00:00:00 2001 From: MarieLataretu <52002068+MarieLataretu@users.noreply.github.com> Date: Wed, 3 Jan 2024 17:28:50 +0100 Subject: [PATCH 77/80] create an uncompressed index instead of a compressed one - fixes #74 - only the FASTA file has to be decompressed for IGV usage --- modules/prepare_contamination.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prepare_contamination.nf b/modules/prepare_contamination.nf index 132958c..51476e5 100644 --- a/modules/prepare_contamination.nf +++ b/modules/prepare_contamination.nf @@ -96,7 +96,7 @@ process concat_contamination { """ # Combine input files, rename duplicate sequences (by id) if found, and compress seqkit seq ${fastas} | seqkit rename | bgzip -@ ${task.cpus} -c > db.fa.gz - samtools faidx db.fa.gz --gzi-idx db.fa.fai + samtools faidx db.fa.gz --fai-idx db.fa.fai """ stub: """ From 6b9be63284a388f9664a4e6dc4b2e085913ab06f Mon Sep 17 00:00:00 2001 From: MarieLataretu <52002068+MarieLataretu@users.noreply.github.com> Date: Wed, 3 Jan 2024 17:37:39 +0100 Subject: [PATCH 78/80] updated changelog --- CHANGELOG.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index aac0f0a..b1536fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +## [Unreleased] + +### Changed + +- reorganized of results directory and file names + +### Added + +- dry run CI tests + +### Fixed + +- fixed some issues on Mac OS + ## [v1.0.0-beta.1] - 2023-10-11 ### Changed From 1402f34cd33cf193ef915015557663c20738141f Mon Sep 17 00:00:00 2001 From: MarieLataretu <52002068+MarieLataretu@users.noreply.github.com> Date: Thu, 4 Jan 2024 12:01:31 +0100 Subject: [PATCH 79/80] updated changelog --- CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b1536fc..831c006 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## [Unreleased] +## [v1.0.0] - 2024-01-04 ### Changed @@ -9,6 +9,8 @@ ### Added - dry run CI tests +- options to reduce disk usage + - `--cleanup_work_dir` and `--no_intermediate` ### Fixed From 71464d2e4e099b2e841bef480b6b1fef0bcb8a84 Mon Sep 17 00:00:00 2001 From: MarieLataretu <52002068+MarieLataretu@users.noreply.github.com> Date: Thu, 4 Jan 2024 12:06:29 +0100 Subject: [PATCH 80/80] changed main to master --- .github/workflows/dryrun.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dryrun.yml b/.github/workflows/dryrun.yml index 681521f..6fedc25 100644 --- a/.github/workflows/dryrun.yml +++ b/.github/workflows/dryrun.yml @@ -2,10 +2,10 @@ name: dry run CI on: push: branches: - - main + - master pull_request: branches: - - main + - master - dev