Bio::Tools::CodonTable::is_start_codon: check in case of ambiguous codons (#266)
[bioperl-live.git] / lib / Bio / Seq / RichSeqI.pm
blob87949cd97030fa64d80b3036202b6039e2ac2231
2 # BioPerl module for Bio::Seq::RichSeqI
4 # Please direct questions and support issues to <bioperl-l@bioperl.org>
6 # Cared for by Ewan Birney <birney@ebi.ac.uk>
8 # Copyright Ewan Birney
10 # You may distribute this module under the same terms as perl itself
12 # POD documentation - main docs before the code
14 =head1 NAME
16 Bio::Seq::RichSeqI - interface for sequences from rich data sources, mostly databases
18 =head1 SYNOPSIS
20 @secondary = $richseq->get_secondary_accessions;
21 $division = $richseq->division;
22 $mol = $richseq->molecule;
23 @dates = $richseq->get_dates;
24 $seq_version = $richseq->seq_version;
25 $pid = $richseq->pid;
26 @keywords = $richseq->get_keywords;
28 =head1 DESCRIPTION
30 This interface extends the L<Bio::SeqI> interface to give additional
31 functionality to sequences with richer data sources, in particular from database
32 sequences (EMBL, GenBank and Swissprot). For a general implementation, please
33 see the documentation for L<Bio::Seq::RichSeq>.
35 =head1 FEEDBACK
37 =head2 Mailing Lists
39 User feedback is an integral part of the evolution of this
40 and other Bioperl modules. Send your comments and suggestions preferably
41 to one of the Bioperl mailing lists.
42 Your participation is much appreciated.
44 bioperl-l@bioperl.org - General discussion
45 http://bioperl.org/wiki/Mailing_lists - About the mailing lists
47 =head2 Support
49 Please direct usage questions or support issues to the mailing list:
51 I<bioperl-l@bioperl.org>
53 rather than to the module maintainer directly. Many experienced and
54 reponsive experts will be able look at the problem and quickly
55 address it. Please include a thorough description of the problem
56 with code and data examples if at all possible.
58 =head2 Reporting Bugs
60 Report bugs to the Bioperl bug tracking system to help us keep track
61 the bugs and their resolution. Bug reports can be submitted via the
62 web:
64 https://github.com/bioperl/bioperl-live/issues
66 =head1 AUTHOR - Ewan Birney
68 Email birney@ebi.ac.uk
70 =head1 APPENDIX
72 The rest of the documentation details each of the object methods. Internal
73 methods are usually preceded with a _
75 =cut
78 # Let the code begin...
81 package Bio::Seq::RichSeqI;
83 use strict;
85 use base qw(Bio::SeqI);
88 =head2 get_secondary_accessions
90 Title : get_secondary_accessions
91 Usage :
92 Function: Get the secondary accessions for a sequence.
94 An implementation that allows modification of this array
95 property should provide the methods add_secondary_accession
96 and remove_secondary_accessions, with obvious purpose.
98 Example :
99 Returns : an array of strings
100 Args : none
103 =cut
105 sub get_secondary_accessions{
106 my ($self,@args) = @_;
108 $self->throw("hit get_secondary_accessions in interface definition - error");
113 =head2 division
115 Title : division
116 Usage :
117 Function: Get (and set, depending on the implementation) the division for
118 a sequence.
120 Examples from GenBank are PLN (plants), PRI (primates), etc.
121 Example :
122 Returns : a string
123 Args :
126 =cut
128 sub division{
129 my ($self,@args) = @_;
131 $self->throw("hit division in interface definition - error");
136 =head2 molecule
138 Title : molecule
139 Usage :
140 Function: Get (and set, depending on the implementation) the molecule
141 type for the sequence.
143 This is not necessarily the same as Bio::PrimarySeqI::alphabet(),
144 because it is databank-specific.
145 Example :
146 Returns : a string
147 Args :
150 =cut
152 sub molecule{
153 my ($self,@args) = @_;
155 $self->throw("hit molecule in interface definition - error");
158 =head2 pid
160 Title : pid
161 Usage :
162 Function: Get (and set, depending on the implementation) the PID property
163 for the sequence.
164 Example :
165 Returns : a string
166 Args :
169 =cut
171 sub pid {
172 my ($self,@args) = @_;
174 $self->throw("hit pid in interface definition - error");
177 =head2 get_dates
179 Title : get_dates
180 Usage :
181 Function: Get (and set, depending on the implementation) the dates the
182 databank entry specified for the sequence
184 An implementation that allows modification of this array
185 property should provide the methods add_date and
186 remove_dates, with obvious purpose.
188 Example :
189 Returns : an array of strings
190 Args :
193 =cut
195 sub get_dates{
196 my ($self,@args) = @_;
198 $self->throw("hit get_dates in interface definition - error");
203 =head2 seq_version
205 Title : seq_version
206 Usage :
207 Function: Get (and set, depending on the implementation) the version string
208 of the sequence.
209 Example :
210 Returns : a string
211 Args :
212 Note : this differs from Bio::PrimarySeq version() in that this explicitly
213 refers to the sequence record version one would find in a typical
214 sequence file. It is up to the implementation whether this is set
215 separately or falls back to the more generic Bio::Seq::version()
217 =cut
219 sub seq_version{
220 my ($self,@args) = @_;
222 $self->throw("hit seq_version in interface definition - error");
226 =head2 get_keywords
228 Title : get_keywords
229 Usage : $obj->get_keywords()
230 Function: Get the keywords for this sequence object.
232 An implementation that allows modification of this array
233 property should provide the methods add_keyword and
234 remove_keywords, with obvious purpose.
236 Returns : an array of strings
237 Args :
240 =cut
242 sub get_keywords {
243 my ($self) = @_;
244 $self->throw("hit keywords in interface definition - error");