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" }
}