Mercurial > repos > fubar > egapx_runner
diff nf/subworkflows/ncbi/gnomon/locus_link/main.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/subworkflows/ncbi/gnomon/locus_link/main.nf Sat Aug 03 11:16:53 2024 +0000 @@ -0,0 +1,116 @@ +#!/usr/bin/env nextflow +nextflow.enable.dsl=2 + +include { merge_params } from '../../utilities' + +workflow locus_link { + take: + best_refseq_prot_hit + orthologs + annotation + gencoll_asn + gnomon_lds2_source + best_prot_hit + track_loci + comparisons + curr_prev_compare + gnomon_biotypes + lxr_data + proteins_asn + name_from_ortholog + parameters // Map : extra parameter and parameter update + main: + default_params = "" + effective_params = merge_params(default_params, parameters, 'locus_link') + run_locus_link(best_refseq_prot_hit, orthologs, annotation, + gencoll_asn, gnomon_lds2_source, best_prot_hit, track_loci, comparisons, curr_prev_compare, + gnomon_biotypes, lxr_data, proteins_asn, name_from_ortholog, default_params) + emit: + best_gnomon_prot_hit = run_locus_link.out.best_gnomon_prot_hit + best_refseq_prot_hit = run_locus_link.out.best_refseq_prot_hit + locustypes = run_locus_link.out.locustypes + locus = run_locus_link.out.locus + stats = run_locus_link.out.stats + all = run_locus_link.out.all +} + + + +process run_locus_link { + input: + path best_refseq_prot_hit + path orthologs + path annotation + path gencoll_asn + path gnomon_lds2_source, stageAs: 'genome/*' + path best_prot_hit + path track_loci + path comparisons + path curr_prev_compare + path gnomon_biotypes + path lxr_data + path proteins_asn + path name_from_ortholog + val parameters + output: + path ('output/best_gnomon_prot_hit.tsv'), emit: 'best_gnomon_prot_hit' + path ('output/best_refseq_prot_hit.tsv'), emit: 'best_refseq_prot_hit' + path ('output/locustypes.tsv'), emit: 'locustypes' + path ('output/locus.lnk'), emit: 'locus' + path ('output/stats.xml'), emit: 'stats' + path ('output/*'), emit: 'all' + script: + """ + mkdir -p output + mkdir -p ./asncache/ + prime_cache -cache ./asncache/ -ifmt asnb-seq-entry -i $proteins_asn -oseq-ids /dev/null -split-sequences + + lds2_indexer -source genome/ -db LDS2 + echo "${best_prot_hit.join('\n')}" > best_prot_hit.mft + extract_prot_names -alns best_prot_hit.mft -nogenbank -o output/best_gnomon_prot_hit.tsv -asn-cache ./asncache/ -lds2 LDS2 + echo "${best_refseq_prot_hit.join('\n')}" > best_refseq_prot_hit.mft + extract_prot_names -alns best_refseq_prot_hit.mft -nogenbank -o output/best_refseq_prot_hit.tsv -asn-cache ./asncache/ -lds2 LDS2 + echo "${annotation.join('\n')}" > annotation.mft + echo "${curr_prev_compare.join('\n')}" > curr_prev_compare.mft + echo "${comparisons.join('\n')}" > comparisons.mft + str="" + if [ ! -z "$orthologs" ] + then + str="\$str -orthologs $orthologs" + fi + if [ ! -z "$lxr_data" ] + then + str="\$str -lxr $lxr_data" + else + touch lxr_data + str="\$str -lxr lxr_data" + fi + + if [ ! -z "$track_loci" ] + then + str="\$str -locus_track $track_loci" + else + touch track_loci + str="\$str -locus_track track_loci" + fi + if [ ! -z "$name_from_ortholog" ] + then + str="\$str -name_from_ortholog_rpt $name_from_ortholog" + else + touch name_from_ortholog + str="\$str -name_from_ortholog_rpt name_from_ortholog" + fi + + locus_type -no_acc_reserve -annots annotation.mft -gc $gencoll_asn -gnomon_biotype $gnomon_biotypes -o_stats output/stats.xml -o_locustypes output/locustypes.tsv -o_locus_lnk output/locus.lnk -annotcmp comparisons.mft -annotcmp_pb curr_prev_compare.mft \$str + """ + stub: + """ + mkdir -p output + touch output/best_gnomon_prot_hit.tsv + touch output/best_refseq_prot_hit.tsv + touch output/locustypes.tsv + touch output/locus.lnk + touch output/stats.xml + """ +} +