Bio-MUST-Drivers
view release on metacpan or search on metacpan
lib/Bio/MUST/Drivers/Hmmer/Model/Temporary.pm view on Meta::CPAN
package Bio::MUST::Drivers::Hmmer::Model::Temporary;
# ABSTRACT: Internal class for HMMER3 driver
# CONTRIBUTOR: Arnaud DI FRANCO <arnaud.difranco@gmail.com>
$Bio::MUST::Drivers::Hmmer::Model::Temporary::VERSION = '0.252830';
use Moose;
use namespace::autoclean;
use autodie;
use feature qw(say);
use Carp;
use File::Temp qw(tempfile);
use IPC::System::Simple qw(system);
use Module::Runtime qw(use_module);
use Path::Class;
extends 'Bio::MUST::Core::Ali::Temporary';
use aliased 'Bio::FastParsers::Hmmer::Model';
use Bio::MUST::Drivers::Utils qw(stringify_args);
has 'model_args' => (
is => 'ro',
isa => 'HashRef',
default => sub { {} },
);
has 'model' => (
is => 'ro',
isa => 'Maybe[Bio::FastParsers::Hmmer::Model]',
init_arg => undef,
lazy => 1,
builder => '_build_model',
);
with 'Bio::MUST::Drivers::Roles::Hmmerable' => {
-excludes => [ qw(scan) ]
};
## no critic (ProhibitUnusedPrivateSubroutines)
# overload Ali::Temporary default builder
sub _build_args {
return { clean => 1, degap => 0 };
}
sub _build_model {
my $self = shift;
# provision executable
my $app = use_module('Bio::MUST::Provision::Hmmer')->new;
$app->meet();
# skip model creation if no seqs
unless ($self->count_seqs) {
carp '[BMD] Warning: no sequence provided; returning without model!';
return;
}
# setup input/output files
my $in = $self->filename;
my $out = File::Temp->new(UNLINK => 0, EXLOCK => 0, SUFFIX => '.hmm');
# format hmmbuild (optional) arguments
my $args = $self->model_args;
( run in 0.788 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )