UTD Europa Configuration

All nf-core pipelines have been successfully configured for use on the Europa HTC cluster at The Univeristy of Texas at Dallas.

To use, run the pipeline with -profile utd_europa. This will download and launch the utd_europa.config which has been pre-configured with a setup suitable for Europa.

Before running the pipeline you will need to load Apptainer using the environment module system on Europa. You can do this by issuing the commands below:

## Singularity environment modules
module purge
module load apptainer

All of the intermediate files required to run the pipeline will be stored in the work/ directory. It is recommended to delete this directory after the pipeline has finished successfully because it can get quite large, and all of the main output files will be saved in the results/ directory anyway.

[!NOTE] You will need an account to use Europa. To join, fill out our short survey at https://utd.link/trecis-lcars-signup. Nextflow will need to submit the jobs via SLURM to the HTC cluster and as such the commands above will have to be executed on the login node. If in doubt contact CIRC.

Config file

See config file on GitHub

utd_europa.config
//Profile config names for nf-core/configs
params {
    config_profile_description = 'University of Texas at Dallas HTC cluster profile provided by nf-core/configs'
    config_profile_contact = 'Edmund Miller'
    config_profile_contact_github = '@edmundmiller'
    config_profile_contact_email = 'edmund.miller@utdallas.edu'
    config_profile_url = 'https://docs.circ.utdallas.edu/user-guide/systems/europa.html'
}
 
env {
    TMPDIR = "/home/$USER/scratch/tmp"
    APPTAINER_CACHEDIR="/home/$USER/scratch/apptainer"
}
 
apptainer {
    enabled      = true
    autoMounts   = true
    cacheDir = "/home/$USER/scratch/apptainer"
}
 
// Submit up to 100 concurrent jobs
// pollInterval and queueStatInterval of every 5 minutes
// submitRateLimit of 20 per minute
executor {
    queueSize = 100
    pollInterval = '5 min'
    queueStatInterval = '5 min'
    submitRateLimit = '20 min'
    jobName = { "${task.process.split(':').last()}" }
}
 
process {
    beforeScript = 'module load apptainer'
    executor = 'slurm'
    queue = 'normal'
    memory = 30.GB
    cpus = 16
}
 
params {
    max_memory = 30.GB
    max_cpus = 16
    max_time = 48.h
}