diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b48354a..9ee123f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -40,6 +40,7 @@ jobs: - 'genouest' - 'gis' - 'google' + - 'hasta' - 'hebbe' - 'icr_davros' - 'ifb_core' @@ -70,6 +71,6 @@ jobs: sudo mv nextflow /usr/local/bin/ - name: Check ${{ matrix.profile }} profile env: - SCRATCH: '~' + SCRATCH: "~" NXF_GLOBAL_CONFIG: awsbatch.config run: nextflow run ${GITHUB_WORKSPACE}/configtest.nf --custom_config_base=${GITHUB_WORKSPACE} -profile ${{ matrix.profile }} diff --git a/README.md b/README.md index 9e27b6d..1040f93 100644 --- a/README.md +++ b/README.md @@ -112,6 +112,7 @@ Currently documentation is available for the following systems: * [GENOUEST](docs/genouest.md) * [GIS](docs/gis.md) * [GOOGLE](docs/google.md) +* [HASTA](docs/hasta.md) * [HEBBE](docs/hebbe.md) * [ICR_DAVROS](docs/icr_davros.md) * [JAX](docs/jax.md) diff --git a/conf/hasta.config b/conf/hasta.config new file mode 100644 index 0000000..c5dd5e4 --- /dev/null +++ b/conf/hasta.config @@ -0,0 +1,40 @@ +// Profile config names for nf-core/configs +params { + config_profile_description = 'Hasta, a local cluster setup at Clinical Genomics, Stockholm.' + config_profile_contact = 'Clinical Genomics, Stockholm' + config_profile_url = 'https://github.com/Clinical-Genomics' + priority = null + clusterOptions = null + schema_ignore_params = "priority,clusterOptions" +} + +singularity { + enabled = true +} + +params { + max_memory = 180.GB + max_cpus = 36 + max_time = 336.h +} + +process { + executor = 'slurm' + clusterOptions = { "-A $params.priority ${params.clusterOptions ?: ''}" } +} + +profiles { + dev_prio { + params { + priority = 'development' + clusterOptions = "--qos=low" + } + } + + prod_prio { + params { + priority = 'production' + clusterOptions = "--qos=low" + } + } +} diff --git a/conf/pipeline/raredisease/hasta.config b/conf/pipeline/raredisease/hasta.config new file mode 100644 index 0000000..2c6ed48 --- /dev/null +++ b/conf/pipeline/raredisease/hasta.config @@ -0,0 +1,11 @@ +process { + + withName:'PICARD_MARKDUPLICATES' { + cpus = { check_max( 13 * task.attempt, 'cpus' ) } + memory = { check_max( 130.GB * task.attempt, 'memory' ) } + } + withName:'DEEPVARIANT' { + cpus = { check_max( 16 * task.attempt, 'cpus' ) } + memory = { check_max( 80.GB * task.attempt, 'memory' ) } + } +} \ No newline at end of file diff --git a/docs/hasta.md b/docs/hasta.md new file mode 100644 index 0000000..4a8bd54 --- /dev/null +++ b/docs/hasta.md @@ -0,0 +1,16 @@ +# nf-core/configs: Hasta Configuration + +## Using the Hasta config profile + +Before running the pipeline `Nextflow` will need to be install in the conda environment being used. + +To use, run the pipeline with `-profile hasta` (one hyphen). +This will download and launch the [`hasta.config`](../conf/hasta.config) which has been pre-configured with a setup suitable for the hasta servers. +It will enable `Nextflow` to manage the pipeline jobs via the `Slurm` job scheduler. +Using this profile, `Docker` image(s) containing required software(s) will be downloaded, and converted to `Singularity` image(s) if needed before execution of the pipeline. + +Recent version of `Nextflow` also support the environment variable `NXF_SINGULARITY_CACHEDIR` which can be used to supply images. A use case: `NXF_SINGULARITY_CACHEDIR=/path/to/images; export NXF_SINGULARITY_CACHEDIR` before running the pipeline. + +## Development and production config + +Each user on hasta has a priority based on their allocated team, either development or production. To enable this when submitting a job to Slurm, submit with `-profile hasta,dev_prio` or `-profile hasta,prod_prio`. This overwrites certain parts of the config and submits the job based on different priorities. diff --git a/nfcore_custom.config b/nfcore_custom.config index e1a8301..5dbef2b 100644 --- a/nfcore_custom.config +++ b/nfcore_custom.config @@ -34,6 +34,7 @@ profiles { genouest { includeConfig "${params.custom_config_base}/conf/genouest.config" } gis { includeConfig "${params.custom_config_base}/conf/gis.config" } google { includeConfig "${params.custom_config_base}/conf/google.config" } + hasta { includeConfig "${params.custom_config_base}/conf/hasta.config" } hebbe { includeConfig "${params.custom_config_base}/conf/hebbe.config" } icr_davros { includeConfig "${params.custom_config_base}/conf/icr_davros.config" } ifb_core { includeConfig "${params.custom_config_base}/conf/ifb_core.config" } diff --git a/pipeline/raredisease.config b/pipeline/raredisease.config new file mode 100644 index 0000000..796a38b --- /dev/null +++ b/pipeline/raredisease.config @@ -0,0 +1,13 @@ +/* + * ------------------------------------------------- + * nfcore/raredisease custom profile Nextflow config file + * ------------------------------------------------- + * Config options for custom environments. + * Cluster-specific config options should be saved + * in the conf/pipeline/raredisease folder and imported + * under a profile name here. + */ + +profiles { + hasta { includeConfig "${params.custom_config_base}/conf/pipeline/raredisease/hasta.config" } +}