From f170418ff3d3ce11cb446cc405eb26e526357014 Mon Sep 17 00:00:00 2001 From: Bjorn Langer Date: Thu, 4 Jul 2024 18:44:54 +0200 Subject: [PATCH 1/5] use subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc from nf-core/atacseq --- .../bam_bedgraph_bigwig_bedtools_ucsc.nf | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf diff --git a/subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf b/subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf new file mode 100644 index 00000000..0947571c --- /dev/null +++ b/subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf @@ -0,0 +1,42 @@ + +// +// Convert BAM to normalised bigWig via bedGraph using BEDTools and UCSC +// + +include { BEDTOOLS_GENOMECOV } from '../../modules/local/bedtools_genomecov' +include { UCSC_BEDGRAPHTOBIGWIG } from '../../modules/nf-core/ucsc/bedgraphtobigwig/main' + +workflow BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC { + take: + ch_bam_flagstat // channel: [ val(meta), [bam], [flagstat] ] + ch_chrom_sizes // channel: [ bed ] + + main: + + ch_versions = Channel.empty() + + // + // Create bedGraph coverage track + // + BEDTOOLS_GENOMECOV ( + ch_bam_flagstat + ) + ch_versions = ch_versions.mix(BEDTOOLS_GENOMECOV.out.versions.first()) + + // + // Create bigWig coverage tracks + // + UCSC_BEDGRAPHTOBIGWIG ( + BEDTOOLS_GENOMECOV.out.bedgraph, + ch_chrom_sizes + ) + ch_versions = ch_versions.mix(UCSC_BEDGRAPHTOBIGWIG.out.versions.first()) + + emit: + bedgraph = BEDTOOLS_GENOMECOV.out.bedgraph // channel: [ val(meta), [ bedgraph ] ] + scale_factor = BEDTOOLS_GENOMECOV.out.scale_factor // channel: [ val(meta), [ txt ] ] + + bigwig = UCSC_BEDGRAPHTOBIGWIG.out.bigwig // channel: [ val(meta), [ bigwig ] ] + + versions = ch_versions // channel: [ versions.yml ] +} From dbbfc239e82129ea13dead9ca5267eda3ecab9eb Mon Sep 17 00:00:00 2001 From: Bjorn Langer Date: Fri, 5 Jul 2024 10:19:54 +0200 Subject: [PATCH 2/5] actually use subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc from nf-core/atacseq --- .../bam_bedgraph_bigwig_bedtools_ucsc.nf | 2 +- workflows/chipseq.nf | 38 ++++++++----------- 2 files changed, 17 insertions(+), 23 deletions(-) diff --git a/subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf b/subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf index 0947571c..5796f407 100644 --- a/subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf +++ b/subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf @@ -10,7 +10,7 @@ workflow BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC { take: ch_bam_flagstat // channel: [ val(meta), [bam], [flagstat] ] ch_chrom_sizes // channel: [ bed ] - + main: ch_versions = Channel.empty() diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index 8f4a9e63..abdb57d7 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -7,7 +7,6 @@ // // MODULE: Loaded from modules/local/ // -include { BEDTOOLS_GENOMECOV } from '../modules/local/bedtools_genomecov' include { FRIP_SCORE } from '../modules/local/frip_score' include { PLOT_MACS2_QC } from '../modules/local/plot_macs2_qc' include { PLOT_HOMER_ANNOTATEPEAKS } from '../modules/local/plot_homer_annotatepeaks' @@ -22,13 +21,15 @@ include { MULTIQC_CUSTOM_PEAKS } from '../modules/local/multiqc_c // // SUBWORKFLOW: Consisting of a mix of local and nf-core/modules // -include { paramsSummaryMap } from 'plugin/nf-validation' -include { paramsSummaryMultiqc } from '../subworkflows/nf-core/utils_nfcore_pipeline' -include { softwareVersionsToYAML } from '../subworkflows/nf-core/utils_nfcore_pipeline' -include { methodsDescriptionText } from '../subworkflows/local/utils_nfcore_chipseq_pipeline' -include { INPUT_CHECK } from '../subworkflows/local/input_check' -include { ALIGN_STAR } from '../subworkflows/local/align_star' -include { BAM_FILTER_BAMTOOLS } from '../subworkflows/local/bam_filter_bamtools' +include { paramsSummaryMap } from 'plugin/nf-validation' +include { paramsSummaryMultiqc } from '../subworkflows/nf-core/utils_nfcore_pipeline' +include { softwareVersionsToYAML } from '../subworkflows/nf-core/utils_nfcore_pipeline' +include { methodsDescriptionText } from '../subworkflows/local/utils_nfcore_chipseq_pipeline' +include { INPUT_CHECK } from '../subworkflows/local/input_check' +include { ALIGN_STAR } from '../subworkflows/local/align_star' +include { BAM_FILTER_BAMTOOLS } from '../subworkflows/local/bam_filter_bamtools' +include { BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC } from '../subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc' +include { BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER } from '../subworkflows/local/bam_peaks_call_qc_annotate_macs2_homer.nf' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -358,21 +359,14 @@ workflow CHIPSEQ { } // - // MODULE: BedGraph coverage tracks + // SUBWORKFLOW: Normalised bigWig coverage tracks // - BEDTOOLS_GENOMECOV ( - BAM_FILTER_BAMTOOLS.out.bam.join(BAM_FILTER_BAMTOOLS.out.flagstat, by: [0]) + BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC ( + BAM_FILTER_BAMTOOLS.out.bam.join(BAM_FILTER_BAMTOOLS.out.flagstat, by: [0]), + PREPARE_GENOME.out.chrom_sizes ) - ch_versions = ch_versions.mix(BEDTOOLS_GENOMECOV.out.versions.first()) + ch_versions = ch_versions.mix(BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC.out.versions) - // - // MODULE: BigWig coverage tracks - // - UCSC_BEDGRAPHTOBIGWIG ( - BEDTOOLS_GENOMECOV.out.bedgraph, - ch_chrom_sizes - ) - ch_versions = ch_versions.mix(UCSC_BEDGRAPHTOBIGWIG.out.versions.first()) ch_deeptoolsplotprofile_multiqc = Channel.empty() if (!params.skip_plot_profile) { @@ -380,7 +374,7 @@ workflow CHIPSEQ { // MODULE: deepTools matrix generation for plotting // DEEPTOOLS_COMPUTEMATRIX ( - UCSC_BEDGRAPHTOBIGWIG.out.bigwig, + BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC.out.bigwig, ch_gene_bed ) ch_versions = ch_versions.mix(DEEPTOOLS_COMPUTEMATRIX.out.versions.first()) @@ -678,7 +672,7 @@ workflow CHIPSEQ { params.aligner, params.narrow_peak ? 'narrow_peak' : 'broad_peak', ch_fasta, - UCSC_BEDGRAPHTOBIGWIG.out.bigwig.collect{it[1]}.ifEmpty([]), + BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC.out.bigwig.collect{it[1]}.ifEmpty([]), ch_macs2_peaks.collect{it[1]}.ifEmpty([]), ch_macs2_consensus_bed_lib.collect{it[1]}.ifEmpty([]), ch_macs2_consensus_txt_lib.collect{it[1]}.ifEmpty([]) From d314ec33aa3b7a97650568461a2ca546367cb622 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Langer?= <61791748+bjlang@users.noreply.github.com> Date: Fri, 5 Jul 2024 10:26:17 +0200 Subject: [PATCH 3/5] clean imports --- workflows/chipseq.nf | 2 -- 1 file changed, 2 deletions(-) diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index abdb57d7..d1cb3b66 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -29,7 +29,6 @@ include { INPUT_CHECK } from '../subworkflows/local/i include { ALIGN_STAR } from '../subworkflows/local/align_star' include { BAM_FILTER_BAMTOOLS } from '../subworkflows/local/bam_filter_bamtools' include { BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC } from '../subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc' -include { BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER } from '../subworkflows/local/bam_peaks_call_qc_annotate_macs2_homer.nf' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -45,7 +44,6 @@ include { PICARD_MERGESAMFILES } from '../modules/nf-core/picard/merges include { PICARD_COLLECTMULTIPLEMETRICS } from '../modules/nf-core/picard/collectmultiplemetrics/main' include { PRESEQ_LCEXTRAP } from '../modules/nf-core/preseq/lcextrap/main' include { PHANTOMPEAKQUALTOOLS } from '../modules/nf-core/phantompeakqualtools/main' -include { UCSC_BEDGRAPHTOBIGWIG } from '../modules/nf-core/ucsc/bedgraphtobigwig/main' include { DEEPTOOLS_COMPUTEMATRIX } from '../modules/nf-core/deeptools/computematrix/main' include { DEEPTOOLS_PLOTPROFILE } from '../modules/nf-core/deeptools/plotprofile/main' include { DEEPTOOLS_PLOTHEATMAP } from '../modules/nf-core/deeptools/plotheatmap/main' From 8aaccc2a9102bdec64771c1fbf1a48446c12df5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Langer?= <61791748+bjlang@users.noreply.github.com> Date: Fri, 5 Jul 2024 10:30:22 +0200 Subject: [PATCH 4/5] Update chipseq.nf --- workflows/chipseq.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index d1cb3b66..c855693b 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -361,7 +361,7 @@ workflow CHIPSEQ { // BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC ( BAM_FILTER_BAMTOOLS.out.bam.join(BAM_FILTER_BAMTOOLS.out.flagstat, by: [0]), - PREPARE_GENOME.out.chrom_sizes + ch_chrom_sizes ) ch_versions = ch_versions.mix(BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC.out.versions) From 53c152c76341dab3cc9e9d64ec00d6827e4a1ab4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Langer?= <61791748+bjlang@users.noreply.github.com> Date: Fri, 5 Jul 2024 10:40:56 +0200 Subject: [PATCH 5/5] Update subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf Co-authored-by: Jose Espinosa-Carrasco --- subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf | 1 - 1 file changed, 1 deletion(-) diff --git a/subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf b/subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf index 5796f407..271c3aa3 100644 --- a/subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf +++ b/subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf @@ -1,4 +1,3 @@ - // // Convert BAM to normalised bigWig via bedGraph using BEDTools and UCSC //