diff --git a/src/nf_modules/macs2/main.nf b/src/nf_modules/macs2/main.nf index 139a8db66029324a2340be8ac9bb7b485e3c0baa..fddb38074775dd825d192bc0831ba455833b397d 100644 --- a/src/nf_modules/macs2/main.nf +++ b/src/nf_modules/macs2/main.nf @@ -1,9 +1,12 @@ version = "2.1.2" container_url = "lbmc/macs2:${version}" +params.macs_gsize=3e9 +params.macs_mfold=[5, 50] + process peak_calling { container = "${container_url}" - label "big_mem_multi_cpus" + label "big_mem_mono_cpus" tag "${file_id}" input: @@ -16,17 +19,54 @@ process peak_calling { script: /* remove --nomodel option for real dataset */ """ -macs2 callpeak \ - --treatment ${file_ip} \ - --call-summits "True"\ - --control ${file_control} \ - --keep-dup "auto" \ +macs3 callpeak \ + --treatment ${bam_ip} \ + --call-summits \ + --control ${bam_control} \ + --keep-dup all \ + --mfold params.macs_mfold[0] params.macs_mfold[1] --name ${bam_ip.simpleName} \ - --gsize ${params.genome_size} 2> \ - ${bam_ip.simpleName}_macs2_report.txt + --gsize ${params.macs_gsize} 2> \ + ${bam_ip.simpleName}_macs3_report.txt + +if grep -q "ERROR" ${bam_ip.simpleName}_macs3_report.txt; then + echo "MACS3 error" + exit 1 +fi +""" +} + +process peak_calling_bg { + container = "${container_url}" + label "big_mem_mono_cpus" + tag "${file_id}" + + input: + tuple val(file_id), path(bg_ip), path(bg_control) + + output: + path "*", emit: peak + path "*_report.txt", emit: report + + script: +/* remove --nomodel option for real dataset */ +""" +awk '{print \$1"\t"\$2"\t"\$3"\t.\t+\t"\$4}' ${bg_ip} > \ + ${bg_ip.simpleName}.bed +awk '{print \$1"\t"\$2"\t"\$3"\t.\t+\t"\$4}' ${bg_control} > \ + ${bg_control.simpleName}.bed +macs3 callpeak \ + --treatment ${bg_ip.simpleName}.bed \ + --call-summits \ + --control ${bg_control.simpleName}.bed \ + --keep-dup all \ + --mfold params.macs_mfold[0] params.macs_mfold[1] + --name ${bg_ip.simpleName} \ + --gsize ${params.macs_gsize} 2> \ + ${bg_ip.simpleName}_macs3_report.txt -if grep -q "ERROR" ${bam_ip.simpleName}_macs2_report.txt; then - echo "MACS2 error" +if grep -q "ERROR" ${bg_ip.simpleName}_macs3_report.txt; then + echo "MACS3 error" exit 1 fi """