None available.
sub get_dna
{ my $self = shift;
my ($ref,$start,$stop,$class) = @_;
my $dna_db = $self->dna_db or return $self->SUPER::get_dna(@_);
return $dna_db->seq($ref,$start,$stop,$class); } |
sub make_object
{ my $self = shift;
my ($class,$name,$start,$stop) = @_;
if (my $db = $self->acedb) {
return $class->new(Text=>$name) if $class eq 'Note';
if ($start ne '') {
require Ace::Sequence::Homol;
return Ace::Sequence::Homol->new_homol($class,$name,$db,$start,$stop);
}
my $obj = $db->class->new($class=>$name,$self->acedb);
return $obj if defined $obj;
return $class->new(Text=>$name);
}
return $self->SUPER::make_object($class,$name,$start,$stop); } |
sub new
{ my $class = shift;
my $self = $class->SUPER::new(@_);
my ($dna_db,$acedb) = rearrange([[qw(DNADB DNA FASTA FASTA_DIR)],'ACEDB'],@_);
if ($dna_db) {
if (!ref($dna_db)) {
require Bio::DB::Fasta;
my $fasta_dir = $dna_db;
$dna_db = Bio::DB::Fasta->new($fasta_dir);
$dna_db or $class->throw("new(): Failed to create new Bio::DB::Fasta from files in $fasta_dir");
} else {
$dna_db->isa('Bio::DB::Fasta') or $class->throw("new(): $dna_db is not a Bio::DB::Fasta object");
}
$self->dna_db($dna_db);
}
if ($acedb) {
$acedb->isa('Ace') or $class->throw("$acedb is not an acedb accessor object");
$self->acedb($acedb);
}
$self; } |
Lincoln Stein <lstein@cshl.org>.
Copyright (c) 2002 Cold Spring Harbor Laboratory.
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
Title : freshen
Usage : $flag = Bio::DB::GFF->freshen_ace;
Function: Refresh internal acedb handle
Returns : flag if correctly freshened
Args : none
Status : Public
ACeDB has an annoying way of timing out, leaving dangling database
handles. This method will invoke the ACeDB reopen() method, which
causes dangling handles to be refreshed. It has no effect if you are
not using ACeDB to create ACeDB objects.