Bio-Palantir

 view release on metacpan or  search on metacpan

bin/generate_bgc_report.pl  view on Meta::CPAN

#!/usr/bin/env perl
# PODNAME: generate_bgc_report.pl
# ABSTRACT: Generates PDF/Word reports from antiSMASH results
# CONTRIBUTOR: Denis BAURAIN <denis.baurain@uliege.be>

use Modern::Perl '2011';
use autodie;

use Smart::Comments;

use Carp;
use Const::Fast;
use File::Basename qw(fileparse);
use File::ShareDir qw(dist_dir);
use File::Temp;
use Getopt::Euclid qw(:vars);
use Path::Class qw(dir file);
use Template;

use aliased 'Bio::Palantir::Parser';


const my $DATA_PATH => dist_dir('Bio-Palantir') . '/';

# check BGC type
if (@ARGV_types) {
    Parser->is_cluster_type_ok(@ARGV_types);
}

my $infile = $ARGV_report_file;

#TODO use abbr seqids in genomes to get taxonomic informations
my ($base, $path) = fileparse($infile);

croak 'Does not work with regions.js reports (antiSMASH 5),'
    . 'an implementation might come soon!'
    if $base eq 'regions.js'
;

$path = dir($path)->absolute;

my $defline = ( split '/', $path )[-1];
$defline =~ s/_/ /g;

my $report = Parser->new( file => $infile );
my $root = $report->root;

my %vars_for = (
    name          => $defline,
    path          => $path,
    clusters_count => $root->count_clusters,
    domains_count => $root->count_domains,
    );

# get genecluster informations
my $i = 0;

for my $cluster ($root->all_clusters) {

    if (@ARGV_types) {
        next unless
            grep { $cluster->type =~ m/$_/xmsi } @ARGV_types;
    }
    my $cluster_rank = $cluster->rank;
   
    my $type = lc $cluster->type;



( run in 0.787 second using v1.01-cache-2.11-cpan-b16cb0d3907 )