Mercurial > repos > fubar > egapx_runner
diff nf/ui.nf @ 0:d9c5c5b87fec draft
planemo upload for repository https://github.com/ncbi/egapx commit 8173d01b08d9a91c9ec5f6cb50af346edc8020c4
author | fubar |
---|---|
date | Sat, 03 Aug 2024 11:16:53 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nf/ui.nf Sat Aug 03 11:16:53 2024 +0000 @@ -0,0 +1,88 @@ +#!/usr/bin/env nextflow +// main nextflow script for EGAPx ui execution +// prepare data channels and call main subworkflow + +nextflow.enable.dsl=2 + +include { egapx } from './subworkflows/ncbi/main' +include { only_gnomon } from './subworkflows/ncbi/only_gnomon' + +params.verbose = false + + +process export { + publishDir "${params.output}", mode: 'copy', saveAs: { fn -> fn.substring(fn.lastIndexOf('/')+1) } + input: + path out_files + path annot_builder_output, stageAs: 'annot_builder_output/*' + // path locus + output: + path "*", includeInputs: true + script: + """ + echo "export script" + """ + stub: + """ + echo "export stub" + """ +} + + +workflow { + // Parse input parameters + def input_params = params.get('input', [:]) + def genome = input_params.get('genome', []) + def proteins = input_params.get('proteins', []) + def reads_query = input_params.get('reads_query', []) + def reads_ids = input_params.get('reads_ids', []) + def reads = input_params.get('reads', []) + def reads_metadata = input_params.get('reads_metadata', []) + def organelles = input_params.get('organelles', []) ?: [] + def tax_id = input_params.get('taxid', []) + def hmm_params = input_params.get('hmm', []) ?: [] + def hmm_taxid = input_params.get('hmm_taxid', []) ?: [] + def softmask = input_params.get('softmask', []) ?: [] + def max_intron = input_params.get('max_intron', []) + def genome_size_threshold = input_params.get('genome_size_threshold', []) + def rnaseq_alignments = input_params.get('rnaseq_alignments', []) ?: [] + def protein_alignments = input_params.get('protein_alignments', []) ?: [] + def task_params = params.get('tasks', [:]) + def func_name = params.get('func_name', '') + if (params.verbose) { + println("input params:\ngenome ${genome}") + println("proteins ${proteins}") + println("reads_query ${reads_query}") + println("reads_ids ${reads_ids}") + println("reads ${reads}") + println("reads_metadata ${reads_metadata}") + println("organelles ${organelles}") + println("tax_id ${tax_id}") + println("hmm_params ${hmm_params}") + println("hmm_taxid ${hmm_taxid}") + println("softmask ${softmask}") + println("max_intron ${max_intron}") + println("genome_size_threshold ${genome_size_threshold}") + println("rnaseq_alignments ${rnaseq_alignments}") + println("protein_alignments ${protein_alignments}") + println("func_name ${func_name}") + // Keep it last as it is large + println("task_params ${task_params}") + } + + if(func_name == 'only_gnomon') { + if (params.verbose) { + print('in gnomon block') + } + only_gnomon(genome, proteins, rnaseq_alignments, protein_alignments, organelles, tax_id, hmm_params, hmm_taxid, softmask, task_params) + export(only_gnomon.out.out_files, only_gnomon.out.evidence) + } + else { + if (params.verbose) { + print('in egapx block') + } + egapx(genome, proteins, reads_query, reads_ids, reads, reads_metadata, organelles, tax_id, hmm_params, hmm_taxid, softmask, max_intron, genome_size_threshold, task_params) + // export(egapx.out.out_files, egapx.out.annot_builder_output, egapx.out.locus) + export(egapx.out.out_files, egapx.out.annot_builder_output) + } +}