Mercurial > repos > mahtabm > ensembl
diff variant_effect_predictor/Bio/DB/RandomAccessI.pm @ 0:1f6dce3d34e0
Uploaded
author | mahtabm |
---|---|
date | Thu, 11 Apr 2013 02:01:53 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/variant_effect_predictor/Bio/DB/RandomAccessI.pm Thu Apr 11 02:01:53 2013 -0400 @@ -0,0 +1,125 @@ +# POD documentation - main docs before the code +# +# $Id: RandomAccessI.pm,v 1.12 2002/10/22 07:38:29 lapp Exp $ +# + +=head1 NAME + +Bio::DB::RandomAccessI - Abstract interface for a sequence database + +=head1 SYNOPSIS + + # + # get a database object somehow using a concrete class + # + + $seq = $db->get_Seq_by_id('ROA1_HUMAN'); + + # + # $seq is a Bio::Seq object + # + +=head1 DESCRIPTION + +This is a pure interface class - in other words, all this does is define +methods which other (concrete) classes will actually implement. + +The Bio::DB::RandomAccessI class defines what methods a generic database class +should have. At the moment it is just the ability to make Bio::Seq objects +from a name (id) or a accession number. + +=head1 CONTACT + +Ewan Birney originally wrote this class. + +=head2 Reporting Bugs + +Report bugs to the Bioperl bug tracking system to help us keep track +the bugs and their resolution. Bug reports can be submitted via email +or the web: + + bioperl-bugs@bio.perl.org + http://bugzilla.bioperl.org/ + +=head1 APPENDIX + +The rest of the documentation details each of the object +methods. Internal methods are usually preceded with a _ + +=cut + + +# Let the code begin... + +package Bio::DB::RandomAccessI; + +use vars qw(@ISA); +use strict; + +use Bio::Root::RootI; +use Bio::Root::Root; + +@ISA = qw(Bio::Root::Root); + +=head2 get_Seq_by_id + + Title : get_Seq_by_id + Usage : $seq = $db->get_Seq_by_id('ROA1_HUMAN') + Function: Gets a Bio::Seq object by its name + Returns : a Bio::Seq object or undef if not found + Args : the id (as a string) of a sequence, + +=cut + +sub get_Seq_by_id{ + my ($self,@args) = @_; + $self->throw_not_implemented(); +} + +=head2 get_Seq_by_acc + + Title : get_Seq_by_acc + Usage : $seq = $db->get_Seq_by_acc('X77802'); + $seq = $db->get_Seq_by_acc(Locus => 'X77802'); + Function: Gets a Bio::Seq object by accession number + Returns : A Bio::Seq object or undef if not found + Args : accession number (as a string), or a two + element list consisting of namespace=>accession + Throws : "more than one sequences correspond to this accession" + if the accession maps to multiple primary ids and + method is called in a scalar context + +NOTE: The two-element form allows you to choose the namespace for the +accession number. + +=cut + +sub get_Seq_by_acc{ + my ($self,@args) = @_; + $self->throw_not_implemented(); +} + + +=head2 get_Seq_by_version + + Title : get_Seq_by_version + Usage : $seq = $db->get_Seq_by_version('X77802.1'); + Function: Gets a Bio::Seq object by sequence version + Returns : A Bio::Seq object + Args : accession.version (as a string) + Throws : "acc.version does not exist" exception + +=cut + + +sub get_Seq_by_version{ + my ($self,@args) = @_; + $self->throw_not_implemented(); +} + + + +## End of Package + +1; +