From fd494cd58ab7a994d75e34fdc2477b24d239b155 Mon Sep 17 00:00:00 2001
From: Laurent Modolo <laurent.modolo@ens-lyon.fr>
Date: Wed, 14 Apr 2021 18:20:26 +0200
Subject: [PATCH] bowtie2: update to match contributing.md

---
 src/nf_modules/bowtie2/main.nf | 155 ++++++++++-----------------------
 1 file changed, 47 insertions(+), 108 deletions(-)

diff --git a/src/nf_modules/bowtie2/main.nf b/src/nf_modules/bowtie2/main.nf
index a626d4f3..b9053c71 100644
--- a/src/nf_modules/bowtie2/main.nf
+++ b/src/nf_modules/bowtie2/main.nf
@@ -2,17 +2,21 @@ version = "2.3.4.1"
 container_url = "lbmc/bowtie2:${version}"
 
 params.index_fasta = ""
+params.index_fasta_out = ""
 process index_fasta {
   container = "${container_url}"
   label "big_mem_multi_cpus"
-  tag "$fasta.baseName"
+  tag "$file_id"
+  if (params.index_fasta_out != "") {
+    publishDir "results/${params.index_fasta_out}", mode: 'copy'
+  }
 
   input:
-    path fasta
+    tuple val(file_id), path(fasta)
 
   output:
-    path "*.index*", emit: index
-    path "*_report.txt", emit: report
+    tuple val(file_id), path("*.index*"), emit: index
+    tuple val(file_id), path("*_report.txt"), emit: report
 
   script:
 """
@@ -28,64 +32,14 @@ fi
 }
 
 params.mapping_fastq = "--very-sensitive"
+params.mapping_fastq_out = ""
 process mapping_fastq {
   container = "${container_url}"
   label "big_mem_multi_cpus"
-  tag "$pair_id"
-
-  input:
-  path index
-  tuple val(pair_id), path(reads)
-
-  output:
-  tuple val(pair_id), path("*.bam"), emit: bam
-  path "*_report.txt", emit: report
-
-  script:
-  index_id = index[0]
-  for (index_file in index) {
-    if (index_file =~ /.*\.1\.bt2/ && !(index_file =~ /.*\.rev\.1\.bt2/)) {
-        index_id = ( index_file =~ /(.*)\.1\.bt2/)[0][1]
-    }
+  tag "$file_id"
+  if (params.mapping_fastq_out != "") {
+    publishDir "results/${params.mapping_fastq_out}", mode: 'copy'
   }
-if (reads instanceof List)
-"""
-bowtie2 ${params.mapping_fastq} \
-  -p ${task.cpus} \
-  -x ${index_id} \
-  -1 ${reads[0]} \
-  -2 ${reads[1]} 2> \
-  ${pair_id}_bowtie2_mapping_report_tmp.txt | \
-  samtools view -Sb - > ${pair_id}.bam
-
-if grep -q "Error" ${pair_id}_bowtie2_mapping_report_tmp.txt; then
-  exit 1
-fi
-tail -n 19 ${pair_id}_bowtie2_mapping_report_tmp.txt > \
-  ${pair_id}_bowtie2_mapping_report.txt
-"""
-else
-"""
-bowtie2 ${params.mapping_fastq} \
-  -p ${task.cpus} \
-  -x ${index_id} \
-  -U ${reads} 2> \
-  ${reads.baseName}_bowtie2_mapping_report_tmp.txt | \
-  samtools view -Sb - > ${reads.baseName}.bam
-
-if grep -q "Error" ${reads.baseName}_bowtie2_mapping_report_tmp.txt; then
-  exit 1
-fi
-tail -n 19 ${reads.baseName}_bowtie2_mapping_report_tmp.txt > \
-  ${reads.baseName}_bowtie2_mapping_report.txt
-"""
-}
-
-params.mapping_fastq_pairedend = "--very-sensitive"
-process mapping_fastq_pairedend {
-  container = "${container_url}"
-  label "big_mem_multi_cpus"
-  tag "$pair_id"
 
   input:
   path index
@@ -102,56 +56,41 @@ process mapping_fastq_pairedend {
         index_id = ( index_file =~ /(.*)\.1\.bt2/)[0][1]
     }
   }
-"""
-bowtie2 ${params.mapping_fastq_pairedend} \
-  -p ${task.cpus} \
-  -x ${index_id} \
-  -1 ${reads[0]} \
-  -2 ${reads[1]} 2> \
-  ${pair_id}_bowtie2_mapping_report_tmp.txt | \
-  samtools view -Sb - > ${pair_id}.bam
-
-if grep -q "Error" ${pair_id}_bowtie2_mapping_report_tmp.txt; then
-  exit 1
-fi
-tail -n 19 ${pair_id}_bowtie2_mapping_report_tmp.txt > \
-  ${pair_id}_bowtie2_mapping_report.txt
-"""
-}
-
-params.mapping_fastq_singleend = "--very-sensitive"
-process mapping_fastq_singleend {
-  container = "${container_url}"
-  label "big_mem_multi_cpus"
-  tag "$file_id"
-
-  input:
-  path index
-  tuple val(file_id), path(reads)
-
-  output:
-  tuple val(file_id), path("*.bam"), emit: bam
-  path "*_report.txt", emit: report
-
-  script:
-  index_id = index[0]
-  for (index_file in index) {
-    if (index_file =~ /.*\.1\.bt2/ && !(index_file =~ /.*\.rev\.1\.bt2/)) {
-        index_id = ( index_file =~ /(.*)\.1\.bt2/)[0][1]
-    }
+  if (file_id instanceof List){
+    file_prefix = file_id[0]
+  } else {
+    file_prefix = file_id
   }
-"""
-bowtie2 ${params.mapping_fastq_singleend} \
-  -p ${task.cpus} \
-  -x ${index_id} \
-  -U ${reads} 2> \
-  ${reads.baseName}_bowtie2_mapping_report_tmp.txt | \
-  samtools view -Sb - > ${reads.baseName}.bam
 
-if grep -q "Error" ${reads.baseName}_bowtie2_mapping_report_tmp.txt; then
-  exit 1
-fi
-tail -n 19 ${reads.baseName}_bowtie2_mapping_report_tmp.txt > \
-  ${reads.baseName}_bowtie2_mapping_report.txt
-"""
+  if (reads.size() == 2)
+  """
+  bowtie2 ${params.mapping_fastq} \
+    -p ${task.cpus} \
+    -x ${index_id} \
+    -1 ${reads[0]} \
+    -2 ${reads[1]} 2> \
+    ${file_prefix}_bowtie2_mapping_report_tmp.txt | \
+    samtools view -Sb - > ${file_prefix}.bam
+
+  if grep -q "Error" ${file_prefix}_bowtie2_mapping_report_tmp.txt; then
+    exit 1
+  fi
+  tail -n 19 ${file_prefix}_bowtie2_mapping_report_tmp.txt > \
+    ${file_prefix}_bowtie2_mapping_report.txt
+  """
+  else if (reads.size() == 1)
+  """
+  bowtie2 ${params.mapping_fastq} \
+    -p ${task.cpus} \
+    -x ${index_id} \
+    -U ${reads} 2> \
+    ${file_prefix}_bowtie2_mapping_report_tmp.txt | \
+    samtools view -Sb - > ${file_prefix}.bam
+
+  if grep -q "Error" ${file_prefix}_bowtie2_mapping_report_tmp.txt; then
+    exit 1
+  fi
+  tail -n 19 ${file_prefix}_bowtie2_mapping_report_tmp.txt > \
+    ${file_prefix}_bowtie2_mapping_report.txt
+  """
 }
-- 
GitLab