1
0
Fork 0
mirror of https://github.com/MillironX/nf-configs.git synced 2024-09-21 22:12:03 +00:00
nf-configs/README.md

197 lines
12 KiB
Markdown
Raw Normal View History

2019-05-30 23:47:06 +00:00
# ![nf-core/configs](docs/images/nfcore-configs_logo.png)
2018-11-27 09:17:55 +00:00
[![Build Status](https://travis-ci.org/nf-core/configs.svg?branch=master)](https://travis-ci.org/nf-core/configs)
2018-11-27 09:17:55 +00:00
A repository for hosting nextflow config files containing custom parameters required to run nf-core pipelines at different Institutions.
## Table of contents
2019-11-26 09:30:24 +00:00
2018-11-29 15:26:08 +00:00
* [Using an existing config](#using-an-existing-config)
2019-11-26 09:30:24 +00:00
* [Configuration and parameters](#configuration-and-parameters)
* [Offline usage](#offline-usage)
2018-11-29 15:26:08 +00:00
* [Adding a new config](#adding-a-new-config)
2019-11-26 09:30:24 +00:00
* [Testing](#testing)
* [Documentation](#documentation)
* [Uploading to `nf-core/configs`](#uploading-to-nf-coreconfigs)
2019-11-20 14:32:35 +00:00
* [Adding a new pipeline specific config](#adding-a-new-pipeline-specific-config)
2019-11-26 09:30:24 +00:00
* [Pipeline Specific Documentation](#pipeline-specific-documentation)
* [Enabling the specific configs within a specific pipeline](#enabling-the-specific-configs-within-a-specific-pipeline)
* [Create the specific `nf-core/configs` for the pipeline](#create-the-specific-nf-coreconfigs-for-the-pipeline)
* [Help](#help)
2018-11-27 09:17:55 +00:00
2018-11-29 17:41:54 +00:00
## Using an existing config
2018-11-27 09:17:55 +00:00
2019-11-26 09:30:24 +00:00
The Nextflow [`-c`](https://www.nextflow.io/docs/latest/config.html) parameter can be used with nf-core pipelines in order to load custom config files that you have available locally.
However, if you or other people within your organisation are likely to be running nf-core pipelines regularly it may be a good idea to use/create a custom config file that defines some generic settings unique to the computing environment within your organisation.
2018-11-27 09:17:55 +00:00
2018-11-29 17:41:54 +00:00
### Configuration and parameters
2018-11-27 09:17:55 +00:00
2018-11-29 17:49:03 +00:00
The config files hosted in this repository define a set of parameters which are specific to compute environments at different Institutions but generic enough to be used with all nf-core pipelines.
2018-11-29 15:26:08 +00:00
2019-11-26 09:30:24 +00:00
All nf-core pipelines inherit the functionality provided by Nextflow, and as such custom config files can contain parameters/definitions that are available to both.
For example, if you have the ability to use [Singularity](https://sylabs.io/singularity/) on your HPC you can add and customize the Nextflow [`singularity`](https://www.nextflow.io/docs/latest/config.html#scope-singularity) scope in your config file.
Similarly, you can define a Nextflow [`executor`](https://www.nextflow.io/docs/latest/executor.html) depending on the job submission process available on your cluster.
In contrast, the `params` section in your custom config file will typically define parameters that are specific to nf-core pipelines.
2018-11-29 17:41:54 +00:00
2019-11-19 15:36:51 +00:00
You should be able to get a good idea as to how other people are customising the execution of their nf-core pipelines by looking at some of the config files in [`nf-core/configs`](https://github.com/nf-core/configs/tree/master/conf).
2018-11-29 15:26:08 +00:00
### Offline usage
2019-11-26 09:30:24 +00:00
If you want to use an existing config available in `nf-core/configs`, and you're running on a system that has no internet connection, you'll need to download the config file and place it in a location that is visible to the file system on which you are running the pipeline.
Then run the pipeline with `--custom_config_base` or `params.custom_config_base` set to the location of the directory containing the repository files:
```bash
2019-03-05 15:53:59 +00:00
## Download and unzip the config files
cd /path/to/my/configs
wget https://github.com/nf-core/configs/archive/master.zip
unzip master.zip
## Run the pipeline
cd /path/to/my/data
nextflow run /path/to/pipeline/ --custom_config_base /path/to/my/configs/configs-master/
```
2019-11-26 09:30:24 +00:00
Alternatively, instead of using the configuration profiles from this repository, you can run your pipeline directly calling the single institutional config file that you need with the `-c` parameter.
```bash
2019-03-05 15:28:10 +00:00
nextflow run /path/to/pipeline/ -c /path/to/my/configs/configs-master/conf/my_config.config
```
2019-11-26 09:30:24 +00:00
> Note that the nf-core/tools helper package has a `download` command to download all required pipeline files + singularity containers + institutional configs in one go for you, to make this process easier.
2018-11-29 15:26:08 +00:00
## Adding a new config
2019-11-26 09:30:24 +00:00
If you decide to upload your custom config file to `nf-core/configs` then this will ensure that your custom config file will be automatically downloaded, and available at run-time to all nf-core pipelines, and to everyone within your organisation.
You will simply have to specify `-profile <config_name>` in the command used to run the pipeline.
See [`nf-core/configs`](https://github.com/nf-core/configs/tree/master/conf) for examples.
2018-11-29 17:41:54 +00:00
2019-11-26 09:30:24 +00:00
Please also make sure to add an extra `params` section with `params.config_profile_description`, `params.config_profile_contact` and `params.config_profile_url` set to reasonable values.
Users will get information on who wrote the configuration profile then when executing a nf-core pipeline and can report back if there are things missing for example.
## Checking user hostnames
If your cluster has a set of consistent hostnames, nf-core pipelines can check that users are using your profile.
Add one or more hostname substrings to `params.hostnames` under a key that matches the profile name.
2019-11-26 09:30:24 +00:00
If the user's hostname contains this string at the start of a run or when a run fails and their profile does not contain the profile name, a warning message will be printed.
2018-11-29 15:26:08 +00:00
### Testing
2018-11-27 09:17:55 +00:00
2019-01-04 15:39:02 +00:00
If you want to add a new custom config file to `nf-core/configs` please test that your pipeline of choice runs as expected by using the [`-c`](https://www.nextflow.io/docs/latest/config.html) parameter.
2018-11-27 09:17:55 +00:00
```bash
## Example command for nf-core/rnaseq
nextflow run nf-core/rnaseq --reads '*_R{1,2}.fastq.gz' --genome GRCh37 -c '[path to custom config]'
2018-11-27 09:17:55 +00:00
```
2018-11-29 15:26:08 +00:00
### Documentation
2019-11-26 09:30:24 +00:00
You will have to create a [Markdown document](https://www.markdownguide.org/getting-started/) outlining the details required to use the custom config file within your organisation.
You might orientate yourself using the [Template](docs/template.md) that we provide and filling out the information for your cluster there.
2018-11-29 12:20:25 +00:00
See [`nf-core/configs/docs`](https://github.com/nf-core/configs/tree/master/docs) for examples.
2019-10-10 13:33:06 +00:00
Currently documentation is available for the following systems:
2019-10-10 13:33:06 +00:00
* [AWSBATCH](docs/awsbatch.md)
* [BIGPURPLE](docs/bigpurple.md)
2019-07-31 20:52:16 +00:00
* [BINAC](docs/binac.md)
2019-09-22 14:45:09 +00:00
* [CBE](docs/cbe.md)
* [CCGA](docs/ccga.md)
* [CCGA_DX](/docs/ccga_dx.md)
* [CFC](docs/binac.md)
* [CRICK](docs/crick.md)
2019-07-31 20:52:16 +00:00
* [CZBIOHUB_AWS](docs/czbiohub.md)
* [CZBIOHUB_AWS_HIGHPRIORITY](docs/czbiohub.md)
2019-11-11 11:28:45 +00:00
* [DENBI_QBIC](docs/denbi_qbic.md)
2019-10-16 16:15:04 +00:00
* [GENOUEST](docs/genouest.md)
* [GIS](docs/gis.md)
* [HEBBE](docs/hebbe.md)
2019-08-05 12:59:36 +00:00
* [KRAKEN](docs/kraken.md)
2019-01-10 14:46:16 +00:00
* [MUNIN](docs/munin.md)
2019-07-31 20:52:16 +00:00
* [PASTEUR](docs/pasteur.md)
* [PHOENIX](docs/phoenix.md)
* [PRINCE](docs/prince.md)
* [SHH](docs/shh.md)
* [UCT_HEX](docs/uct_hex.md)
* [UPPMAX](docs/uppmax.md)
2019-07-31 21:09:30 +00:00
* [UPPMAX_DEVEL](docs/uppmax.md)
* [UZH](docs/uzh.md)
2018-11-29 15:26:08 +00:00
### Uploading to `nf-core/configs`
2019-11-26 09:30:24 +00:00
[Fork](https://help.github.com/articles/fork-a-repo/) the `nf-core/configs` repository to your own GitHub account.
Within the local clone of your fork add the custom config file to the [`conf/`](https://github.com/nf-core/configs/tree/master/conf) directory, and the documentation file to the [`docs/`](https://github.com/nf-core/configs/tree/master/docs) directory.
You will also need to edit and add your custom profile to the [`nfcore_custom.config`](https://github.com/nf-core/configs/blob/master/nfcore_custom.config) file in the top-level directory of the clone.
You will also need to edit and add your custom profile to the [`README.md`](https://github.com/nf-core/configs/blob/master/README.md) file in the top-level directory of the clone.
2018-11-27 09:17:55 +00:00
2018-11-29 12:20:25 +00:00
Commit and push these changes to your local clone on GitHub, and then [create a pull request](https://help.github.com/articles/creating-a-pull-request-from-a-fork/) on the `nf-core/configs` GitHub repo with the appropriate information.
2018-11-27 09:17:55 +00:00
2018-11-29 17:49:03 +00:00
We will be notified automatically when you have created your pull request, and providing that everything adheres to nf-core guidelines we will endeavour to approve your pull request as soon as possible.
2018-11-27 09:17:55 +00:00
2019-11-26 09:30:24 +00:00
## Adding a new pipeline-specific config
Here we will be adding an institutional pipeline-specific config.
:warning: Replace `<PIPELINE>` with the pipeline name for all the instructions in this guidelines.
:warning: In a similar manner, replace `<PROFILE>` by the name of the profile.
Currently the `nextflow.config` file from any pipeline, load the [`nfcore_custom.config`](https://github.com/nf-core/configs/blob/master/nfcore_custom.config), which load the institutional configuration file based on the profile `<PROFILE>`.
We're adding within the `nextflow.config` from the pipeline `<PIPELINE>`, the loading of the `pipeline/<PIPELINE>.config` from the [`nf-core/configs`](https://github.com/nf-core/configs) repo, which load the `<PIPELINE>` specific institution configuration file based on the profile `<PROFILE>`.
2019-11-20 13:34:06 +00:00
2019-11-26 09:30:24 +00:00
`nextflow.config` from pipeline will load first institutional configuration file and then the pipeline-specific institutional configuration file.
Each configuration file will add new params and overwrite the params already existing.
Make sure to add an extra `params` section with `params.config_profile_description`, `params.config_profile_contact` set to reasonable values.
Users will get information on who wrote the pipeline-specific configuration profile then when executing the nf-core pipeline and can report back if there are things missing for example.
2019-11-20 13:34:06 +00:00
### Pipeline specific documentation
2019-11-26 09:30:24 +00:00
Currently documentation is available for the following pipeline within the specific profile:
2019-11-20 13:34:06 +00:00
* sarek
* [MUNIN](docs/pipeline/sarek/munin.md)
2019-11-20 14:32:35 +00:00
### Enabling the specific configs within a specific pipeline
2019-11-20 13:34:06 +00:00
:warning: **This has to be done on a fork of the `nf-core/<PIPELINE>` repository.**
2019-11-20 13:34:06 +00:00
2019-11-26 09:30:24 +00:00
[Fork](https://help.github.com/articles/fork-a-repo/) the `nf-core/<PIPELINE>` repository to your own GitHub account.
Within the local clone of your fork, if not already present, add to `nextflow.config`
2019-11-20 13:34:06 +00:00
```Groovy
// Load nf-core/<PIPELINE> custom profiles from different Institutions
try {
includeConfig "${params.custom_config_base}/pipeline/<PIPELINE>.config"
} catch (Exception e) {
System.err.println("WARNING: Could not load nf-core/config/<PIPELINE> profiles: ${params.custom_config_base}/pipeline/<PIPELINE>.config")
}
```
2019-11-26 09:30:24 +00:00
Commit and push these changes to your local clone on GitHub, and then [create a pull request](https://help.github.com/articles/creating-a-pull-request-from-a-fork/) on the `nf-core/<PIPELINE>` GitHub repo with the appropriate information.
We will be notified automatically when you have created your pull request, and providing that everything adheres to nf-core guidelines we will endeavour to approve your pull request as soon as possible.
2019-11-20 13:34:06 +00:00
### Create the specific nf-core/configs for the pipeline
:warning: This has to be done on a fork of the `nf-core/configs` repository.
2019-11-20 13:34:06 +00:00
2019-11-26 09:30:24 +00:00
[Fork](https://help.github.com/articles/fork-a-repo/) the `nf-core/configs` repository to your own GitHub account.
Within the local clone of your fork, if not already created, create the `pipeline/<PIPELINE>.config` file, and add your custom profile to the profile scope
2019-11-20 13:34:06 +00:00
```Groovy
profiles {
<PROFILE> { includeConfig "${params.custom_config_base}/conf/pipeline/<PIPELINE>/<PROFILE>.config" }
}
```
2019-11-26 09:30:24 +00:00
Add the custom configuration file to the `conf/pipeline/<PIPELINE>/` directory.
Add the documentation file to the `docs/pipeline/<PIPELINE>/` directory.
You will also need to edit and add your custom profile to the [`README.md`](https://github.com/nf-core/configs/blob/master/README.md) file in the top-level directory of the clone.
2019-11-20 13:34:06 +00:00
2019-11-26 09:30:24 +00:00
Commit and push these changes to your local clone on GitHub, and then [create a pull request](https://help.github.com/articles/creating-a-pull-request-from-a-fork/) on the `nf-core/configs` GitHub repo with the appropriate information.
2019-11-20 13:34:06 +00:00
2018-11-29 14:54:20 +00:00
## Help
2019-11-26 09:30:24 +00:00
If you have any questions or issues please send us a message on [Slack](https://nfcore.slack.com/channels/configs).