DaiSyBio
To use the DaiSyBio profile, run a nf-core pipeline with -profile daisybio,<singularity/apptainer>
.
This will automatically download and apply ‘daisybio.config’ as a nextflow config file.
The config file will set slurm as a scheduler for the compute cluster, define max resources, and specify cache locations for singularity, apptainer, and iGenomes. Pipeline-specific parameters still need to be configured manually.
Work directories will be kept at /nfs/scratch/nf-core_work/
in a directory named after the full path of the launch directory (”.” separated). Thy are automatically removed after a successful pipeline run. To keep the intermediate file, e.g. for using the -resume
function, add keep_work
as a profile: -profile daisybio,<singularity/apptainer>,keep_work
.
Config file
params {
config_profile_description = 'DaiSyBio cluster profile provided by nf-core/configs.'
config_profile_contact = 'Johannes Kersting (@JohannesKersting)'
config_profile_url = 'https://www.mls.ls.tum.de/daisybio/startseite/'
max_memory = 1.TB
max_cpus = 120
max_time = 96.h
igenomes_base = '/nfs/data/references/igenomes'
}
// define workDir in /nfs/scratch/nf-core_work/ named after the launch dir
def work_dir = "/nfs/scratch/nf-core_work/"
if(new File(work_dir).exists() && System.getenv("PWD")) {
work_dir = work_dir+System.getenv("PWD").tokenize('/').join('.')
workDir = work_dir
// if directory does not exist, create it and set the group to the group launch dir
if(!new File(work_dir).exists()) {
"mkdir -p ${work_dir}".execute()
def pwd = System.getenv("PWD")
def group = "stat -c %g ${pwd}".execute().text.trim()
"chgrp -R ${group} ${work_dir}".execute()
"chmod -R g+s ${work_dir}".execute()
}
}
process {
resourceLimits = [
memory: 1.TB,
cpus: 120,
time: 96.h
]
executor = 'slurm'
queue = 'shared-cpu'
maxRetries = 2
}
executor {
queueSize = 50
submitRateLimit = '10 sec'
}
cleanup = true
profiles {
// profile to keep work directory
keep_work {
cleanup = false
}
//profile for singularity
singularity {
singularity.enabled = true
singularity.autoMounts = true
conda.enabled = false
docker.enabled = false
podman.enabled = false
shifter.enabled = false
charliecloud.enabled = false
apptainer.enabled = false
process.beforeScript = 'module load singularity'
singularity.cacheDir = '/nfs/scratch/singularity_cache'
}
// profile for apptainer
apptainer {
apptainer.enabled = true
apptainer.autoMounts = true
conda.enabled = false
docker.enabled = false
singularity.enabled = false
podman.enabled = false
shifter.enabled = false
charliecloud.enabled = false
process.beforeScript = 'module load apptainer'
apptainer.cacheDir = '/nfs/scratch/apptainer_cache'
}
}