annotate variant_effect_predictor/Bio/DB/UpdateableSeqI.pm @ 0:2bc9b66ada89 draft default tip

Uploaded
author mahtabm
date Thu, 11 Apr 2013 06:29:17 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
2 # $Id: UpdateableSeqI.pm,v 1.6 2002/12/01 00:05:19 jason Exp $
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
3 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
4 # BioPerl module for Bio::DB::UpdateableSeqI
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
5 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
6 # Cared for by Jason Stajich <jason@bioperl.org>
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
7 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
8 # Copyright Jason Stajich
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
9 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
10 # You may distribute this module under the same terms as perl itself
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
11 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
12 # _history
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
13 # June 18, 2000 - module begun
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
14 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
15 # POD Doc - main docs before code
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
16
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
17 =head1 NAME
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
18
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
19 Bio::DB::UpdateableSeqI - An interface for writing to a database of sequences.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
20
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
21 =head1 SYNOPSIS
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
22
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
23 # get a Bio::DB::UpdateableSeqI somehow
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
24 eval {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
25 my ( @updatedseqs, @newseqs, @deadseqs);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
26 my $seq = $db->get_Seq_by_id('ROA1_HUMAN');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
27 $seq->desc('a new description');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
28
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
29 push @updatedseqs, $seq;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
30
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
31 $db->write_seq(\@updatedseqs, \@newseqs, \@deadseqs);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
32 };
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
33 if( $@ ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
34 print STDERR "an error when trying to write seq : $@\n";
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
35 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
36
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
37 =head1 DESCRIPTION
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
38
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
39 This module seeks to provide a simple method for pushing sequence changes
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
40 back to a Sequence Database - which can be an SQL compliant database, a file
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
41 based database, AceDB, etc.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
42
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
43 =head1 AUTHOR
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
44
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
45 Jason Stajich E<lt>jason@bioperl.orgE<gt>
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
46
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
47 =head2 Reporting Bugs
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
48
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
49 Report bugs to the Bioperl bug tracking system to help us keep track
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
50 the bugs and their resolution. Bug reports can be submitted via email
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
51 or the web:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
52
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
53 bioperl-bugs@bioperl.org
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
54 http://bugzilla.bioperl.org/
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
55
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
56 =head1 APPENDIX
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
57
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
58 The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
59
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
60 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
61
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
62 #Lets start some code
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
63
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
64 package Bio::DB::UpdateableSeqI;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
65
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
66 use strict;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
67
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
68 use vars qw( @ISA );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
69
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
70 use Bio::DB::SeqI;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
71
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
72 @ISA = qw(Bio::DB::SeqI);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
73
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
74 =head2 write_seq
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
75
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
76 Title : write_seq
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
77 Usage : write_seq(\@updatedseqs, \@addedseqs, \@deadseqs)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
78 Function: updates sequences in first array,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
79 adds sequences in the second array,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
80 and removes sequences in the third array.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
81 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
82 Returns :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
83 Args : arrays of sequence objects that must be obtained from
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
84 Bio::DB::UpdateableSeqI.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
85
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
86 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
87
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
88 sub write_seq {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
89 my ($self) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
90
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
91 $self->throw("Abstract database call of write_seq. Your database has not implemented this method!");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
92
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
93 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
94
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
95 =head2 _add_seq
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
96
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
97 Title : _add_seq
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
98 Usage : _add_seq($seq)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
99 Function: Adds a new sequence
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
100 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
101 Returns : will throw an exception if
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
102 sequences accession number already exists
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
103 Args : a new seq object - should have an accession number
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
104
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
105 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
106
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
107 sub _add_seq {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
108 my ($self ) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
109
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
110 $self->throw("Abstract database call of _add_seq. Your database has not implemented this method!");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
111
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
112 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
113
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
114 =head2 _remove_seq
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
115
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
116 Title : _remove_seq
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
117 Usage : _remove_seq($seq)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
118 Function: Removes an existing sequence
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
119 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
120 Returns : will throw an exception if
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
121 sequence does not exists for the primary_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
122 Args : a seq object that was retrieved from Bio::DB::UpdateableSeqI
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
123
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
124 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
125
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
126 sub _remove_seq {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
127 my ($self) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
128
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
129 $self->throw("Abstract database call of _remove_seq. Your database has not implemented this method!");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
130
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
131 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
132
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
133 =head2 _update_seq
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
134
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
135 Title : _update_seq
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
136 Usage : _update_seq($seq)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
137 Function: Updates a sequence
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
138 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
139 Returns : will throw an exception if
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
140 sequence is out of sync from expected val.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
141 Args : a seq object that was retrieved from Bio::DB::UpdateableSeqI
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
142
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
143 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
144
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
145 sub _update_seq {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
146 my ($self) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
147
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
148 $self->throw("Abstract database call of _update_seq. Your database has not implemented this method!");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
149
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
150 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
151
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
152
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
153 =head1 Methods inherieted from Bio::DB::RandomAccessI
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
154
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
155 =head2 get_Seq_by_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
156
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
157 Title : get_Seq_by_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
158 Usage : $seq = $db->get_Seq_by_id('ROA1_HUMAN')
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
159 Function: Gets a Bio::Seq object by its name
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
160 Returns : a Bio::Seq object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
161 Args : the id (as a string) of a sequence
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
162 Throws : "id does not exist" exception
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
163
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
164
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
165 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
166
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
167 =head2 get_Seq_by_acc
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
168
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
169 Title : get_Seq_by_acc
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
170 Usage : $seq = $db->get_Seq_by_acc('X77802');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
171 Function: Gets a Bio::Seq object by accession number
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
172 Returns : A Bio::Seq object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
173 Args : accession number (as a string)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
174 Throws : "acc does not exist" exception
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
175
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
176
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
177 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
178
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
179 =head1 Methods inheirited from Bio::DB::SeqI
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
180
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
181 =head2 get_PrimarySeq_stream
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
182
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
183 Title : get_PrimarySeq_stream
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
184 Usage : $stream = get_PrimarySeq_stream
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
185 Function: Makes a Bio::DB::SeqStreamI compliant object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
186 which provides a single method, next_primary_seq
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
187 Returns : Bio::DB::SeqStreamI
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
188 Args : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
189
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
190
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
191 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
192
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
193 =head2 get_all_primary_ids
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
194
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
195 Title : get_all_ids
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
196 Usage : @ids = $seqdb->get_all_primary_ids()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
197 Function: gives an array of all the primary_ids of the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
198 sequence objects in the database. These
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
199 maybe ids (display style) or accession numbers
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
200 or something else completely different - they
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
201 *are not* meaningful outside of this database
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
202 implementation.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
203 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
204 Returns : an array of strings
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
205 Args : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
206
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
207
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
208 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
209
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
210 =head2 get_Seq_by_primary_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
211
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
212 Title : get_Seq_by_primary_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
213 Usage : $seq = $db->get_Seq_by_primary_id($primary_id_string);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
214 Function: Gets a Bio::Seq object by the primary id. The primary
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
215 id in these cases has to come from $db->get_all_primary_ids.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
216 There is no other way to get (or guess) the primary_ids
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
217 in a database.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
218
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
219 The other possibility is to get Bio::PrimarySeqI objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
220 via the get_PrimarySeq_stream and the primary_id field
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
221 on these objects are specified as the ids to use here.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
222 Returns : A Bio::Seq object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
223 Args : accession number (as a string)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
224 Throws : "acc does not exist" exception
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
225
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
226
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
227 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
228
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
229 1;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
230
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
231
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
232