kkonganti@101: #!/usr/bin/env nextflow kkonganti@101: kkonganti@101: /* kkonganti@101: ---------------------------------------------------------------------------------------- kkonganti@101: cfsan-dev/cpipes kkonganti@101: ---------------------------------------------------------------------------------------- kkonganti@101: NAME : CPIPES kkonganti@101: DESCRIPTION : Modular Nextflow pipelines at CFSAN, FDA. kkonganti@101: GITLAB : https://cfsan-git.fda.gov/cfsan-dev/cpipes kkonganti@101: JIRA : https://sde.fda.gov/jira/projects/CPIPES/ kkonganti@101: CONTRIBUTORS : Kranti.Konganti@fda.hhs.gov kkonganti@101: ---------------------------------------------------------------------------------------- kkonganti@101: */ kkonganti@101: kkonganti@101: // Enable DSL 2 kkonganti@101: nextflow.enable.dsl = 2 kkonganti@101: kkonganti@101: // Default routines for MAIN kkonganti@101: include { pipelineBanner; stopNow; } from "${params.routines}" kkonganti@101: kkonganti@101: // Our banner for CPIPES kkonganti@101: log.info pipelineBanner() kkonganti@101: kkonganti@101: /* kkonganti@101: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kkonganti@101: NAMED WORKFLOW CAN BE USED TO RUN A SPECIFIC PIPELINE. THIS IS THE RECOMMENDED WAY. kkonganti@101: NEED TO FIND A BETTER SOLUTION IF WE SEE A LOT OF PIPELINES. kkonganti@101: See: https://github.com/nf-core/rnaseq/issues/619 kkonganti@101: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kkonganti@101: */ kkonganti@101: kkonganti@101: switch ("${params.pipeline}") { kkonganti@101: case "nanofactory": kkonganti@101: include { NANOFACTORY } from "${params.workflows}${params.fs}${params.pipeline}" kkonganti@101: break kkonganti@101: case "centriflaken": kkonganti@101: include { CENTRIFLAKEN } from "${params.workflows}${params.fs}${params.pipeline}" kkonganti@101: break kkonganti@101: case "centriflaken_hy": kkonganti@101: include { CENTRIFLAKEN_HY } from "${params.workflows}${params.fs}${params.pipeline}" kkonganti@101: break kkonganti@101: default: kkonganti@101: stopNow("PLEASE MENTION A PIPELINE NAME. Ex: --pipeline centriflaken") kkonganti@101: } kkonganti@101: kkonganti@101: /* kkonganti@101: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kkonganti@101: RUN ALL WORKFLOWS kkonganti@101: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kkonganti@101: */ kkonganti@101: kkonganti@101: workflow { kkonganti@101: // THIS IS REPETETIVE BUT WE ARE NOT ALLOWED TO INCLUDE "INCLUDE" kkonganti@101: // INSIDE WORKFLOW kkonganti@101: switch ("${params.pipeline}") { kkonganti@101: case "nanofactory": kkonganti@101: NANOFACTORY() kkonganti@101: break kkonganti@101: case "centriflaken": kkonganti@101: CENTRIFLAKEN() kkonganti@101: break kkonganti@101: case "centriflaken_hy": kkonganti@101: CENTRIFLAKEN_HY() kkonganti@101: break kkonganti@101: } kkonganti@101: } kkonganti@101: kkonganti@101: /* kkonganti@101: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kkonganti@101: THE END kkonganti@101: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kkonganti@101: */