nextflowVersion = '>=20'

manifest {
    homePage = 'https://gitbio.ens-lyon.fr/LBMC/Delattre/kmer-diff'
    description = 'pipeline to quantify kmers'
    mainScript = 'main.nf'
    version = '0.0.1'
}

report {
  enabled = true
  file = "$baseDir/../results/report.html"
}

profiles {
  psmn {
    charliecloud.enabled = true
    charliecloud.cacheDir = "/Xnfs/abc/charliecloud"
    charliecloud.readOnlyInputs = true
    charliecloud.runOptions = "--bind /scratch:/scratch --bind /Xnfs:/Xnfs --bind /home:/home"

    process{
      errorStrategy = { sleep(Math.pow(2, task.attempt) * 200 as long); return 'retry' }
      maxRetries = 3
      executor = "slurm"
      queue = "Lake"
      withLabel: big_mem_mono_cpus {
        cpus = 1
        memory = "128GB"
        time = "24h"
      }
      withLabel: big_mem_multi_cpus {
        cpus = 32
        memory = "192GB"
        time = "24h"
      }
      withLabel: small_mem_mono_cpus {
        cpus = 1
        memory = "16GB"
        time = "24h"
      }
      withLabel: small_mem_multi_cpus {
        cpus = 32
        memory = "16GB"
        time = "24h"
      }
    }
  }
  singularity {
    singularity.enabled = true
    singularity.cacheDir = "./bin/"
    singularity.runOptions = "--bind /media:/media"
    process {
    //  errorStrategy = 'retry'
      memory = '16GB'
      withLabel: big_mem_mono_cpus {
        cpus = 1
      }
      withLabel: big_mem_multi_cpus {
        cpus = 4
      }
      withLabel: small_mem_mono_cpus {
        cpus = 1
        memory = '2GB'
      }
      withLabel: small_mem_multi_cpus {
        cpus = 4
        memory = '2GB'
      }
    }
  }
}