Skip to content
Snippets Groups Projects
main.nf 1.73 KiB
Newer Older
// SPDX-FileCopyrightText: 2022 Laurent Modolo <laurent.modolo@ens-lyon.fr>
//
// SPDX-License-Identifier: AGPL-3.0-or-later

Laurent Modolo's avatar
Laurent Modolo committed
version = "0.6.0"
container_url = "lbmc/rasusa:${version}"
Laurent Modolo's avatar
Laurent Modolo committed

include { index_fasta } from "./../samtools/main.nf"

params.sample_fastq = ""
params.sample_fastq_coverage = ""
Laurent Modolo's avatar
Laurent Modolo committed
params.sample_fastq_size = ""
params.sample_fastq_out = ""
workflow sample_fastq {
  take:
  fastq
  fasta

  main:
  if (params.sample_fastq_coverage == "" && params.sample_fastq_size == ""){
    fastq
      .set{ final_fastq }
  } else {
    index_fasta(fasta)
    sub_sample_fastq(fastq, index_fasta.out.index)
    sub_sample_fastq.out.fastq
      .set{ final_fastq }
  }
  fastq = final_fastq
Laurent Modolo's avatar
Laurent Modolo committed

}

process sub_sample_fastq {
  container = "${container_url}"
  label "small_mem_mono_cpus"
Laurent Modolo's avatar
Laurent Modolo committed
  tag "$file_id"
  if (params.index_fasta_out != "") {
    publishDir "results/${params.sample_fastq_out}", mode: 'copy'
Laurent Modolo's avatar
Laurent Modolo committed
  }

  input:
    tuple val(file_id), path(fastq)
    tuple val(index_id), path(idx)
Laurent Modolo's avatar
Laurent Modolo committed

  output:
    tuple val(file_id), path("sub_*.fastq.gz"), emit: fastq

  script:

  switch(file_id) {
    case {it instanceof List}:
      file_prefix = file_id[0]
    break
    case {it instanceof Map}:
      file_prefix = file_id.values()[0]
    break
    default:
      file_prefix = file_id
    break
  }

  sample_option = "-c " + params.sample_fastq_coverage
  if (params.sample_fastq_size != ""){
    sample_option = "-b " + params.sample_fastq_size
  }

  if (fastq.size() == 2)
"""
rasusa \
  -i ${fastq[0]} ${fastq[1]} \
  -g ${idx} \
  ${sample_option} \
  -o sub_${fastq[0].simpleName}.fastq.gz sub_${fastq[1].simpleName}.fastq.gz
"""
  else
"""
rasusa \
  -i ${fastq} \
Laurent Modolo's avatar
Laurent Modolo committed
  -g ${idx} \
  ${sample_option} \
  -o sub_${fastq.simpleName}.fastq.gz
"""
}