mirror of
https://github.com/MillironX/taxprofiler.git
synced 2024-11-10 21:53:09 +00:00
205 lines
6.8 KiB
Text
205 lines
6.8 KiB
Text
/*
|
|
========================================================================================
|
|
nf-core/taxprofiler Nextflow config file
|
|
========================================================================================
|
|
Default config options for all compute environments
|
|
----------------------------------------------------------------------------------------
|
|
*/
|
|
|
|
// Global default params, used in configs
|
|
params {
|
|
|
|
// TODO nf-core: Specify your pipeline's command line flags
|
|
// Input options
|
|
input = null
|
|
|
|
// References
|
|
genome = null
|
|
igenomes_base = 's3://ngi-igenomes/igenomes'
|
|
igenomes_ignore = false
|
|
|
|
// MultiQC options
|
|
multiqc_config = null
|
|
multiqc_title = null
|
|
max_multiqc_email_size = '25.MB'
|
|
|
|
// Boilerplate options
|
|
outdir = './results'
|
|
tracedir = "${params.outdir}/pipeline_info"
|
|
email = null
|
|
email_on_fail = null
|
|
plaintext_email = false
|
|
monochrome_logs = false
|
|
help = false
|
|
validate_params = true
|
|
show_hidden_params = false
|
|
schema_ignore_params = 'genomes,fasta'
|
|
enable_conda = false
|
|
|
|
// Config options
|
|
custom_config_version = 'master'
|
|
custom_config_base = "https://raw.githubusercontent.com/nf-core/configs/${params.custom_config_version}"
|
|
config_profile_description = null
|
|
config_profile_contact = null
|
|
config_profile_url = null
|
|
config_profile_name = null
|
|
|
|
// Max resource options
|
|
// Defaults only, expecting to be overwritten
|
|
max_memory = '128.GB'
|
|
max_cpus = 16
|
|
max_time = '240.h'
|
|
|
|
// Databaess
|
|
databases = null
|
|
|
|
// FASTQ preprocessing
|
|
fastp_clip_merge = false
|
|
fastp_exclude_unmerged = true
|
|
}
|
|
|
|
// Load base.config by default for all pipelines
|
|
includeConfig 'conf/base.config'
|
|
|
|
// Load nf-core custom profiles from different Institutions
|
|
try {
|
|
includeConfig "${params.custom_config_base}/nfcore_custom.config"
|
|
} catch (Exception e) {
|
|
System.err.println("WARNING: Could not load nf-core/config profiles: ${params.custom_config_base}/nfcore_custom.config")
|
|
}
|
|
|
|
profiles {
|
|
debug { process.beforeScript = 'echo $HOSTNAME' }
|
|
conda {
|
|
params.enable_conda = true
|
|
docker.enabled = false
|
|
singularity.enabled = false
|
|
podman.enabled = false
|
|
shifter.enabled = false
|
|
charliecloud.enabled = false
|
|
}
|
|
docker {
|
|
docker.enabled = true
|
|
docker.userEmulation = true
|
|
singularity.enabled = false
|
|
podman.enabled = false
|
|
shifter.enabled = false
|
|
charliecloud.enabled = false
|
|
}
|
|
singularity {
|
|
singularity.enabled = true
|
|
singularity.autoMounts = true
|
|
docker.enabled = false
|
|
podman.enabled = false
|
|
shifter.enabled = false
|
|
charliecloud.enabled = false
|
|
}
|
|
podman {
|
|
podman.enabled = true
|
|
docker.enabled = false
|
|
singularity.enabled = false
|
|
shifter.enabled = false
|
|
charliecloud.enabled = false
|
|
}
|
|
shifter {
|
|
shifter.enabled = true
|
|
docker.enabled = false
|
|
singularity.enabled = false
|
|
podman.enabled = false
|
|
charliecloud.enabled = false
|
|
}
|
|
charliecloud {
|
|
charliecloud.enabled = true
|
|
docker.enabled = false
|
|
singularity.enabled = false
|
|
podman.enabled = false
|
|
shifter.enabled = false
|
|
}
|
|
test { includeConfig 'conf/test.config' }
|
|
test_full { includeConfig 'conf/test_full.config' }
|
|
}
|
|
|
|
// Load igenomes.config if required
|
|
if (!params.igenomes_ignore) {
|
|
includeConfig 'conf/igenomes.config'
|
|
} else {
|
|
params.genomes = [:]
|
|
}
|
|
|
|
// Export these variables to prevent local Python/R libraries from conflicting with those in the container
|
|
// The JULIA depot path has been adjusted to a fixed path `/usr/local/share/julia` that needs to be used for packages in the container.
|
|
// See https://apeltzer.github.io/post/03-julia-lang-nextflow/ for details on that. Once we have a common agreement on where to keep Julia packages, this is adjustable.
|
|
|
|
env {
|
|
PYTHONNOUSERSITE = 1
|
|
R_PROFILE_USER = "/.Rprofile"
|
|
R_ENVIRON_USER = "/.Renviron"
|
|
JULIA_DEPOT_PATH = "/usr/local/share/julia"
|
|
}
|
|
|
|
// Capture exit codes from upstream processes when piping
|
|
process.shell = ['/bin/bash', '-euo', 'pipefail']
|
|
|
|
def trace_timestamp = new java.util.Date().format( 'yyyy-MM-dd_HH-mm-ss')
|
|
timeline {
|
|
enabled = true
|
|
file = "${params.tracedir}/execution_timeline_${trace_timestamp}.html"
|
|
}
|
|
report {
|
|
enabled = true
|
|
file = "${params.tracedir}/execution_report_${trace_timestamp}.html"
|
|
}
|
|
trace {
|
|
enabled = true
|
|
file = "${params.tracedir}/execution_trace_${trace_timestamp}.txt"
|
|
}
|
|
dag {
|
|
enabled = true
|
|
file = "${params.tracedir}/pipeline_dag_${trace_timestamp}.svg"
|
|
}
|
|
|
|
manifest {
|
|
name = 'nf-core/taxprofiler'
|
|
author = 'nf-core community'
|
|
homePage = 'https://github.com/nf-core/taxprofiler'
|
|
description = 'Taxonomic profiling of shotgun metagenomic data'
|
|
mainScript = 'main.nf'
|
|
nextflowVersion = '!>=21.10.3'
|
|
version = '1.0dev'
|
|
}
|
|
|
|
// Load modules.config for DSL2 module specific options
|
|
includeConfig 'conf/modules.config'
|
|
|
|
// Function to ensure that resource requirements don't go beyond
|
|
// a maximum limit
|
|
def check_max(obj, type) {
|
|
if (type == 'memory') {
|
|
try {
|
|
if (obj.compareTo(params.max_memory as nextflow.util.MemoryUnit) == 1)
|
|
return params.max_memory as nextflow.util.MemoryUnit
|
|
else
|
|
return obj
|
|
} catch (all) {
|
|
println " ### ERROR ### Max memory '${params.max_memory}' is not valid! Using default value: $obj"
|
|
return obj
|
|
}
|
|
} else if (type == 'time') {
|
|
try {
|
|
if (obj.compareTo(params.max_time as nextflow.util.Duration) == 1)
|
|
return params.max_time as nextflow.util.Duration
|
|
else
|
|
return obj
|
|
} catch (all) {
|
|
println " ### ERROR ### Max time '${params.max_time}' is not valid! Using default value: $obj"
|
|
return obj
|
|
}
|
|
} else if (type == 'cpus') {
|
|
try {
|
|
return Math.min( obj, params.max_cpus as int )
|
|
} catch (all) {
|
|
println " ### ERROR ### Max cpus '${params.max_cpus}' is not valid! Using default value: $obj"
|
|
return obj
|
|
}
|
|
}
|
|
}
|