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