view 0.4.2/cpipes @ 131:45900148ca9e

planemo upload
author kkonganti
date Fri, 05 Jul 2024 09:31:14 -0400
parents 52045ea4679d
children
line wrap: on
line source
#!/usr/bin/env nextflow

/*
----------------------------------------------------------------------------------------
    cfsan-dev/cpipes
----------------------------------------------------------------------------------------
    NAME          : CPIPES
    DESCRIPTION   : Modular Nextflow pipelines at CFSAN, FDA.
    GITLAB        : https://cfsan-git.fda.gov/cfsan-dev/cpipes
    JIRA          : https://sde.fda.gov/jira/projects/CPIPES/
    CONTRIBUTORS  : Kranti.Konganti@fda.hhs.gov
----------------------------------------------------------------------------------------
*/

// Enable DSL 2
nextflow.enable.dsl = 2

// Default routines for MAIN
include { pipelineBanner; stopNow; } from "${params.routines}"

// Our banner for CPIPES
log.info pipelineBanner()

/*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    NAMED WORKFLOW CAN BE USED TO RUN A SPECIFIC PIPELINE. THIS IS THE RECOMMENDED WAY. 
    NEED TO FIND A BETTER SOLUTION IF WE SEE A LOT OF PIPELINES.
    See: https://github.com/nf-core/rnaseq/issues/619
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/

switch ("${params.pipeline}") {
    case "nanofactory":
        include { NANOFACTORY } from "${params.workflows}${params.fs}${params.pipeline}"
        break
    case "centriflaken":
        include { CENTRIFLAKEN } from "${params.workflows}${params.fs}${params.pipeline}"
        break
    case "centriflaken_hy":
        include { CENTRIFLAKEN_HY } from "${params.workflows}${params.fs}${params.pipeline}"
        break
    default:
        stopNow("PLEASE MENTION A PIPELINE NAME. Ex: --pipeline centriflaken")
}

/*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    RUN ALL WORKFLOWS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/

workflow {
    // THIS IS REPETETIVE BUT WE ARE NOT ALLOWED TO INCLUDE "INCLUDE"
    // INSIDE WORKFLOW
    switch ("${params.pipeline}") {
        case "nanofactory":
            NANOFACTORY()
            break
        case "centriflaken":
            CENTRIFLAKEN()
            break
        case "centriflaken_hy":
            CENTRIFLAKEN_HY()
            break
    }
}

/*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    THE END
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/