view release on metacpan or search on metacpan
lib/Bio/DB/SeqFeature/Store.pm view on Meta::CPAN
Title : types
Usage : @type_list = $db->types
Function: Get all the types in the database
Returns : array of Bio::DB::GFF::Typename objects
Args : none
Status : public
=cut
sub types {
shift->throw_not_implemented;
}
=head2 insert_sequence
Title : insert_sequence
Usage : $success = $db->insert_sequence($seqid,$sequence_string,$offset)
Function: Inserts sequence data into the database at the indicated offset
Returns : true if successful
Args : see below
Status : public
lib/Bio/DB/SeqFeature/Store.pm view on Meta::CPAN
Usage : @a = $db->attributes
Function: Returns list of all known attributes
Returns : Returns list of all known attributes
Args : nothing
Status : public
=cut
sub attributes {
my $self = shift;
shift->throw_not_implemented;
}
=head2 start_bulk_update,finish_bulk_update
Title : start_bulk_update,finish_bulk_update
Usage : $db->start_bulk_update
$db->finish_bulk_update
Function: Activate optimizations for large number of insertions/updates
Returns : nothing
lib/Bio/DB/SeqFeature/Store.pm view on Meta::CPAN
Returns : true on success
Args : optional boolean flag to erase contents of an existing database
Status : ABSTRACT METHOD; MUST BE IMPLEMENTED BY AN ADAPTOR
This method is the back end for init_database(). It must be
implemented by an adaptor that inherits from
Bio::DB::SeqFeature::Store. It returns true on success. @features = $db->features(-seqid=>'Chr1');
=cut
sub _init_database { shift->throw_not_implemented }
=head2 _store
Title : _store
Usage : $success = $db->_store($indexed,@objects)
Function: store seqfeature objects into database
Returns : true on success
Args : a boolean flag indicating whether objects are to be indexed,
and one or more objects
Status : ABSTRACT METHOD; MUST BE IMPLEMENTED BY AN ADAPTOR
lib/Bio/DB/SeqFeature/Store.pm view on Meta::CPAN
corresponding primary_id. The object is then updated with the
primary_id.
=cut
# _store($indexed,@objs)
sub _store {
my $self = shift;
my $indexed = shift;
my @objs = @_;
$self->throw_not_implemented;
}
=head2 _fetch
Title : _fetch
Usage : $feature = $db->_fetch($primary_id)
Function: fetch feature from database
Returns : feature
Args : primary id
Status : ABSTRACT METHOD; MUST BE IMPLEMENTED BY AN ADAPTOR
lib/Bio/DB/SeqFeature/Store.pm view on Meta::CPAN
This method is the back end for fetch(). It accepts a primary_id and
returns a feature object. It must be implemented by the adaptor.
In practice, the implementation will retrieve the serialized
Bio::SeqfeatureI object from the database and pass it to the thaw()
method to unserialize it and synchronize the primary_id.
=cut
# _fetch($id)
sub _fetch { shift->throw_not_implemented }
=head2 _fetch_many
Title : _fetch_many
Usage : $feature = $db->_fetch_many(@primary_ids)
Function: fetch many features from database
Returns : feature
Args : primary id
Status : private -- does not need to be implemented
lib/Bio/DB/SeqFeature/Store.pm view on Meta::CPAN
Returns : true on success
Args : A seqfeature object
Status : ABSTRACT METHOD; MUST BE IMPLEMENTED BY AN ADAPTOR
This method is called by reindex() to update the searchable indexes
for a feature object that has changed.
=cut
# this is called to index a feature
sub _update_indexes { shift->throw_not_implemented }
=head2 _start_reindexing, _end_reindexing
Title : _start_reindexing, _end_reindexing
Usage : $db->_start_reindexing()
$db->_end_reindexing
Function: flag that a series of reindexing operations is beginning/ending
Returns : true on success
Args : none
Status : MAY BE IMPLEMENTED BY AN ADAPTOR (optional)
lib/Bio/DB/SeqFeature/Store.pm view on Meta::CPAN
Status : ABSTRACT METHOD; MUST BE IMPLEMENTED BY ADAPTOR
This is the backend for features(), get_features_by_name(),
get_features_by_location(), etc. Arguments are as described for the
features() method, except that only the named-argument form is
recognized.
=cut
# bottleneck query generator
sub _features { shift->throw_not_implemented }
=head2 _search_attributes
Title : _search_attributes
Usage : @result_list = $db->_search_attributes("text search string",[$tag1,$tag2...],$limit)
Function: back end for the search_attributes() method
Returns : results list
Args : as per search_attributes()
Status : ABSTRACT METHOD; MUST BE IMPLEMENTED BY ADAPTOR
See search_attributes() for the format of the results list. The only
difference between this and the public method is that the tag list is
guaranteed to be an array reference.
=cut
sub _search_attributes { shift->throw_not_implemented }
=head2 can_store_parentage
Title : can_store_parentage
Usage : $flag = $db->can_store_parentage
Function: return true if this adaptor can store parent/child relationships
Returns : boolean
Args : none
Status : OPTIONAL; MAY BE IMPLEMENTED BY ADAPTORS
lib/Bio/DB/SeqFeature/Store.pm view on Meta::CPAN
Returns : number of children successfully stored
Args : parent feature and one or more children
Status : OPTIONAL; MAY BE IMPLEMENTED BY ADAPTORS
If can_store_parentage() returns true, then some store-aware features
(e.g. Bio::DB::SeqFeature) will invoke this method to store
feature/subfeature relationships in a normalized table.
=cut
sub _add_SeqFeature { shift->throw_not_implemented }
=head2 _fetch_SeqFeatures
Title : _fetch_SeqFeatures
Usage : @children = $db->_fetch_SeqFeatures($parent_feature)
Function: return the immediate subfeatures of the indicated feature
Returns : list of subfeatures
Args : the parent feature
Status : OPTIONAL; MAY BE IMPLEMENTED BY ADAPTORS
If can_store_parentage() returns true, then some store-aware features
(e.g. Bio::DB::SeqFeature) will invoke this method to retrieve
feature/subfeature relationships from the database.
=cut
# _get_SeqFeatures($parent,@list_of_child_types)
sub _fetch_SeqFeatures {shift->throw_not_implemented }
=head2 _insert_sequence
Title : _insert_sequence
Usage : $success = $db->_insert_sequence($seqid,$sequence_string,$offset)
Function: Inserts sequence data into the database at the indicated offset
Returns : true if successful
Args : see below
Status : ABSTRACT METHOD; MUST BE IMPLEMENTED BY ADAPTOR
This is the back end for insert_sequence(). Adaptors must implement
this method in order to store and retrieve nucleotide or protein
sequence.
=cut
sub _insert_sequence { shift->throw_not_implemented }
# _fetch_sequence() is similar to old dna() method
=head2 _fetch_sequence
Title : _fetch_sequence
Usage : $sequence = $db->_fetch_sequence(-seq_id=>$seqid,-start=>$start,-end=>$end)
Function: Fetch the indicated subsequence from the database
Returns : The sequence string (not a Bio::PrimarySeq object!)
Args : see below
Status : ABSTRACT METHOD; MUST BE IMPLEMENTED BY ADAPTOR
This is the back end for fetch_sequence(). Adaptors must implement
this method in order to store and retrieve nucleotide or protein
sequence.
=cut
sub _fetch_sequence { shift->throw_not_implemented }
sub seq {
my $self = shift;
my ($seq_id,$start,$end) = @_;
if (my $a = $self->dna_accessor) {
return $a->can('seq') ? $a->seq($seq_id,$start,$end)
:$a->can('fetch_sequence')? $a->fetch_sequence($seq_id,$start,$end)
: undef;
}
else {
lib/Bio/DB/SeqFeature/Store.pm view on Meta::CPAN
Function: Return all sequence IDs contained in database
Returns : list of sequence Ids
Args : none
Status : TO BE IMPLEMENTED BY ADAPTOR
This method is invoked by seq_ids() to return all sequence IDs
(coordinate systems) known to the database.
=cut
sub _seq_ids { shift->throw_not_implemented }
=head2 _start_bulk_update,_finish_bulk_update
Title : _start_bulk_update, _finish_bulk_update
Usage : $db->_start_bulk_update
$db->_finish_bulk_update
Function: Activate optimizations for large number of insertions/updates
Returns : nothing
Args : nothing
Status : OPTIONAL; MAY BE IMPLEMENTED BY ADAPTOR
lib/Bio/DB/SeqFeature/Store.pm view on Meta::CPAN
=item $count = $db-E<gt>_featurecount()
Return the number of features in the database. Needed for scalar
%tied_hash.
=back
=cut
sub _firstid { shift->throw_not_implemented }
sub _nextid { shift->throw_not_implemented }
sub _existsid { shift->throw_not_implemented }
sub _deleteid { shift->throw_not_implemented }
sub _clearall { shift->throw_not_implemented }
sub _featurecount { shift->throw_not_implemented }
=head1 Internal Methods
These methods are internal to Bio::DB::SeqFeature::Store and adaptors.
=head2 new_instance
Title : new_instance
Usage : $db = $db->new_instance()
lib/Bio/DB/SeqFeature/Store.pm view on Meta::CPAN
-type/-types Feature type of interest or array ref of types
-bins Number of bins across region. Defaults to 1000.
Note that this method uses an approximate algorithm that is only
accurate to 500 bp, so when dealing with bins that are smaller than
1000 bp, you may see some shifting of counts between adjacent bins.
=cut
sub coverage_array {
shift->throw_not_implemented;
}
package Bio::DB::SeqFeature::Store::FeatureIterator;
$Bio::DB::SeqFeature::Store::FeatureIterator::VERSION = '1.7.5';
sub new {
my $self = shift;
my @features = @_;
return bless \@features,ref $self || $self;
}