mirror of
https://github.com/MillironX/nf-core_modules.git
synced 2024-11-10 20:23:10 +00:00
70 lines
4.5 KiB
Markdown
70 lines
4.5 KiB
Markdown
# ![nf-core/modules](docs/images/nfcore-modules_logo.png)
|
|
|
|
> DSL2 IS AN EXPERIMENTAL FEATURE UNDER DEVELOPMENT. SYNTAX, ORGANISATION AND LAYOUT OF THIS REPOSITORY MAY CHANGE IN THE NEAR FUTURE!
|
|
|
|
A repository for hosting nextflow [`DSL2`](https://www.nextflow.io/docs/edge/dsl2.htmlhttps://www.nextflow.io/docs/edge/dsl2.html) module files containing tool-specific process definitions and their associated documentation.
|
|
|
|
## Table of contents
|
|
* [Using existing modules](#using-existing-modules)
|
|
* [Configuration and parameters](#configuration-and-parameters)
|
|
* [Offline usage](#offline-usage)
|
|
* [Adding a new module file](#adding-a-new-module-file)
|
|
* [Testing](#testing)
|
|
* [Documentation](#documentation)
|
|
* [Uploading to `nf-core/modules`](#uploading-to-nf-coremodules)
|
|
* [Help](#help)
|
|
|
|
## Using existing modules
|
|
|
|
The Nextflow [`include`](https://www.nextflow.io/docs/edge/dsl2.html#modules-include) statement can be used within your pipelines in order to load module files that you have available locally.
|
|
|
|
You should be able to get a good idea as to how other people are using module files by looking at pipelines available in nf-core e.g. [`nf-core/rnaseq`](https://github.com/nf-core/rnaseq/pull/162)
|
|
|
|
### Configuration and parameters
|
|
|
|
The module files hosted in this repository define a set of processes for software tools such as `fastqc`, `trimgalore`, `bwa` etc. This allows you to share and add common functionality across multiple pipelines in a modular fashion.
|
|
|
|
> The definition and standards for module files are still under discussion amongst the community but hopefully, a description should be added here soon!
|
|
|
|
### Offline usage
|
|
|
|
If you want to use an existing module file available in `nf-core/modules`, and you're running on a system that has no internet connection, you'll need to download the repository (e.g. `git clone https://github.com/nf-core/modules.git`) and place it in a location that is visible to the file system on which you are running the pipeline. Then run the pipeline by creating a custom config file called e.g. `custom_module.conf` containing the following information:
|
|
|
|
```bash
|
|
include /path/to/downloaded/modules/directory/
|
|
```
|
|
|
|
Then you can run the pipeline by directly passing the additional config file with the `-c` parameter:
|
|
|
|
```bash
|
|
nextflow run /path/to/pipeline/ -c /path/to/custom_module.conf
|
|
```
|
|
|
|
> Note that the nf-core/tools helper package has a `download` command to download all required pipeline
|
|
> files + singularity containers + institutional configs + modules in one go for you, to make this process easier.
|
|
|
|
## Adding a new module file
|
|
|
|
If you decide to upload your module file to `nf-core/modules` then this will ensure that it will be automatically downloaded, and available at run-time to all nf-core pipelines, and to everyone within the Nextflow community! See [`nf-core/modules/nf`](https://github.com/nf-core/modules/tree/master/nf) for examples.
|
|
|
|
> The definition and standards for module files are still under discussion amongst the community but hopefully, a description should be added here soon!
|
|
|
|
### Testing
|
|
|
|
If you want to add a new module config file to `nf-core/modules` please test that your pipeline of choice runs as expected by using the [`-include`](https://www.nextflow.io/docs/edge/dsl2.html#modules-include) statement with a local version of the module file.
|
|
|
|
### Documentation
|
|
|
|
Please add some documentation to the top of the module file in the form of native Nextflow comments. This has to be specified in a particular format as you will be able to see from other examples in the [`nf-core/modules/nf`](https://github.com/nf-core/modules/tree/master/nf) directory.
|
|
|
|
### Uploading to `nf-core/modules`
|
|
|
|
[Fork](https://help.github.com/articles/fork-a-repo/) the `nf-core/modules` repository to your own GitHub account. Within the local clone of your fork add the module file to the [`nf-core/modules/nf`](https://github.com/nf-core/modules/tree/master/nf) directory. Please keep the naming consistent between the module and documentation files e.g. `bwa.nf` and `bwa.md`, respectively.
|
|
|
|
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 `nf-core/modules` 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.
|
|
|
|
## Help
|
|
|
|
If you have any questions or issues please send us a message on [Slack](https://nf-co.re/join/slack).
|