Config files for the different nextflow profiles

Are detailed here the different config files that are automatically generated by the install process.

cluster

The cluster.config contains the information to submit the jobs on a computing cluster.

/*
 * -------------------------------------------------
 *  Config the cluster profile and your scheduler
 * -------------------------------------------------
 */

process {
  executor = 'slurm'
  queue = params.queue ?: null
}

conda

Are listed in the conda.config file only the tools available in conda.

conda {
  cacheDir = "${params.condaCacheDir}"
  createTimeout = '1 h'
}

process {

  beforeScript = "export R_LIBS_USER=\"-\"; export R_PROFILE_USER=\"-\"; export R_ENVIRON_USER=\"-\"; export PYTHONNOUSERSITE=1; export PATH=$PATH:${projectDir}/bin/fromSource"

  withLabel:fastqc{ conda = "${projectDir}/environment.yml" }
  withLabel:multiqc{ conda = "${projectDir}/environment.yml" }
  withLabel:python{ conda = "${projectDir}/environment.yml" }
  withLabel:renvGlad{ conda = "${params.geniac.tools?.renvGlad.env}" }
  withLabel:trickySoftware{ conda = "${projectDir}/environment.yml" }
}

docker

All the tools are listed in the docker.config file.

docker {
  enabled = true
  runOptions = "${params.geniac.containers?.dockerRunOptions} -v \$PWD:/tmp -v \$PWD:/var/tmp -v ${params.genomeAnnotationPath?:''}:${params.genomeAnnotationPath?:''} "
}

process {
  withLabel:alpine{ container = "alpine" }
  withLabel:fastqc{ container = "fastqc" }
  withLabel:helloWorld{ container = "helloworld" }
  withLabel:multiqc{ container = "multiqc" }
  withLabel:onlyLinux{ container = "onlylinux" }
  withLabel:python{ container = "python" }
  withLabel:renvGlad{ container = "renvglad" }
  withLabel:trickySoftware{ container = "trickysoftware" }
}

multiconda

Are listed in the multiconda.config file only the tools available in conda.

conda {
  cacheDir = "${params.condaCacheDir}"
  createTimeout = '1 h'
}

process {

  beforeScript = "export R_LIBS_USER=\"-\"; export R_PROFILE_USER=\"-\"; export R_ENVIRON_USER=\"-\"; export PYTHONNOUSERSITE=1; export PATH=$PATH:${projectDir}/bin/fromSource"

  withLabel:fastqc{ conda = "${params.geniac.tools?.fastqc}" }
  withLabel:multiqc{ conda = "${params.geniac.tools?.multiqc}" }
  withLabel:python{ conda = "${params.geniac.tools?.python}" }
  withLabel:renvGlad{ conda = "${params.geniac.tools?.renvGlad.env}" }
  withLabel:trickySoftware{ conda = "${params.geniac.tools?.trickySoftware}" }
}

multipath

All the tools but onlyLinux are listed in the multipath.config file.

def checkProfileMultipath(path){
  if (new File(path).exists()){
    File directory = new File(path)
    def contents = []
    directory.eachFileRecurse (groovy.io.FileType.FILES){ file -> contents << file }
    if (!path?.trim() || contents == null || contents.size() == 0){
      println "   ### ERROR ###   The option '-profile multipath' requires the configuration of each tool path. See `--globalPath` for advanced usage."
      System.exit(-1)
    }
  }else{
    println "   ### ERROR ###   The option '-profile multipath' requires the configuration of each tool path. See `--globalPath` for advanced usage."
    System.exit(-1)
  }
}

singularity {
  enabled = false
}

docker {
  enabled = false
}

