annotate variant_effect_predictor/Bio/Seq/PrimedSeq.pm @ 1:d6778b5d8382 draft default tip

Deleted selected files
author willmclaren
date Fri, 03 Aug 2012 10:05:43 -0400
parents 21066c0abaf5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
1 # BioPerl module for Bio::PrimedSeq
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
2 #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
3 # Cared for by Chad Matsalla <bioinformatics1@dieselwurks.com>
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
4 #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
5 # Copyright Chad Matsalla
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
6 #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
7 # You may distribute this module under the same terms as perl itself
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
8
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
9 # POD documentation - main docs before the code
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
10
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
11 =head1 Bio::Seq::PrimedSeq
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
12
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
13 Bio::Seq::PrimedSeq - A representation of a sequence and two primers flanking a
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
14 target region for amplification
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
15
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
16 =head1 SYNOPSIS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
17
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
18 # create a sequence
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
19 my $sequence = "ctagctagctagctagctagctagctagctgatcgtagctagctagct";
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
20 # create left and right primer seqfeatures
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
21 # unfortunately, I haven't created constructors for these yet.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
22 my $left = Bio::SeqFeature::Primer();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
23 my $right = Bio::SeqFeature::Primer();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
24 # now create the PrimedSeq
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
25 $primedseq = new Bio::Seq::PrimedSeq(
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
26 -seq => $sequence,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
27 -display_id => "chads_fantastic_sequence",
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
28 -LEFT_PRIMER => $left,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
29 -RIGHT_PRIMER => $right,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
30 -TARGET => '513,26'
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
31 -PRIMER_PRODUCT_SIZE_RANGE => '100-500'
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
32 -PRIMER_FILE_FLAG => '0'
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
33 -PRIMER_LIBERAL_BASE => '1'
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
34 -PRIMER_NUM_RETURN => '1'
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
35 -PRIMER_FIRST_BASE_INDEX => '1'
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
36 -PRIMER_EXPLAIN_FLAG => '1'
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
37 -PRIMER_PRODUCT_SIZE => '185'
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
38 );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
39 # get the amplified region
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
40 my $amplified_sequence = $primed_seq->get_amplified_sequence();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
41
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
42 =head1 DESCRIPTION
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
43
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
44 This module is a slightly glorified capsule containg a primed seqBuence. It was
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
45 created to address the fact that a primer is more the a seqfeature and there
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
46 need to be ways to represent the primer-sequence complex and the behaviors and
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
47 attributes that are associated with the complex.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
48
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
49 =head1 FEEDBACK
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
50
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
51 User feedback is an integral part of the evolution of this and other
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
52 Bioperl modules. Send your comments and suggestions preferably to one
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
53 of the Bioperl mailing lists. Your participation is much appreciated.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
54
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
55 bioperl-l@bioperl.org - General discussion
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
56 http://bio.perl.org/MailList.html - About the mailing lists
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
57
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
58 =head2 Reporting Bugs
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
59
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
60 Report bugs to the Bioperl bug tracking system to help us keep track
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
61 the bugs and their resolution. Bug reports can be submitted via email
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
62 or the web:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
63
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
64 bioperl-bugs@bio.perl.org
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
65 http://bugzilla.bioperl.org/
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
66
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
67 =head1 APPENDIX
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
68
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
69 The rest of the documentation details each of the object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
70 methods. Internal methods are usually preceded with a _
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
71
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
72 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
73
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
74
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
75 # Let the code begin...
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
76
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
77
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
78 package Bio::Seq::PrimedSeq;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
79 use vars qw(@ISA);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
80 use strict;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
81
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
82 use Bio::RangeI;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
83
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
84 @ISA = qw(Bio::Seq);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
85
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
86
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
87 =head2 new
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
88
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
89 Title : new()
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
90 Usage : $primed_sequence = new Bio::SeqFeature::Primer( -seq => $sequence,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
91 -left_primer => $left_primer,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
92 -right_primer => $right_primer);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
93 Function: A constructor for an object representing a primed sequence
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
94 Returns : A Bio::Seq::PrimedSeq object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
95 Args :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
96 -seq => a Bio::Seq object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
97 -left_primer => a Bio::SeqFeature::Primer object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
98 -right_primer => a Bio::SeqFeature::Primer object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
99 Many other parameters can be included including all of the output
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
100 parameters from the primer3 program.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
101 Developer Notes: This is incomplete and doesn't work. As of ISMB2002 I am working on it.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
102
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
103
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
104 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
105
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
106 sub new {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
107 my($class,@args) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
108 my %arguments = @args;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
109 my $self = $class->SUPER::new(@args);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
110 # these are the absolute minimum components required to make
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
111 # a primedseq
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
112 my $newkey;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
113 foreach my $key (sort keys %arguments) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
114 ($newkey = $key) =~ s/-//;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
115 $self->{$newkey} = $arguments{$key};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
116 push @{$self->{arguments}},$newkey;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
117 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
118 # and now the insurance- make sure that things are ok
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
119 if (!$self->{target_sequence} || !$self->{left_primer} || !$self->{right_primer} ) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
120 $self->throw("You must provide a target_sequence, left_primer, and right_primer to create this object.");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
121 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
122 if (ref($self->{target_sequence}) ne "Bio::Seq") {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
123 $self->throw("The target_sequence must be a Bio::Seq to create this object.");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
124 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
125 if (ref($self->{left_primer}) ne "Bio::SeqFeature::Primer" || ref($self->{right_primer}) ne "Bio::SeqFeature::Primer") {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
126 $self->throw("You must provide a left_primer and right_primer, both as Bio::SeqFeature::Primer to create this object.");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
127 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
128 return $self;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
129 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
130
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
131
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
132 =head2 get_left_primer
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
133
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
134 Title : get_left_primer();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
135 Usage : $left_primer = $primedseq->get_left_primer();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
136 Function: A getter for the left primer in thie PrimedSeq object.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
137 Returns : A Bio::SeqFeature::Primer object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
138 Args : None.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
139
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
140 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
141
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
142 sub get_left_primer() {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
143 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
144
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
145
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
146
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
147
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
148 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
149
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
150
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
151
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
152
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
153
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
154
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
155
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
156
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
157
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
158
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
159
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
160
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
161 =head2 Bio::RangeI methods
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
162
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
163 List of interfaces inherited from Bio::RangeI (see L<Bio::RangeI>
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
164 for details).
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
165
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
166 =head2 start
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
167
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
168 Title : start
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
169 Usage : $start = $feat->start
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
170 Function: Returns the start coordinate of the feature
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
171 Returns : integer
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
172 Args : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
173 Developer Notes:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
174 This is entirely dependent on the sequence to which this primer is attached!
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
175 I think that there could be trouble if one takes this primer from sequence 1
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
176 and naively place it on sequence 2 without updating this
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
177 ** This is incomplete at this time.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
178 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
179
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
180 sub start() {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
181 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
182
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
183
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
184 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
185
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
186
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
187
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
188
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
189 =head2 end
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
190
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
191 Title : end
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
192 Usage : $end = $feat->end
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
193 Function: Returns the end coordinate of the feature
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
194 Returns : integer
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
195 Args : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
196 Developer Notes:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
197 ** This is incomplete at this time.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
198 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
199
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
200 sub end() {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
201 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
202
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
203
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
204 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
205
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
206 =head2 strand
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
207
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
208 Title : strand
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
209 Usage : $strand = $feat->strand()
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
210 Function: Returns strand information, being 1,-1 or 0
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
211 Returns : -1,1 or 0
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
212 Args : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
213 Developer Notes:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
214 ** This is incomplete at this time.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
215
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
216
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
217 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
218
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
219 sub strand() {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
220 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
221 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
222
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
223
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
224 =head2 SeqFeatureI specific methods
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
225
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
226 New method interfaces.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
227
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
228 =head2 sub_SeqFeature
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
229
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
230 Title : sub_SeqFeature
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
231 Usage : @feats = $feat->sub_SeqFeature();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
232 Function: Returns an array of sub Sequence Features
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
233 Returns : An array
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
234 Args : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
235
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
236 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
237
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
238 sub sub_SeqFeature{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
239 my ($self,@args) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
240
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
241 $self->throw_not_implemented();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
242 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
243
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
244 =head2 display_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
245
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
246 Title : display_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
247 Usage : $name = $feat->display_id()
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
248 Function: Returns the human-readable ID of the
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
249 feature for displays.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
250 Returns : a string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
251 Args : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
252
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
253 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
254
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
255 sub display_id {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
256 my ($self,@args) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
257 $self->throw_not_implemented();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
258 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
259
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
260 =head2 primary_tag
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
261
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
262 Title : primary_tag
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
263 Usage : $tag = $feat->primary_tag()
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
264 Function: Returns the primary tag for a feature,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
265 eg 'exon'
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
266 Returns : a string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
267 Args : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
268
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
269
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
270 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
271
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
272 sub primary_tag{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
273 my ($self,@args) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
274
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
275 $self->throw_not_implemented();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
276
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
277 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
278
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
279 =head2 source_tag
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
280
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
281 Title : source_tag
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
282 Usage : $tag = $feat->source_tag()
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
283 Function: Returns the source tag for a feature,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
284 eg, 'genscan'
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
285 Returns : a string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
286 Args : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
287
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
288
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
289 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
290
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
291 sub source_tag{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
292 my ($self,@args) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
293
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
294 $self->throw_not_implemented();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
295 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
296
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
297 =head2 has_tag
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
298
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
299 Title : has_tag
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
300 Usage : $tag_exists = $self->has_tag('some_tag')
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
301 Function:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
302 Returns : TRUE if the specified tag exists, and FALSE otherwise
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
303 Args :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
304
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
305
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
306 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
307
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
308 sub has_tag{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
309 my ($self,@args) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
310
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
311 $self->throw_not_implemented();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
312
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
313 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
314
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
315 =head2 each_tag_value
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
316
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
317 Title : each_tag_value
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
318 Usage : @values = $self->each_tag_value('some_tag')
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
319 Function:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
320 Returns : An array comprising the values of the specified tag.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
321 Args :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
322
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
323
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
324 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
325
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
326 sub each_tag_value {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
327 my ($self,@args) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
328
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
329 $self->throw_not_implemented();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
330 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
331
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
332 =head2 all_tags
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
333
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
334 Title : all_tags
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
335 Usage : @tags = $feat->all_tags()
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
336 Function: gives all tags for this feature
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
337 Returns : an array of strings
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
338 Args : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
339
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
340
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
341 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
342
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
343 sub all_tags{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
344 my ($self,@args) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
345
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
346 $self->throw_not_implemented();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
347 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
348
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
349 =head2 gff_string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
350
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
351 Title : gff_string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
352 Usage : $str = $feat->gff_string;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
353 $str = $feat->gff_string($gff_formatter);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
354 Function: Provides the feature information in GFF format.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
355
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
356 The implementation provided here returns GFF2 by default. If you
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
357 want a different version, supply an object implementing a method
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
358 gff_string() accepting a SeqFeatureI object as argument. E.g., to
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
359 obtain GFF1 format, do the following:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
360
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
361 my $gffio = Bio::Tools::GFF->new(-gff_version => 1);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
362 $gff1str = $feat->gff_string($gff1io);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
363
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
364 Returns : A string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
365 Args : Optionally, an object implementing gff_string().
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
366
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
367
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
368 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
369
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
370 sub gff_string{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
371 my ($self,$formatter) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
372
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
373 $formatter = $self->_static_gff_formatter unless $formatter;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
374 return $formatter->gff_string($self);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
375 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
376
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
377 my $static_gff_formatter = undef;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
378
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
379 =head2 _static_gff_formatter
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
380
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
381 Title : _static_gff_formatter
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
382 Usage :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
383 Function:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
384 Example :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
385 Returns :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
386 Args :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
387
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
388
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
389 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
390
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
391 sub _static_gff_formatter{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
392 my ($self,@args) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
393
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
394 if( !defined $static_gff_formatter ) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
395 $static_gff_formatter = Bio::Tools::GFF->new('-gff_version' => 2);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
396 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
397 return $static_gff_formatter;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
398 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
399
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
400
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
401
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
402 =head1 RangeI methods
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
403
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
404 These methods are inherited from RangeI and can be used
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
405 directly from a SeqFeatureI interface. Remember that a
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
406 SeqFeature is-a RangeI, and so wherever you see RangeI you
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
407 can use a feature ($r in the below documentation).
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
408
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
409 =head2 overlaps
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
410
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
411 Title : overlaps
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
412 Usage : if($feat->overlaps($r)) { do stuff }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
413 if($feat->overlaps(200)) { do stuff }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
414 Function: tests if $feat overlaps $r
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
415 Args : a RangeI to test for overlap with, or a point
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
416 Returns : true if the Range overlaps with the feature, false otherwise
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
417
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
418
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
419 =head2 contains
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
420
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
421 Title : contains
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
422 Usage : if($feat->contains($r) { do stuff }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
423 Function: tests whether $feat totally contains $r
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
424 Args : a RangeI to test for being contained
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
425 Returns : true if the argument is totaly contained within this range
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
426
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
427
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
428 =head2 equals
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
429
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
430 Title : equals
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
431 Usage : if($feat->equals($r))
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
432 Function: test whether $feat has the same start, end, strand as $r
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
433 Args : a RangeI to test for equality
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
434 Returns : true if they are describing the same range
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
435
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
436
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
437 =head1 Geometrical methods
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
438
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
439 These methods do things to the geometry of ranges, and return
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
440 triplets (start, stop, strand) from which new ranges could be built.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
441
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
442 =head2 intersection
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
443
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
444 Title : intersection
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
445 Usage : ($start, $stop, $strand) = $feat->intersection($r)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
446 Function: gives the range that is contained by both ranges
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
447 Args : a RangeI to compare this one to
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
448 Returns : nothing if they do not overlap, or the range that they do overlap
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
449
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
450 =head2 union
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
451
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
452 Title : union
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
453 Usage : ($start, $stop, $strand) = $feat->union($r);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
454 : ($start, $stop, $strand) = Bio::RangeI->union(@ranges);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
455 Function: finds the minimal range that contains all of the ranges
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
456 Args : a range or list of ranges to find the union of
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
457 Returns : the range containing all of the ranges
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
458
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
459 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
460
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
461 =head2 location
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
462
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
463 Title : location
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
464 Usage : my $location = $seqfeature->location()
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
465 Function: returns a location object suitable for identifying location
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
466 of feature on sequence or parent feature
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
467 Returns : Bio::LocationI object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
468 Args : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
469
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
470
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
471 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
472
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
473 sub location {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
474 my ($self) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
475
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
476 $self->throw_not_implemented();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
477 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
478
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
479
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
480 1;