diff variant_effect_predictor/Bio/DB/SeqI.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/SeqI.pm	Thu Apr 11 02:01:53 2013 -0400
@@ -0,0 +1,179 @@
+
+#
+# $Id: SeqI.pm,v 1.7 2002/10/22 07:38:29 lapp Exp $
+#
+# BioPerl module for Bio::DB::SeqI.pm
+#
+# Cared for by Ewan Birney <birney@ebi.ac.uk>
+#
+# Copyright Ewan Birney
+#
+# You may distribute this module under the same terms as perl itself
+
+# POD documentation - main docs before the code
+
+=head1 NAME
+
+Bio::DB::SeqI - Abstract Interface for Sequence databases
+
+=head1 SYNOPSIS
+
+   # get a Bio::DB::SeqI somehow
+
+   $seq = $seqdb->get_Seq_by_id('some-id');
+   $seq = $seqdb->get_Seq_by_acc('some-accession-number');
+
+   @ids = $seqdb->get_all_ids();
+   $stream = $seqdb->get_PrimarySeq_stream();
+   while((my $seq = $stream->next_seq()) {
+      # $seq is a PrimarySeqI compliant object
+   }
+
+
+=head1 DESCRIPTION
+
+Abstract interface for a sequence database
+
+=head1 FEEDBACK
+
+=head2 Mailing Lists
+
+User feedback is an integral part of the evolution of this and other
+Bioperl modules. Send your comments and suggestions preferably to one
+of the Bioperl mailing lists. Your participation is much appreciated.
+
+  bioperl-l@bioperl.org              - General discussion
+  http://bioperl.org/MailList.shtml  - About the mailing lists
+
+=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 AUTHOR - Ewan Birney
+
+Email birney@ebi.ac.uk
+
+Describe contact details here
+
+=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::SeqI;
+use vars qw(@ISA);
+use strict;
+
+# Object preamble - inherits from Bio::Root::Object
+
+use Bio::DB::RandomAccessI;
+@ISA = qw(Bio::DB::RandomAccessI);
+
+=head1 Methods inherieted from Bio::DB::RandomAccessI
+
+=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
+ Args    : the id (as a string) of a sequence
+ Throws  : "id does not exist" exception
+
+
+=cut
+
+=head2 get_Seq_by_acc
+
+ Title   : get_Seq_by_acc
+ Usage   : $seq = $db->get_Seq_by_acc('X77802');
+ Function: Gets a Bio::Seq object by accession number
+ Returns : A Bio::Seq object
+ Args    : accession number (as a string)
+ Throws  : "acc does not exist" exception
+
+
+=cut
+
+=head1 Methods [that were] specific for Bio::DB::SeqI
+
+=head2 get_PrimarySeq_stream
+
+ Title   : get_PrimarySeq_stream
+ Usage   : $stream = get_PrimarySeq_stream
+ Function: Makes a Bio::SeqIO compliant object
+           which provides a single method, next_seq
+ Returns : Bio::SeqIO
+ Args    : none
+
+=cut
+
+sub get_PrimarySeq_stream{
+   my ($self,@args) = @_;
+
+   $self->throw("Object did not provide a PrimarySeq stream object");
+}
+
+=head2 get_all_primary_ids
+
+ Title   : get_all_ids
+ Usage   : @ids = $seqdb->get_all_primary_ids()
+ Function: gives an array of all the primary_ids of the 
+           sequence objects in the database. These
+           maybe ids (display style) or accession numbers
+           or something else completely different - they
+           *are not* meaningful outside of this database
+           implementation.
+ Example :
+ Returns : an array of strings
+ Args    : none
+
+
+=cut
+
+sub get_all_primary_ids{
+   my ($self,@args) = @_;
+   $self->throw("Object did not provide a get_all_ids method");
+}
+
+
+=head2 get_Seq_by_primary_id
+
+ Title   : get_Seq_by_primary_id
+ Usage   : $seq = $db->get_Seq_by_primary_id($primary_id_string);
+ Function: Gets a Bio::Seq object by the primary id. The primary
+           id in these cases has to come from $db->get_all_primary_ids.
+           There is no other way to get (or guess) the primary_ids
+           in a database.
+
+           The other possibility is to get Bio::PrimarySeqI objects
+           via the get_PrimarySeq_stream and the primary_id field
+           on these objects are specified as the ids to use here.
+ Returns : A Bio::Seq object
+ Args    : accession number (as a string)
+ Throws  : "acc does not exist" exception
+
+
+=cut
+
+sub get_Seq_by_primary_id {
+   my ($self,@args) = @_;
+
+   $self->throw("Abstract database call of get_Seq_by_primary_id. Your database has not implemented this method!");
+
+}
+
+1;
+
+
+