process {
  checkProfileMultipath("${params.geniac.multiPath}")
  withLabel:alpine{ beforeScript = "export PATH=${params.geniac.multiPath}/alpine/bin:$PATH" }
  withLabel:fastqc{ beforeScript = "export PATH=${params.geniac.multiPath}/fastqc/bin:$PATH" }
  withLabel:helloWorld{ beforeScript = "export PATH=${params.geniac.multiPath}/helloWorld/bin:$PATH" }
  withLabel:multiqc{ beforeScript = "export PATH=${params.geniac.multiPath}/multiqc/bin:$PATH" }
  withLabel:python{ beforeScript = "export PATH=${params.geniac.multiPath}/python/bin:$PATH" }
  withLabel:renvGlad{ beforeScript = "export PATH=${params.geniac.multiPath}/renvGlad/bin:$PATH" }
  withLabel:trickySoftware{ beforeScript = "export PATH=${params.geniac.multiPath}/trickySoftware/bin:$PATH" }
}

path

All the tools but onlyLinux are listed in the path.config file.

def checkProfilePath(path){
  if (new File(path).exists()){
    File directory = new File(path)
    def contents = []
    directory.eachFileRecurse (groovy.io.FileType.FILES){ file -> contents << file }
    if (!path?.trim() || contents == null || contents.size() == 0){
      println "   ### ERROR ###   The option '-profile path' requires the configuration of each tool path. See `--globalPath` for advanced usage."
      System.exit(-1)
    }
  }else{
    println "   ### ERROR ###   The option '-profile path' requires the configuration of each tool path. See `--globalPath` for advanced usage."
    System.exit(-1)
  }
}

singularity {
  enabled = false
}

docker {
  enabled = false
}

process {
  checkProfilePath("${params.geniac.path}")
  beforeScript = "export PATH=${params.geniac.path}:$PATH"
}

podman

All the tools are listed in the podman.config file.

podman {
  enabled = true
  runOptions = "${params.geniac.containers?.podmanRunOptions} -v \$PWD:/tmp -v \$PWD:/var/tmp -v ${params.genomeAnnotationPath?:''}:${params.genomeAnnotationPath?:''} "
}

process {
  withLabel:alpine{ container = "alpine" }
  withLabel:fastqc{ container = "fastqc" }
  withLabel:helloWorld{ container = "helloworld" }
  withLabel:multiqc{ container = "multiqc" }
  withLabel:onlyLinux{ container = "onlylinux" }
  withLabel:python{ container = "python" }
  withLabel:renvGlad{ container = "renvglad" }
  withLabel:trickySoftware{ container = "trickysoftware" }
}

singularity

All the tools are listed in the singularity.config file.

import java.io.File;

def checkProfileSingularity(path){
  if (new File(path).exists()){
    File directory = new File(path)
    def contents = []
    directory.eachFileRecurse (groovy.io.FileType.FILES){ file -> contents << file }
    if (!path?.trim() || contents == null || contents.size() == 0){
      System.out.println("   ### ERROR ###    The option '-profile singularity' requires the singularity images to be installed on your system. See `--singularityImagePath` for advanced usage.");
      System.exit(-1)
    }
  } else {
    System.out.println("   ### ERROR ###    The option '-profile singularity' requires the singularity images to be installed on your system. See `--singularityImagePath` for advanced usage.");
    System.exit(-1)
  }
}

singularity {
  enabled = true
  autoMounts = true
  runOptions = (params.geniac.containers?.singularityRunOptions ?: '')
}

process {
  checkProfileSingularity("${params.geniac.singularityImagePath}")
  withLabel:alpine{ container = "${params.geniac.singularityImagePath}/alpine.sif" }
  withLabel:fastqc{ container = "${params.geniac.singularityImagePath}/fastqc.sif" }
  withLabel:helloWorld{ container = "${params.geniac.singularityImagePath}/helloworld.sif" }
  withLabel:multiqc{ container = "${params.geniac.singularityImagePath}/multiqc.sif" }
  withLabel:onlyLinux{ container = "${params.geniac.singularityImagePath}/onlylinux.sif" }
  withLabel:python{ container = "${params.geniac.singularityImagePath}/python.sif" }
  withLabel:renvGlad{ container = "${params.geniac.singularityImagePath}/renvglad.sif" }
  withLabel:trickySoftware{ container = "${params.geniac.singularityImagePath}/trickysoftware.sif" }
}