process { //Default publishDir = [ path: { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] withName: 'CUSTOM_DUMPSOFTWAREVERSIONS' { publishDir = [ path: { "${params.outdir}/pipeline_info" }, mode: 'copy', pattern: '*_versions.yml' ] } //********************************************** // PREPARE_GENOME withName: 'BOWTIE2_BUILD' { publishDir = [ path: { "${params.outdir}/genome/bowtie2" }, mode: 'copy', enabled: params.save_reference ] } withName: 'CUSTOM_GETCHROMSIZES' { publishDir = [ path: { "${params.outdir}/genome" }, mode: 'copy', enabled: params.save_reference ] } withName: 'GET_RESTRICTION_FRAGMENTS' { publishDir = [ path: { "${params.outdir}/genome" }, mode: 'copy', enabled: params.save_reference ] } //******************************************* // HICPRO withName: 'BOWTIE2_ALIGN' { publishDir = [ path: { "${params.outdir}/hicpro/mapping" }, mode: 'copy', enabled: params.save_aligned_intermediates ] ext.prefix = { "${meta.id}_${meta.chunk}_${meta.mates}" } ext.args = params.bwt2_opts_end2end ?: '' ext.args2 = !params.dnase ? "-F 4" :"" } withName: 'TRIM_READS' { publishDir = [ path: { "${params.outdir}/hicpro/mapping/" }, mode: 'copy', enabled: params.save_aligned_intermediates ] } withName: 'BOWTIE2_ALIGN_TRIMMED' { publishDir = [ path: { "${params.outdir}/hicpro/mapping" }, mode: 'copy', enabled: params.save_aligned_intermediates ] ext.prefix = { "${meta.id}_${meta.chunk}_${meta.mates}_trimmed" } ext.args = params.bwt2_opts_trimmed ?: '' ext.args2 = "" } withName: 'MERGE_BOWTIE2' { publishDir = [ path: { "${params.outdir}/hicpro/mapping" }, mode: 'copy', enabled: params.save_aligned_intermediates ] ext.prefix = { "${meta.id}_${meta.chunk}_${meta.mates}" } } withName: 'COMBINE_MATES' { publishDir = [ path: { "${params.outdir}/hicpro/mapping" }, mode: 'copy', pattern: '*.bam' ] ext.args = [ "-t", params.keep_multi ? "--multi" : "", params.min_mapq ? "-q ${params.min_mapq}" : "" ].join(' ').trim() ext.prefix = { "${meta.id}_${meta.chunk}" } } withName: 'GET_VALID_INTERACTION' { publishDir = [ path: { "${params.outdir}/hicpro/valid_pairs" }, saveAs: { filename -> filename.equals('versions.yml') ? null : filename}, mode: 'copy', enabled: params.save_pairs_intermediates ] ext.args = { [ params.min_cis_dist > 0 ? " -d ${params.min_cis_dist}" : '', params.min_insert_size > 0 ? " -s ${params.min_insert_size}" : '', params.max_insert_size > 0 ? " -l ${params.max_insert_size}" : '', params.min_restriction_fragment_size > 0 ? " -t ${params.min_restriction_fragment_size}" : '', params.max_restriction_fragment_size > 0 ? " -m ${params.max_restriction_fragment_size}" : '', params.save_interaction_bam ? " --sam" : '' ].join(' ').trim() } } withName: 'GET_VALID_INTERACTION_DNASE' { publishDir = [ path: { "${params.outdir}/hicpro/valid_pairs" }, saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, mode: 'copy', enabled: params.save_pairs_intermediates ] ext.args = { params.min_cis_dist > 0 ? " -d ${params.min_cis_dist}" : "" } } withName: 'MERGE_VALID_INTERACTION' { publishDir = [ [ path: { "${params.outdir}/hicpro/stats/${meta.id}" }, mode: 'copy', pattern: "*stat" ], [ path: { "${params.outdir}/hicpro/valid_pairs" }, mode: 'copy', saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, pattern: "*Pairs" ] ] ext.args = { params.keep_dups ? '' : '-d' } } withName: 'MERGE_STATS' { publishDir = [ path: { "${params.outdir}/hicpro/stats/${meta.id}" }, saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, mode: 'copy', pattern: "*stat" ] } withName: 'HICPRO2PAIRS' { publishDir = [ path: { "${params.outdir}/hicpro/valid_pairs/pairix/" }, saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, mode: 'copy' ] } withName: 'BUILD_CONTACT_MAPS' { publishDir = [ path: { "${params.outdir}/hicpro/matrix/raw" }, mode: 'copy', enabled: params.hicpro_maps ] } withName: 'ICE_NORMALIZATION' { publishDir = [ path: { "${params.outdir}/hicpro/matrix/iced" }, mode: 'copy', enabled: params.hicpro_maps ] } //***************************************** // QUALITY METRICS withName: 'HIC_PLOT_DIST_VS_COUNTS'{ publishDir = [ path: { "${params.outdir}/distance_decay/" }, saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, mode: 'copy' ] } //***************************************** // COOLER withName: 'COOLER_MAKEBINS' { publishDir = [ path: { "${params.outdir}/contact_maps/bins/" }, saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, mode: 'copy' ] } withName: 'COOLER_CLOAD' { publishDir = [ path: { "${params.outdir}/contact_maps/cool/" }, saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, mode: 'copy', enabled : params.save_raw_maps ] ext.args = "pairs -c1 2 -p1 3 -c2 4 -p2 5" } withName: 'COOLER_BALANCE' { publishDir = [ path: { "${params.outdir}/contact_maps/cool/" }, saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, mode: 'copy' ] ext.args = '--force' ext.prefix = { "${meta.id}_balanced" } } withName: 'COOLER_DUMP' { publishDir = [ enabled: false ] ext.prefix = { "${cool.baseName}" } ext.args = "--one-based-ids --balanced --na-rep 0" } withName:'SPLIT_COOLER_DUMP' { publishDir = [ [ path: { "${params.outdir}/contact_maps/txt/" }, mode: 'copy', pattern: "*_raw.txt", enabled: params.save_raw_maps ], [ path: { "${params.outdir}/contact_maps/txt/" }, mode: 'copy', pattern: "*_balanced.txt" ] ] } withName: 'COOLER_ZOOMIFY' { publishDir = [ path: { "${params.outdir}/contact_maps/cool/" }, saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, mode: 'copy' ] ext.args = "--balance" } //******************************** // COMPARTMENTS withName: 'COOLTOOLS_EIGSCIS' { publishDir = [ path: { "${params.outdir}/compartments/" }, saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, mode: 'copy' ] ext.args = '--bigwig' } //******************************** // TADS withName: 'COOLTOOLS_INSULATION' { publishDir = [ path: { "${params.outdir}/tads/insulation/" }, saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, mode: 'copy' ] ext.args = '15 25 50 --window-pixels' } withName: 'HIC_FIND_TADS' { publishDir = [ path: { "${params.outdir}/tads/hicExplorer" }, saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, mode: 'copy' ] ext.args = '--correctForMultipleTesting fdr' } }