Pôle Scientifique de Modélisation Numérique (PSMN)

All nf-core pipelines have been successfully configured for use on the tars cluster at the Institut Pasteur.

To use, run the pipeline with -profile psmn. This will download and launch the psmn.config which has been pre-configured with a setup suitable for the PSMN cluster. Using this profile, a docker image containing all of the required software will be downloaded, and converted to a Singularity image before execution of the pipeline.

You can have more information on the cluster parition here: www.ens-lyon.fr/PSMN/Documentation/clusters_usage/computing_resources.html

Running the workflow on the PSMN cluster

Install Nextflow and Charliecloud

The Nextflow binary is available in the folder /Xnfs/abc/nextflow_bin/. All the Charliecloud binaries are available in the folder /Xnfs/abc/charliecloud_bin/.

You can update your $PATH variable with the following command to have access to Nextflow and Charliecloud:

PATH=/Xnfs/abc/charliecloud_bin/:/Xnfs/abc/nextflow_bin/:$PATH

or add this line to your ~/.zshrc or ~/.bashrc configuration file.

Install nf-core

nf-core is available on the PSMN as a Charliecloud container you can run the classical nf-core command by prefixing them with:

ch-run -b /scratch:/scratch /Xnfs/abc/charliecloud/img/nfcore%tools+2.6 -- nf-core

For exemple to download the nf-core/rnaseq pipeline you can use the command:

cd /Xnfs/abc/nf_scratch/<user_name>/
ch-run -b /scratch:/scratch -b /Xnfs:"" \
  /Xnfs/abc/charliecloud/img/nfcore%tools+2.6 -- nf-core \
  download rnaseq -r 3.9 --outdir nf-core-rnaseq

Download and launch a nf-core pipeline

You can use the nf-core download command to download an nf-core pipeline and the configuration files for the PSMN:

cd /Xnfs/abc/nf_scratch/<user_name>/
ch-run -b /scratch:/scratch \
  /Xnfs/abc/charliecloud/img/nfcore%tools+2.6 -- nf-core \
  download rnaseq -r 3.9 --outdir <your scratch directory>/nf-core-rnaseq -x none -c none

Download all the necessary image

By default the psmn profile will lookup charliecloud img in the /Xnfs/abc/charliecloud/ folder. To download all the images that are not already present in this folder you can use the following script

cd nf-core-rnaseq
pull_ch_images_locally.sh

Launch the pipeline

Then you can launch this pipeline with the PSMN profile

tmux
cd nf-core-rnaseq
nextflow run workflow -profile test,psmn --outdir results/

Config file

See config file on GitHub

psmn.config
//Profile config names for nf-core/configs
params {
    config_profile_description = 'PSMN (Pôle Scientifique de Modélisation Numérique) HPC cluster profile'
    config_profile_contact     = 'Laurent Modolo (@l-modolo)'
    config_profile_url         = 'http://www.ens-lyon.fr/PSMN/doku.php?id=en:accueil'
}
 
charliecloud {
    enabled        = true
    cacheDir       = "/Xnfs/abc/charliecloud"
    runOptions     = "--bind /scratch:/scratch --bind /Xnfs:/Xnfs --bind /home:/home"
    readOnlyInputs = true
}
 
process {
    resourceLimits = [
        memory: 370.GB,
        cpus: 32,
        time: 96.h
    ]
    executor       = 'slurm'
    clusterOptions = "--partition=E5,Lake,Lake-flix"
 
    cpus           = 1
    memory         = 32.GB
    time           = 24.h
 
    withLabel: 'process_single|process_single_thread|sc_tiny|sc_small|sc_medium' {
        clusterOptions = "--partition=E5,Lake,Lake-flix"
        cpus           = 1
        memory         = 114.GB
        time           = 24.h
    }
    withLabel: 'process_low|mc_small|process_very_low' {
        clusterOptions = "--partition=E5,Lake,Lake-flix"
        cpus           = 16
        memory         = 90.GB
        time           = 24.h
    }
    withLabel: 'process_medium|mc_medium' {
        clusterOptions = "--partition=Lake,Lake-flix"
        cpus           = 32
        memory         = 180.GB
        time           = 48.h
    }
    withLabel: 'process_high|mc_large|mc_huge|process_high_cpus|cpus_max' {
        clusterOptions = "--partition=Lake,Lake-flix"
        cpus           = 32
        memory         = 370.GB
        time           = 48.h
    }
    withLabel: 'process_long|process_maximum_time|process_long_parallelized' {
        clusterOptions = "--partition=Lake"
        time           = 96.h
    }
    withLabel: 'process_high_memory|memory_max' {
        clusterOptions = "--partition=Lake,Lake-flix"
        memory         = 370.GB
    }
    withLabel: gpu {
        clusterOptions = "--partition=E5-GPU"
    }
}
 
params {
    max_memory = 370.GB
    max_cpus   = 32
    max_time   = 96.h
}