From ada04928fc2e93fa7fa7676ef6191f79bc17ebb4 Mon Sep 17 00:00:00 2001 From: nservant <nicolas.servant@curie.fr> Date: Thu, 15 Apr 2021 16:29:41 +0200 Subject: [PATCH] [OUTPUT] change output organisation --- main.nf | 58 +++++++++++++++++++++----------------------- nextflow_schema.json | 4 +-- 2 files changed, 29 insertions(+), 33 deletions(-) diff --git a/main.nf b/main.nf index 177050a..3ce53af 100644 --- a/main.nf +++ b/main.nf @@ -302,10 +302,7 @@ Channel.from(summary.collect{ [it.key, it.value] }) process get_software_versions { publishDir "${params.outdir}/pipeline_info", mode: params.publish_dir_mode, - saveAs: { filename -> - if (filename.indexOf('.csv') > 0) filename - else null - } + saveAs: { filename -> if (filename.indexOf('.csv') > 0) filename else null } output: file 'software_versions_mqc.yaml' into ch_software_versions_yaml @@ -331,7 +328,7 @@ if(!params.bwt2_index && params.fasta){ process makeBowtie2Index { tag "$fasta_base" label 'process_highmem' - publishDir path: { params.save_reference ? "${params.outdir}/reference_genome" : params.outdir }, + publishDir path: { params.save_reference ? "${params.outdir}/reference_genome" : params.outdir }, saveAs: { params.save_reference ? it : null }, mode: params.publish_dir_mode input: @@ -355,7 +352,7 @@ if(!params.chromosome_size && params.fasta){ process makeChromSize { tag "$fasta" label 'process_low' - publishDir path: { params.save_reference ? "${params.outdir}/reference_genome" : params.outdir }, + publishDir path: { params.save_reference ? "${params.outdir}/reference_genome" : params.outdir }, saveAs: { params.save_reference ? it : null }, mode: params.publish_dir_mode input: @@ -403,8 +400,8 @@ if(!params.restriction_fragments && params.fasta && !params.dnase){ process bowtie2_end_to_end { tag "$sample" label 'process_medium' - publishDir path: { params.save_aligned_intermediates ? "${params.outdir}/hicpro/mapping" : params.outdir }, - saveAs: { params.save_aligned_intermediates ? it : null }, mode: params.publish_dir_mode + publishDir path: { params.save_aligned_intermediates ? "${params.outdir}/mapping/bwt2_end2end" : params.outdir }, + saveAs: { filename -> if (params.save_aligned_intermediates) filename }, mode: params.publish_dir_mode input: set val(sample), file(reads) from raw_reads @@ -443,9 +440,9 @@ process bowtie2_end_to_end { process trim_reads { tag "$sample" label 'process_low' - publishDir path: { params.save_aligned_intermediates ? "${params.outdir}/hicpro/mapping" : params.outdir }, - saveAs: { params.save_aligned_intermediates ? it : null }, mode: params.publish_dir_mode - + publishDir path: { params.save_aligned_intermediates ? "${params.outdir}/mapping/bwt2_trimmed" : params.outdir }, + saveAs: { filename -> if (params.save_aligned_intermediates) filename }, mode: params.publish_dir_mode + when: !params.dnase @@ -467,8 +464,8 @@ process trim_reads { process bowtie2_on_trimmed_reads { tag "$sample" label 'process_medium' - publishDir path: { params.save_aligned_intermediates ? "${params.outdir}/hicpro/mapping" : params.outdir }, - saveAs: { params.save_aligned_intermediates ? it : null }, mode: params.publish_dir_mode + publishDir path: { params.save_aligned_intermediates ? "${params.outdir}/mapping/bwt2_trimmed" : params.outdir }, + saveAs: { filename -> if (params.save_aligned_intermediates) filename }, mode: params.publish_dir_mode when: !params.dnase @@ -496,8 +493,9 @@ if (!params.dnase){ process bowtie2_merge_mapping_steps{ tag "$prefix = $bam1 + $bam2" label 'process_medium' - publishDir path: { params.save_aligned_intermediates ? "${params.outdir}/hicpro/mapping" : params.outdir }, - saveAs: { params.save_aligned_intermediates ? it : null }, mode: params.publish_dir_mode + publishDir "${params.outdir}/hicpro/mapping", mode: params.publish_dir_mode, + saveAs: { filename -> if (params.save_aligned_intermediates && filename.endsWith("stat")) "stats/$filename" + else if (params.save_aligned_intermediates) filename} input: set val(prefix), file(bam1), file(bam2) from end_to_end_bam.join( trimmed_bam ).dump(tag:'merge') @@ -507,9 +505,7 @@ if (!params.dnase){ set val(oname), file("${prefix}.mapstat") into all_mapstat script: - //sample = prefix.toString() - ~/(_R1|_R2|_val_1|_val_2|_1|_2)/ sample = prefix.toString() - ~/(_R1|_R2)/ - //tag = prefix.toString() =~/_R1|_val_1|_1/ ? "R1" : "R2" tag = prefix.toString() =~/_R1/ ? "R1" : "R2" oname = prefix.toString() - ~/(\.[0-9]+)$/ """ @@ -539,8 +535,9 @@ if (!params.dnase){ process dnase_mapping_stats{ tag "$sample = $bam" label 'process_medium' - publishDir path: { params.save_aligned_intermediates ? "${params.outdir}/hicpro/mapping" : params.outdir }, - saveAs: { params.save_aligned_intermediates ? it : null }, mode: params.publish_dir_mode + publishDir "${params.outdir}/hicpro/mapping", mode: params.publish_dir_mode, + saveAs: { filename -> if (params.save_aligned_intermediates && filename.endsWith("stat")) "stats/$filename" + else if (params.save_aligned_intermediates) filename} input: set val(prefix), file(bam) from end_to_end_bam @@ -572,7 +569,7 @@ process combine_mates{ tag "$sample = $r1_prefix + $r2_prefix" label 'process_low' publishDir "${params.outdir}/hicpro/mapping", mode: params.publish_dir_mode, - saveAs: {filename -> filename.indexOf(".pairstat") > 0 ? "stats/$filename" : "$filename"} + saveAs: {filename -> filename.endsWith(".pairstat") ? "stats/$filename" : "$filename"} input: set val(sample), file(aligned_bam) from bwt2_merged_bam.groupTuple().dump(tag:'mates') @@ -608,7 +605,7 @@ if (!params.dnase){ tag "$sample" label 'process_low' publishDir "${params.outdir}/hicpro/valid_pairs", mode: params.publish_dir_mode, - saveAs: {filename -> filename.indexOf(".stat") > 0 ? "stats/$filename" : "$filename"} + saveAs: {filename -> filename.endsWith("stat") ? "stats/$filename" : "$filename"} input: set val(sample), file(pe_bam) from paired_bam @@ -647,7 +644,7 @@ else{ tag "$sample" label 'process_low' publishDir "${params.outdir}/hicpro/valid_pairs", mode: params.publish_dir_mode, - saveAs: {filename -> filename.indexOf(".stat") > 0 ? "stats/$filename" : "$filename"} + saveAs: {filename -> filename.endsWith(".stat") ? "stats/$filename" : "$filename"} input: set val(sample), file(pe_bam) from paired_bam @@ -678,11 +675,10 @@ else{ process remove_duplicates { tag "$sample" label 'process_highmem' - publishDir "${params.outdir}/hicpro/valid_pairs", mode: params.publish_dir_mode, - saveAs: {filename -> filename.indexOf(".stat") > 0 ? "stats/$sample/$filename" : "$filename"} + publishDir "${params.outdir}/hicpro/valid_pairs", mode: params.publish_dir_mode input: - set val(sample), file(vpairs) from valid_pairs.groupTuple().dump(tag:'final') + set val(sample), file(vpairs) from valid_pairs.groupTuple() output: set val(sample), file("*.allValidPairs") into ch_vpairs, ch_vpairs_cool @@ -724,13 +720,13 @@ process remove_duplicates { process merge_stats { tag "$ext" label 'process_low' - publishDir "${params.outdir}/hicpro/stats/${sample}", mode: params.publish_dir_mode + publishDir "${params.outdir}/hicpro/", mode: params.publish_dir_mode input: set val(prefix), file(fstat) from all_mapstat.groupTuple().concat(all_pairstat.groupTuple(), all_rsstat.groupTuple()) output: - file("mstats/${sample}/*") into all_mstats + file("stats/") into all_mstats script: sample = prefix.toString() - ~/(_R1|_R2|_val_1|_val_2|_1|_2)/ @@ -738,8 +734,8 @@ process merge_stats { if ( (fstat =~ /.pairstat/) ){ ext = "mpairstat" } if ( (fstat =~ /.RSstat/) ){ ext = "mRSstat" } """ - mkdir -p mstats/${sample} - merge_statfiles.py -f ${fstat} > mstats/${sample}/${prefix}.${ext} + mkdir -p stats/${sample} + merge_statfiles.py -f ${fstat} > stats/${sample}/${prefix}.${ext} """ } @@ -828,7 +824,7 @@ process cooler_raw { label 'process_medium' publishDir "${params.outdir}/contact_maps/", mode: 'copy', - saveAs: {filename -> filename.indexOf(".cool") > 0 ? "raw/cool/$filename" : "raw/txt/$filename"} + saveAs: {filename -> filename.endsWith(".cool") ? "raw/cool/$filename" : "raw/txt/$filename"} input: set val(sample), file(contacts), val(res) from cool_build.combine(map_res_cool) @@ -851,7 +847,7 @@ process cooler_balance { label 'process_medium' publishDir "${params.outdir}/contact_maps/", mode: 'copy', - saveAs: {filename -> filename.indexOf(".cool") > 0 ? "norm/cool/$filename" : "norm/txt/$filename"} + saveAs: {filename -> filename.endsWith(".cool") ? "norm/cool/$filename" : "norm/txt/$filename"} when: !params.skip_balancing diff --git a/nextflow_schema.json b/nextflow_schema.json index 93591e7..849c92e 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -225,7 +225,7 @@ "description": "Resolution to build the maps (comma separated)" }, "hicpro_maps": { - "type": "string", + "type": "boolean", "description": "Generate raw and normalized contact maps with HiC-Pro" }, "ice_filter_low_count_perc": { @@ -535,4 +535,4 @@ "$ref": "#/definitions/institutional_config_options" } ] -} \ No newline at end of file +} -- GitLab