diff --git a/src/nf_modules/flexi_splitter/main.nf b/src/nf_modules/flexi_splitter/main.nf index 42d405af8a2a776dffbbdf4bb82233763923439f..c1b82af1eec766e5633daa1110a724d6399158c6 100644 --- a/src/nf_modules/flexi_splitter/main.nf +++ b/src/nf_modules/flexi_splitter/main.nf @@ -4,11 +4,26 @@ container_url = "lbmc/flexi_splitter:${version}" params.split = "" params.split_out = "" -process split { + +workflow split { + take: + reads + config + main: + split_file(reads, config) + split_file.out.fastq.view() + + + + emit: + fastq = split_file.out.fastq +} + +process split_file { // You can get an example of config file here: // src/nf_modules/flexi_splitter/marseq_flexi_splitter.yaml container = "${container_url}" - label "big_mem_multi_cpus" + label "big_mem_mono_cpus" tag "$file_prefix" if (params.split_out != "") { publishDir "results/${params.split_out}", mode: 'copy' @@ -19,7 +34,7 @@ process split { tuple val(config_id), path(config) output: - tuple val(file_id), path("*"), emit: fastq + tuple val(file_id), path("split/*/*"), emit: fastq script: if (file_id instanceof List){ @@ -31,9 +46,25 @@ process split { if (reads.size() == 2) """ flexi_splitter ${params.split} -n 2 -f ${reads[0]},${reads[1]} -o split -c ${config} + rm -Rf split/unassigned + find split -type "f" | \ + sed -E "s|(.*/split/(.*)/(.*))|\1 \2_\3|g" | + awk '{"mv "\$1" "\$2"}' + rm -Rf split + mkdir -p results/ + find split -type "f" | \ + sed -E "s|(.*/split/(.*)/(.*))|\1 \2_\3|g" | + awk '{"mv "\$1" results/"\$2"}' + rm -Rf split """ else """ flexi_splitter ${params.split} -n 1 -f ${reads[0]} -o split -c ${config} + rm -Rf split/unassigned + mkdir -p results/ + find split -type "f" | \ + sed -E "s|(.*/split/(.*)/(.*))|\1 \2_\3|g" | + awk '{"mv "\$1" results/"\$2"}' + rm -Rf split """ }