b029ccaa59
Update conf/pipeline/sarek/munin.config |
||
---|---|---|
conf | ||
docs | ||
pipeline | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
configtest.nf | ||
LICENSE | ||
nextflow.config | ||
nfcore_custom.config | ||
README.md |
A repository for hosting nextflow config files containing custom parameters required to run nf-core pipelines at different Institutions.
Table of contents
Using an existing config
The Nextflow -c
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.
Configuration and parameters
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.
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 on your HPC you can add and customize the Nextflow singularity
scope in your config file. Similarly, you can define a Nextflow executor
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.
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
.
Offline usage
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:
## 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/
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.
nextflow run /path/to/pipeline/ -c /path/to/my/configs/configs-master/conf/my_config.config
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.
Adding a new config
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
for examples.
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.
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.
Testing
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
parameter.
## Example command for nf-core/rnaseq
nextflow run nf-core/rnaseq --reads '*_R{1,2}.fastq.gz' --genome GRCh37 -c '[path to custom config]'
Documentation
You will have to create a Markdown document outlining the details required to use the custom config file within your organisation. You might orientate yourself using the Template that we provide and filling out the information for your cluster there.
See nf-core/configs/docs
for examples.
Currently documentation is available for the following systems:
- AWSBATCH
- BIGPURPLE
- BINAC
- CBE
- CCGA
- CCGA_DX
- CFC
- CRICK
- CZBIOHUB_AWS
- CZBIOHUB_AWS_HIGHPRIORITY
- DENBI_QBIC
- GENOUEST
- GIS
- HEBBE
- KRAKEN
- MUNIN
- PASTEUR
- PHOENIX
- PRINCE
- SHH
- UCT_HEX
- UPPMAX
- UPPMAX_DEVEL
- UZH
Uploading to nf-core/configs
Fork 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/
directory, and the documentation file to the docs/
directory. You will also need to edit and add your custom profile to the nfcore_custom.config
file in the top-level directory of the clone.
Commit and push these changes to your local clone on GitHub, and then create a pull request on the nf-core/configs
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.
Adding a new pipeline specific config
Follow the previous guidelines to create a nf-core/configs, update the pipeline specific documentation, and create the necessary files.
Replace <PIPELINE>
with the pipeline name for all the instructions in this guidelines.
In a similar manner, replace <PROFILE>
by the name of the profile.
Pipeline specific documentation
Currently documentation is available for the following pipelines within the specific profile:
- sarek
Enabling the specific configs within a specific pipeline
This has to be done on a fork of the
nf-core/<PIPELINE>
repository.
If not already present, add to nextflow.config
// 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")
}
Create the specific nf-core/configs for the pipeline
This has to be done on a fork of the
nf-core/configs
repository.
If not already created, add the pipeline/<PIPELINE>.config
file, and add the profile to the profile scope
profiles {
<PROFILE> { includeConfig "${params.custom_config_base}/conf/pipeline/<PIPELINE>/<PROFILE>.config" }
}
Add the conf/pipeline/<PIPELINE>/<PROFILE>.config
file with all pipeline specific params, withLabel
or any other configuration profile.
Add the docs/pipeline/<PIPELINE>/<PROFILE>.md
file with documentation on what are the specificity of this configs.
Help
If you have any questions or issues please send us a message on Slack.