Bio-MUST-Apps-FortyTwo
view release on metacpan or search on metacpan
bin/yaml-generator-42.pl view on Meta::CPAN
#!/usr/bin/env perl
# PODNAME: yaml-generator-42.pl
# ABSTRACT: Interactive or batch generator for 42 YAML config files
# CONTRIBUTOR: Mick VAN VLIERBERGHE <mvanvlierberghe@doct.uliege.be>
# TODO: add support for wordsize (default 3) in BRH phase?
# TODO: optimize vertical spacing in output (very tricky)
use autodie;
use Modern::Perl '2011';
use Smart::Comments '###';
use Getopt::Euclid qw(:vars);
use Template;
use Path::Class qw(dir file);
use Tie::IxHash;
use List::AllUtils qw(mesh);
use File::Basename;
use File::Find::Rule;
use Bio::MUST::Core;
use aliased 'Bio::MUST::Core::IdList';
use aliased 'Bio::MUST::Core::IdMapper';
use aliased 'Bio::MUST::Core::SeqId';
use aliased 'Bio::MUST::Core::Taxonomy';
use Bio::FastParsers::Constants qw(:files);
use Term::Completion::Path;
use IO::Prompter [
-verbatim,
-style => 'blue strong ',
-must => { 'be a string' => qr{\S+} }
];
# bold => [qw<boldly strong heavy emphasis emphatic highlight highlighted fort forte>],
# dark => [qw<darkly dim deep>],
# faint => [qw<faintly light soft>],
# underline => [qw<underlined underscore underscored italic italics>],
# blink => [qw<blinking flicker flickering flash flashing>],
# reverse => [qw<reversed inverse inverted>],
# concealed => [qw<hidden blank invisible>],
# reset => [qw<normal default standard usual ordinary regular>],
# bright_ => [qw< bright\s+ vivid\s+ >],
# red => [qw< scarlet vermilion crimson ruby cherry cerise cardinal carmine
# burgundy claret chestnut copper garnet geranium russet
# salmon titian coral cochineal rose cinnamon ginger gules >],
# yellow => [qw< gold golden lemon cadmium daffodil mustard primrose tawny
# amber aureate canary champagne citrine citron cream goldenrod honey straw >],
# green => [qw< olive jade pea emerald lime chartreuse forest sage vert >],
# cyan => [qw< aqua aquamarine teal turquoise ultramarine >],
# blue => [qw< azure cerulean cobalt indigo navy sapphire >],
# magenta => [qw< amaranthine amethyst lavender lilac mauve mulberry orchid periwinkle
# plum pomegranate violet purple aubergine cyclamen fuchsia modena puce
# purpure >],
# black => [qw< charcoal ebon ebony jet obsidian onyx raven sable slate >],
# white => [qw< alabaster ash chalk ivory milk pearl silver argent >],
# TODO: check whether IF/ELSE directives are needed in template pour tax_ args
# define config file template
my $tt_str = <<'EOT';
# ===Run mode===
# Two values are available: 'phylogenomic' and 'metagenomic'.
# The phylogenomic mode is designed to enrich multiple sequence alignements
# (ALIs) with orthologues for subsequent phylogenomic analysis. In contrast,
# the metagenomic mode is designed to probe contamination in transcriptomic
# data using reference ribosomal protein ALIs; it produces a taxonomic report
# per ALI listing the lineage of each identified orthologous sequence.
# When not specified, 'run_mode' internally defaults to 'phylogenomic'.
run_mode: [% run_mode %]
( run in 1.594 second using v1.01-cache-2.11-cpan-97f6503c9c8 )