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