BioPerl
view release on metacpan or search on metacpan
Bio/DB/Flat.pm view on Meta::CPAN
sub _config_path {
my $self = shift;
$self->_catfile($self->_config_name);
}
sub _catfile {
my $self = shift;
my $component = shift;
File::Spec->catfile($self->directory,$self->dbname,$component);
}
sub _config_name { CONFIG_FILE_NAME }
sub _path2fileno {
my $self = shift;
my $path = shift;
return $self->add_flat_file($path)
unless exists $self->{flat_flat_file_no}{$path};
$self->{flat_flat_file_no}{$path};
}
sub _fileno2path {
my $self = shift;
my $fileno = shift;
$self->{flat_flat_file_path}{$fileno};
}
sub _files {
my $self = shift;
my $paths = $self->{flat_flat_file_no};
return keys %$paths;
}
=head2 fetch
Title : fetch
Usage : $index->fetch( $id )
Function: Returns a Bio::Seq object from the index
Example : $seq = $index->fetch( 'dJ67B12' )
Returns : Bio::Seq object
Args : ID
Deprecated. Use get_Seq_by_id instead.
=cut
sub fetch { shift->get_Seq_by_id(@_) }
=head2 To Be Implemented in Subclasses
The following methods MUST be implemented by subclasses.
=cut
# create real live Bio::Seq object
sub get_Seq_by_id {
my $self = shift;
my $id = shift;
$self->throw_not_implemented;
}
# fetch array of Bio::Seq objects
sub get_Seq_by_acc {
my $self = shift;
return $self->get_Seq_by_id(shift) if @_ == 1;
my ($ns,$key) = @_;
$self->throw_not_implemented;
}
sub fetch_raw {
my ($self,$id,$namespace) = @_;
$self->throw_not_implemented;
}
sub default_file_format {
my $self = shift;
$self->throw_not_implemented;
}
sub _store_index {
my $self = shift;
my ($ids,$file,$offset,$length) = @_;
$self->throw_not_implemented;
}
=head2 May Be Overridden in Subclasses
The following methods MAY be overridden by subclasses.
=cut
sub default_primary_namespace {
return "ACC";
}
sub default_secondary_namespaces {
return;
}
sub seq_to_ids {
my $self = shift;
my $seq = shift;
my %ids;
$ids{$self->primary_namespace} = $seq->accession_number;
\%ids;
}
sub DESTROY {
my $self = shift;
$self->close;
}
1;
( run in 0.777 second using v1.01-cache-2.11-cpan-39bf76dae61 )