Apocrita Configuration

All nf-core pipelines have been successfully configured for use on QMUL’s Apocrita cluster Queen Mary University of London.

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

Using Nextflow on Apocrita

Before running the pipeline you will need to configure Apptainer and install+configure Nextflow.

Singularity

Set the correct configuration of the cache directories, where <YOUR_ID> is replaced with you credentials which you can find by entering whoami into the terminal once you are logged into Apocrita. Once you have added your credentials save these lines into your .bash_profile file in your home directory (e.g. /data/home/<YOUR_ID>/.bash_profile):

# Set all the Apptainer environment variables
export APPTAINER_CACHEDIR=/data/scratch/<YOUR_ID>/.apptainer/
export APPTAINER_TMPDIR=/data/scratch/<YOUR_ID>/.apptainer/tmp
export APPTAINER_LOCALCACHEDIR=/data/scratch/<YOUR_ID>/.apptainer/localcache
export APPTAINER_PULLFOLDER=/data/scratch/<YOUR_ID>/.apptainer/pull

Nextflow

Download the latest release of nextflow. Warning: the self-update line should update to the latest version, but sometimes not, so please check which is the latest release (https://github.com/nextflow-io/nextflow/releases), you can then manually set this by entering (NXF_VER=XX.XX.X).

## Download Nextflow-all
curl -s https://get.nextflow.io | bash
nextflow -self-update
NXF_VER=XX.XX.X
chmod a+x nextflow
mv nextflow ~/bin/nextflow

Then make sure that your bin PATH is executable, by placing the following line in your .bash_profile:

export PATH=$PATH:/data/home/<YOUR_ID>/bin

Config file

See config file on GitHub

qmul_apocrita.config
params {
 
    config_profile_description = 'Queen Mary Universtiy of London'
    config_profile_contact     = 'Simon Murray (simon . murray AT ucl . ac . uk)'
    config_profile_url         = 'https://docs.hpc.qmul.ac.uk/'
}
 
executor {
    name = 'sge'
}
 
apptainer.runOptions = "-B ${HOME},${PWD}"
 
process {
 
    //NEED TO SET PARALLEL ENVIRONMENT TO SMP SO MULTIPLE CPUS CAN BE SUBMITTED
    penv           = 'smp'
 
    //ADD MEMORY TO CLUSTEROPTIONS
    clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.mega / task.cpus)}M" }
 
    withLabel: process_high {
        clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.mega / task.cpus)}M -l highmem" }
    }
    withLabel: process_long {
        clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.mega / task.cpus)}M -l highmem" }
    }
    withLabel: process_high_memory {
        clusterOptions = { "-S /bin/bash -l h_vmem=${(task.memory.mega / task.cpus)}M -l highmem" }
    }
}