// // This file holds several functions specific to the main.nf workflow in the nf-core/taxprofiler pipeline // import nextflow.Nextflow class WorkflowMain { // // Citation string for pipeline // public static String citation(workflow) { return "If you use ${workflow.manifest.name} for your analysis please cite:\n\n" + // TODO nf-core: Add Zenodo DOI for pipeline after first release //"* The pipeline\n" + //" https://doi.org/10.5281/zenodo.XXXXXXX\n\n" + "* The nf-core framework\n" + " https://doi.org/10.1038/s41587-020-0439-x\n\n" + "* Software dependencies\n" + " https://github.com/${workflow.manifest.name}/blob/master/CITATIONS.md" } // // Generate help string // public static String help(workflow, params) { def command = "nextflow run ${workflow.manifest.name} --input samplesheet.csv --genome GRCh37 -profile docker" def help_string = '' help_string += NfcoreTemplate.logo(workflow, params.monochrome_logs) help_string += NfcoreSchema.paramsHelp(workflow, params, command) help_string += '\n' + citation(workflow) + '\n' help_string += NfcoreTemplate.dashedLine(params.monochrome_logs) return help_string } // // Generate parameter summary log string // public static String paramsSummaryLog(workflow, params) { def summary_log = '' summary_log += NfcoreTemplate.logo(workflow, params.monochrome_logs) summary_log += NfcoreSchema.paramsSummaryLog(workflow, params) summary_log += '\n' + citation(workflow) + '\n' summary_log += NfcoreTemplate.dashedLine(params.monochrome_logs) return summary_log } // // Validate parameters and print summary to screen // public static void initialise(workflow, params, log) { // Print help to screen if required if (params.help) { log.info help(workflow, params) System.exit(0) } // Print workflow version and exit on --version if (params.version) { String workflow_version = NfcoreTemplate.version(workflow) log.info "${workflow.manifest.name} ${workflow_version}" System.exit(0) } // Print parameter summary log to screen log.info paramsSummaryLog(workflow, params) // Validate workflow parameters via the JSON schema if (params.validate_params) { NfcoreSchema.validateParameters(workflow, params, log) } // Check that a -profile or Nextflow config has been provided to run the pipeline NfcoreTemplate.checkConfigProvided(workflow, log) // Check that conda channels are set-up correctly if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { Utils.checkCondaChannels(log) } // Check AWS batch settings NfcoreTemplate.awsBatch(workflow, params) // Check input has been provided if (!params.input) { Nextflow.error("Please provide an input samplesheet to the pipeline e.g. '--input samplesheet.csv'") } } // // Get attribute from genome config file e.g. fasta // public static Object getGenomeAttribute(params, attribute) { if (params.genomes && params.genome && params.genomes.containsKey(params.genome)) { if (params.genomes[ params.genome ].containsKey(attribute)) { return params.genomes[ params.genome ][ attribute ] } } return null } }