This is a small hands-on tutorial to help you convert your free-style nextflow pipeline to nf-core style one.
First step is to create a module template for our future module add a manifest to our nextflow config. nf-core/tools needs a pipelinename from the manifest
manifest {
name = 'cellgeni/hackaton'
author = "CellgenI Team"
homePage = '<https://github.com/cellgeni/hackaton>'
description = "NF-CORE play-around-and-find out hackaton"
mainScript = 'main.nf'
nextflowVersion = '!>=24.04.2'
version = '0.0.1'
}
<aside> 💡
This is step is only relevant for nf-core/tools=3.4.1. You don’t need to do that starting 3.5.0. But it’s nice to have a manifest in your configs anyway!
</aside>
Now we can run the command to create a template
nf-core modules create
#
# ,--./,-.
# ___ __ __ __ ___ /,-._.--~\\
# |\\ | |__ __ / ` / \\ |__) |__ } {
# | \\| | \\__, \\__/ | \\ |___ \\`-._,-`-,
# `._,._,'
#
# nf-core/tools version 3.4.1 - <https://nf-co.re>
This command will take a few steps. First it will ask permission to create .nf-core.yml file. This a config file that lets nf-core/tools know the repository type (pipeline/modules). You can read more about nf-core modules create command here: https://nf-co.re/docs/nf-core-tools/modules/create
WARNING 'repository_type' not defined in .nf-core.yml
? Is this repository a pipeline or a modules repository? Pipeline
INFO To avoid this prompt in the future, add the 'repository_type' key to your .nf-core.yml file.
? Would you like me to add this config now? [y/n] (y): y
INFO Config added to '.nf-core.yml'
INFO Repository type: pipeline
On the next step nf-core asks for the tool name. I decided to go with adata/attachcellmetadata . I expect there to be multiple modules for AnnData manipulations in the future, so it would be good to have a separate category for them. nf-core/tools tries to find Bioconda package and docker container associated with the main tool.