@@ -224,15 +224,16 @@ workflow CHIPSEQ {
224224
225225 ch_genome_bam_chromap. paired_end
226226 .collect()
227- .map { it ->
228- def count = it. size()
229- if (count > 0 ) {
230- log. warn " =============================================================================\n " +
231- " Paired-end files produced by chromap cannot be used by some downstream tools due to the issue below:\n " +
232- " https://github.com/nf-core/chipseq/issues/291\n " +
233- " They will be excluded from the analysis. Consider using a different aligner\n " +
234- " ==================================================================================="
235- }
227+ .map {
228+ it ->
229+ def count = it. size()
230+ if (count > 0 ) {
231+ log. warn " =============================================================================\n " +
232+ " Paired-end files produced by chromap cannot be used by some downstream tools due to the issue below:\n " +
233+ " https://github.com/nf-core/chipseq/issues/291\n " +
234+ " They will be excluded from the analysis. Consider using a different aligner\n " +
235+ " ==================================================================================="
236+ }
236237 }
237238
238239 ch_genome_bam = ch_genome_bam_chromap. single_end
@@ -271,9 +272,13 @@ workflow CHIPSEQ {
271272 def meta_clone = meta. clone()
272273 meta_clone. remove(' read_group' )
273274 meta_clone. id = meta_clone. id. split(' _' )[0 .. -2 ]. join(' _' )
274- [ meta_clone, bam ] }
275+ [ meta_clone, bam ]
276+ }
275277 .groupTuple(by : [0 ])
276- .map { it -> [ it[0 ], it[1 ]. flatten() ] }
278+ .map {
279+ it ->
280+ [ it[0 ], it[1 ]. flatten() ]
281+ }
277282 .set { ch_sort_bam }
278283
279284 PICARD_MERGESAMFILES (
@@ -309,7 +314,7 @@ workflow CHIPSEQ {
309314 MARK_DUPLICATES_PICARD . out. bam
310315 )
311316 ch_preseq_multiqc = PRESEQ_LCEXTRAP . out. lc_extrap
312- ch_versions = ch_versions. mix(PRESEQ_LCEXTRAP . out. versions. first())
317+ ch_versions = ch_versions. mix(PRESEQ_LCEXTRAP . out. versions. first())
313318 }
314319
315320 //
@@ -382,7 +387,7 @@ workflow CHIPSEQ {
382387 }
383388
384389 //
385- // Refactor channels: [ val( meta) , [ ip_bam, control_bam ] [ ip_bai, control_bai ] ]
390+ // Refactor channels: [ meta, [ ip_bam, control_bam ] [ ip_bai, control_bai ] ]
386391 //
387392 FILTER_BAM_BAMTOOLS
388393 .out
@@ -427,9 +432,12 @@ workflow CHIPSEQ {
427432 ch_macs_gsize = KHMER_UNIQUEKMERS . out. kmers. map { it. text. trim() }
428433 }
429434
430- // Create channel: [ val( meta) , ip_bam, control_bam ]
435+ // Create channel: [ meta, ip_bam, control_bam ]
431436 ch_ip_control_bam_bai
432- .map { meta, bams, bais -> [ meta , bams[0 ], bams[1 ] ] }
437+ .map {
438+ meta, bams, bais ->
439+ [ meta , bams[0 ], bams[1 ] ]
440+ }
433441 .set { ch_ip_control_bam }
434442
435443 MACS2_CALLPEAK (
@@ -447,23 +455,31 @@ workflow CHIPSEQ {
447455 .filter { meta, peaks -> peaks. size() > 0 }
448456 .set { ch_macs2_peaks }
449457
458+ // Create channel: [ meta, ip_bam, peaks ]
450459 ch_ip_control_bam
451460 .join(ch_macs2_peaks, by : [0 ])
452- .map { it -> [ it[0 ], it[1 ], it[3 ] ] }
453- .set { ch_ip_peak }
461+ .map {
462+ it ->
463+ [ it[0 ], it[1 ], it[3 ] ]
464+ }
465+ .set { ch_ip_bam_peaks }
454466
455467 FRIP_SCORE (
456- ch_ip_peak
468+ ch_ip_bam_peaks
457469 )
458470 ch_versions = ch_versions. mix(FRIP_SCORE . out. versions. first())
459471
460- ch_ip_peak
472+ // Create channel: [ meta, peaks, frip ]
473+ ch_ip_bam_peaks
461474 .join(FRIP_SCORE . out. txt, by : [0 ])
462- .map { it -> [ it[0 ], it[2 ], it[3 ] ] }
463- .set { ch_ip_peak_frip }
475+ .map {
476+ it ->
477+ [ it[0 ], it[2 ], it[3 ] ]
478+ }
479+ .set { ch_ip_peaks_frip }
464480
465481 MULTIQC_CUSTOM_PEAKS (
466- ch_ip_peak_frip ,
482+ ch_ip_peaks_frip ,
467483 ch_peak_count_header,
468484 ch_frip_score_header
469485 )
@@ -502,31 +518,36 @@ workflow CHIPSEQ {
502518 ch_deseq2_clustering_multiqc = Channel . empty()
503519 if (! params. skip_consensus_peaks) {
504520 // Create channel: [ meta , [ peaks ] ]
505- // Where meta = [ id:antibody, multiple_groups:true/false, replicates_exist:true/false ]
521+ // Where meta = [ id:antibody, multiple_groups:true/false, replicates_exist:true/false ]
506522 ch_macs2_peaks
507- .map { meta, peak -> [ meta. antibody, meta. id. split(' _' )[0 .. -2 ]. join(' _' ), peak ] }
523+ .map {
524+ meta, peak ->
525+ [ meta. antibody, meta. id. split(' _' )[0 .. -2 ]. join(' _' ), peak ]
526+ }
508527 .groupTuple()
509528 .map {
510529 antibody, groups, peaks ->
511530 [
512531 antibody,
513532 groups. groupBy(). collectEntries { [(it. key) : it. value. size()] },
514533 peaks
515- ] }
534+ ]
535+ }
516536 .map {
517537 antibody, groups, peaks ->
518- def meta = [:]
519- meta. id = antibody
520- meta. multiple_groups = groups. size() > 1
521- meta. replicates_exist = groups. max { groups. value }. value > 1
522- [ meta, peaks ] }
538+ def meta_new = [:]
539+ meta_new. id = antibody
540+ meta_new. multiple_groups = groups. size() > 1
541+ meta_new. replicates_exist = groups. max { groups. value }. value > 1
542+ [ meta_new, peaks ]
543+ }
523544 .set { ch_antibody_peaks }
524545
525546 MACS2_CONSENSUS (
526547 ch_antibody_peaks
527548 )
528549 ch_macs2_consensus_bed_lib = MACS2_CONSENSUS . out. bed
529- ch_versions = ch_versions. mix(MACS2_CONSENSUS . out. versions)
550+ ch_versions = ch_versions. mix(MACS2_CONSENSUS . out. versions)
530551
531552 if (! params. skip_peak_annotation) {
532553 HOMER_ANNOTATEPEAKS_CONSENSUS (
@@ -542,29 +563,32 @@ workflow CHIPSEQ {
542563 ch_versions = ch_versions. mix(ANNOTATE_BOOLEAN_PEAKS . out. versions)
543564 }
544565
545- // Create channel: [ val(meta), ip_bam ]
566+ // Create channel: [ antibody, [ ip_bams ] ]
567+ ch_ip_control_bam
568+ .map {
569+ meta, ip_bam, control_bam ->
570+ [ meta. antibody, ip_bam ]
571+ }
572+ .groupTuple()
573+ .set { ch_antibody_bams }
574+
575+ // Create channel: [ meta, [ ip_bams ], saf ]
546576 MACS2_CONSENSUS
547577 .out
548578 .saf
549- .map { meta, saf -> [ meta. id, meta, saf ] }
550- .set { ch_ip_saf }
551-
552- ch_ip_control_bam
553- .map { meta, ip_bam, control_bam -> [ meta. antibody, meta, ip_bam ] }
554- .groupTuple()
555- .map { it -> [ it[0 ], it[1 ][0 ], it[2 ]. flatten(). sort() ] }
556- .join(ch_ip_saf)
579+ .map {
580+ meta, saf ->
581+ [ meta. id, meta, saf ]
582+ }
583+ .join(ch_antibody_bams)
557584 .map {
558- it ->
559- def fmeta = it[1 ]
560- fmeta[' id' ] = it[3 ][' id' ]
561- fmeta[' replicates_exist' ] = it[3 ][' replicates_exist' ]
562- fmeta[' multiple_groups' ] = it[3 ][' multiple_groups' ]
563- [ fmeta, it[2 ], it[4 ] ] }
564- .set { ch_ip_bam }
585+ antibody, meta, saf, bams ->
586+ [ meta, bams. flatten(). sort(), saf ]
587+ }
588+ .set { ch_saf_bams }
565589
566590 SUBREAD_FEATURECOUNTS (
567- ch_ip_bam
591+ ch_saf_bams
568592 )
569593 ch_subreadfeaturecounts_multiqc = SUBREAD_FEATURECOUNTS . out. summary
570594 ch_versions = ch_versions. mix(SUBREAD_FEATURECOUNTS . out. versions. first())
@@ -590,13 +614,21 @@ workflow CHIPSEQ {
590614 ch_macs2_peaks. collect{it[1 ]}. ifEmpty([]),
591615 ch_macs2_consensus_bed_lib. collect{it[1 ]}. ifEmpty([]),
592616 { " ${ params.aligner} /mergedLibrary/bigwig" },
593- { [" ${ params.aligner} /mergedLibrary/macs2" ,
594- params. narrow_peak? ' /narrowPeak' : ' /broadPeak'
595- ]. join(' ' ) },
596- { [" ${ params.aligner} /mergedLibrary/macs2" ,
597- params. narrow_peak? ' /narrowPeak' : ' /broadPeak' ,
598- ' /consensus'
599- ]. join(' ' ) }
617+ {
618+ [
619+ " ${ params.aligner} /mergedLibrary/macs2" ,
620+ params. narrow_peak ? ' /narrowPeak' : ' /broadPeak'
621+ ]
622+ .join(' ' )
623+ },
624+ {
625+ [
626+ " ${ params.aligner} /mergedLibrary/macs2" ,
627+ params. narrow_peak ? ' /narrowPeak' : ' /broadPeak' ,
628+ ' /consensus'
629+ ]
630+ .join(' ' )
631+ }
600632 )
601633 ch_versions = ch_versions. mix(IGV . out. versions)
602634 }
0 commit comments