KwanLab / Autometa

Autometa: Automated Extraction of Genomes from Shotgun Metagenomes
https://autometa.readthedocs.io
Other
40 stars 15 forks source link

Notes on how to upgrade to current nf-core standards #226

Open chasemc opened 2 years ago

chasemc commented 2 years ago

nf-core updated and their module format changed a pretty decent amount. At first I was really confused trying to figure out what changed but I think the changes, while a pain to switch to, actually are easier to maintain/understand once switched.

I'm currently updating another pipeline to the current nf-core format. Opened this issue to take a few notes to help out when/if someone does that for Autometa.

chasemc commented 2 years ago

Remove all of these lines from the top of local modules:

// Import generic module functions
include { initOptions; saveFiles; getSoftwareName } from './functions'
params.options = [:]
options        = initOptions(params.options)

Also include lines no longer need an addParams

Both of the above things are now handled directly from the conf/modules.config file.

IMO That's a huge improvement because you only have to track module config stuff from a single place instead of scattered around. The module.config now 'targets' process names which means multiple processes with the same config can be lumped together.

New Process version outputs look like this:

    cat <<-END_VERSIONS > versions.yml
    "${task.process}":
        diamond: \$(diamond --version 2>&1 | tail -n 1 | sed 's/^diamond version //')
    END_VERSIONS

Which produces .yml files whose channels are then .mixed together to be concatenated into a single version file