view 0.4.2/workflows/conf/process/centriflaken_hy.process.config @ 105:52045ea4679d

"planemo upload"
author kkonganti
date Thu, 27 Jun 2024 14:17:26 -0400
parents
children
line wrap: on
line source
process {
    withName: 'SEQKIT_SEQ' {
        ext.args = [
            params.fq_filter_by_len ? "-m ${params.fq_filter_by_len}" : ''
        ].join(' ').trim()
    }

    if (params.seqkit_rmdup_run) {
        withName: 'SEQKIT_RMDUP' {
            ext.when = params.seqkit_rmdup_run
            ext.args = addParamsToSummary(
                loadThisFunction("${params.toolshelp}${params.fs}seqkitrmdup.nf").seqkitrmdupHelp(params).helpparams
            )
        }
    }

    if (params.seqkit_grep_on) {
        withName: 'SEQKIT_GREP' {
            ext.args = addParamsToSummary(
                loadThisFunction("${params.toolshelp}${params.fs}seqkitgrep.nf").seqkitgrepHelp(params).helpparams
            )
        }
    }

    withName: 'CENTRIFUGE_CLASSIFY' {
        ext.args = addParamsToSummary(
            loadThisFunction("${params.toolshelp}${params.fs}centrifuge.nf").centrifugeHelp(params).helpparams
        )
    }

    withName: 'KRAKEN2_CLASSIFY' {
        ext.args = addParamsToSummary(
            loadThisFunction("${params.toolshelp}${params.fs}kraken2.nf").kraken2Help(params).helpparams
        )
    }

    withName: 'MEGAHIT_ASSEMBLE' {
        ext.when = params.megahit_run
        errorStrategy = 'ignore'
        ext.args = addParamsToSummary(
            loadThisFunction("${params.toolshelp}${params.fs}megahit.nf").megahitHelp(params).helpparams
        )
    }

    withName: 'SPADES_ASSEMBLE' {
        ext.when = params.spades_run
        errorStrategy = 'ignore'
        ext.args = addParamsToSummary(
            loadThisFunction("${params.toolshelp}${params.fs}spades.nf").spadesHelp(params).helpparams
        )
    }

    if (params.ectyper_run) {
        withName: 'ECTYPER' {
            ext.when = params.ectyper_run
            ext.args = addParamsToSummary(
                loadThisFunction("${params.toolshelp}${params.fs}ectyper.nf").ectyperHelp(params).helpparams
            )
        }
    }

    withName: 'SEROTYPEFINDER' {
        ext.when = params.serotypefinder_run
        ext.args = addParamsToSummary(
            loadThisFunction("${params.toolshelp}${params.fs}serotypefinder.nf").serotypefinderHelp(params).helpparams
        )
    }

    withName: 'SEQSERO2' {
        ext.when = params.seqsero2_run
        ext.args = addParamsToSummary(
            loadThisFunction("${params.toolshelp}${params.fs}seqsero2.nf").seqsero2Help(params).helpparams
        )
    }

    withName: 'MLST' {
        ext.when = params.mlst_run
        ext.args = addParamsToSummary(
            loadThisFunction("${params.toolshelp}${params.fs}mlst.nf").mlstHelp(params).helpparams
        )
    }

    if (params.amrfinderplus_run) {    
        withName: 'AMRFINDERPLUS_RUN' {
            ext.when = params.amrfinderplus_run
            ext.args = addParamsToSummary(
                loadThisFunction("${params.toolshelp}${params.fs}amrfinderplus.nf").amrfinderplusHelp(params).helpparams
            )
        }
    }

    withName: 'ABRICATE_RUN' {
        ext.when = params.abricate_run
        ext.args = addParamsToSummary(
            loadThisFunction("${params.toolshelp}${params.fs}abricate.nf").abricateHelp(params).helpparams
        )
    }

    withName: 'ABRICATE_SUMMARY' {
        ext.when = params.abricate_summary_run
    }
}

// Method to instantiate a new function parser
// Need to refactor using ScriptParser... another day
def loadThisFunction (func_file) {
    GroovyShell grvy_sh = new GroovyShell()
    def func = grvy_sh.parse(new File ( func_file ) )
    return func
}

// Method to add relevant final parameters to summary log
def addParamsToSummary(Map params_to_add = [:]) {

    if (!params_to_add.isEmpty()) {
        def not_null_params_to_add = params_to_add.findAll {
            it.value.clivalue != null && 
                it.value.clivalue != '[:]' &&
                it.value.clivalue != ''
        }

        params.logtheseparams += not_null_params_to_add.keySet().toList()

        return not_null_params_to_add.collect {
            "${it.value.cliflag} ${it.value.clivalue.toString().replaceAll(/(?:^\s+|\s+$)/, '')}"
        }.join(' ').trim()
    }
    return 1
}