App-Mimosa
view release on metacpan or search on metacpan
lib/App/Mimosa/Database.pm view on Meta::CPAN
package App::Mimosa::Database;
use Moose;
use namespace::autoclean;
use Moose::Util::TypeConstraints;
use Cwd;
use File::Spec::Functions;
use File::Basename;
use autodie ':all';
use Bio::BLAST::Database;
#use Carp::Always;
# TODO: store this in a shared place, because App::Mimosa::Job has it too
enum 'Alphabet' => qw(protein nucleotide);
has alphabet => (
isa => 'Alphabet',
is => 'rw',
required => 1,
);
has db_basename => (
isa => 'Str',
is => 'rw',
required => 1,
);
has db => (
isa => 'Bio::BLAST::Database',
is => 'rw',
);
has context => (
is => 'rw',
);
sub get_sequence {
my ($self, $name) = @_;
my $db = Bio::BLAST::Database->open(
full_file_basename => $self->db_basename,
type => $self->alphabet,
write => 1,
create_dirs => 1,
);
$self->db($db);
$self->debug("Is it indexed? " . ( $self->db->indexed_seqs ? 1 : 0 ));
$self->debug("Complete? " . ( $self->db->files_are_complete ? 1 : 0 ));
$self->debug("get_sequence($name)");
my $sequence = $db->get_sequence($name);
return $sequence;
}
sub debug {
my ($self, $msg) = @_;
if ($self->context) {
$self->context->log->debug($msg);
}
( run in 1.340 second using v1.01-cache-2.11-cpan-5a3173703d6 )