version = "0.20.1"
container_url = "lbmc/fastp:${version}"


process fastp_pairedend {
  container = "${container_url}"
  label "big_mem_multi_cpus"
  tag "$pair_id"
  publishDir "results/QC/fastp/", mode: 'copy', pattern: "*.html"

  input:
  tuple val(pair_id), path(reads)

  output:
    tuple val(pair_id), path("*.fastq.gz"), emit: fastq
    tuple val(pair_id), path("*.html"), emit: html
    tuple val(pair_id), path("*.json"), emit: report

  script:
"""
fastp --thread ${task.cpus} \
--qualified_quality_phred 20 \
--disable_length_filtering \
--detect_adapter_for_pe \
--in1 ${reads[0]} \
--in2 ${reads[1]} \
--out1 ${pair_id}_R1_trim.fastq.gz \
--out2 ${pair_id}_R2_trim.fastq.gz \
--html ${pair_id}.html \
--json ${pair_id}_fastp.json \
--report_title ${pair_id}
"""
}

process fastp_singleend {
  container = "${container_url}"
  label "big_mem_multi_cpus"
  tag "$pair_id"
  publishDir "results/QC/fastp/", mode: 'copy', pattern: "*.html"

  input:
  tuple val(pair_id), path(reads)

  output:
    tuple val(pair_id), path("*.fastq.gz"), emit: fastq
    tuple val(pair_id), path("*.html"), emit: html
    tuple val(pair_id), path("*.json"), emit: report

  script:
"""
fastp --thread ${task.cpus} \
--qualified_quality_phred 20 \
--disable_length_filtering \
--detect_adapter_for_pe \
--in1 ${reads} \
--out1 ${pair_id}_trim.fastq.gz \
--html ${pair_id}.html \
--json ${pair_id}_fastp.json \
--report_title ${pair_id}
"""
}