Skip to content
Snippets Groups Projects
main.nf 1.98 KiB
Newer Older
version = "0.7.17"
container_url = "lbmc/bwa:${version}"

params.index_fasta = ""
params.index_fasta_out = ""
process index_fasta {
  container = "${container_url}"
  label "big_mem_mono_cpus"
  tag "$file_id"
  if (params.index_fasta_out != "") {
    publishDir "results/${params.index_fasta_out}", mode: 'copy'
  }

  input:
    tuple val(file_id), path(fasta)

  output:
Laurent Modolo's avatar
Laurent Modolo committed
    tuple val(file_id), path("${fasta.simpleName}.*"), emit: index
    tuple val(file_id), path("*_bwa_report.txt"), emit: report
bwa index ${params.index_fasta} -p ${fasta.simpleName} ${fasta} \
&> ${fasta.simpleName}_bwa_report.txt
"""
}


params.mapping_fastq = ""
params.mapping_fastq_out = ""
process mapping_fastq {
  container = "${container_url}"
  label "big_mem_multi_cpus"
  tag "$file_id"
  if (params.mapping_fastq_out != "") {
    publishDir "results/${params.mapping_fastq_out}", mode: 'copy'
  }

  input:
  tuple val(index_id), path(index)
  tuple val(file_id), path(reads)

  output:
  tuple val(file_id), path("*.bam"), emit: bam
  tuple val(file_id), path("${file_prefix}_bwa_report.txt"), emit: report
  if (file_id instanceof List){
    library = file_id[0]
    file_prefix = file_id[0]
Laurent Modolo's avatar
Laurent Modolo committed
  } else if (file_id instanceof Map) {
      library = file_id[0]
      file_prefix = file_id[0]
      if (file_id.containsKey('library')) {
        library = file_id.library
        file_prefix = file_id.id
      }
    library = file_id
    file_prefix = file_id
  }
Laurent Modolo's avatar
Laurent Modolo committed
bwa_mem_R = "@RG\\tID:${library}\\tSM:${library}\\tLB:lib_${library}\\tPL:illumina"
  if (reads.size() == 2)
"""
bwa mem -t ${task.cpus} \
Laurent Modolo's avatar
Laurent Modolo committed
${params.mapping_fastq} \
Laurent Modolo's avatar
Laurent Modolo committed
-R '${bwa_mem_R}' \
${index_id} ${reads[0]} ${reads[1]} 2> \
  ${file_prefix}_bwa_report.txt | \
  samtools view -@ ${task.cpus} -Sb - > ${file_prefix}.bam
"""
bwa mem -t ${task.cpus} \
Laurent Modolo's avatar
Laurent Modolo committed
${params.mapping_fastq} \
-R '${bwa_mem_R}' \
${index_id} ${reads} 2> \
  ${file_prefix}_bwa_report.txt | \
  samtools view -@ ${task.cpus} -Sb - > ${file_prefix}.bam