annotate variant_effect_predictor/Bio/SeqFeature/Computation.pm @ 3:d30fa12e4cc5 default tip

Merge heads 2:a5976b2dce6f and 1:09613ce8151e which were created as a result of a recently fixed bug.
author devteam <devteam@galaxyproject.org>
date Mon, 13 Jan 2014 10:38:30 -0500
parents 1f6dce3d34e0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1 # $Id: Computation.pm,v 1.11 2002/10/22 07:38:41 lapp Exp $
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 # BioPerl module for Bio::SeqFeature::Generic
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5 # Cared for by mark Fiers <m.w.e.j.fiers@plant.wag-ur.nl>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 # Copyright Ewan Birney, Mark Fiers
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9 # You may distribute this module under the same terms as perl itself
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11 # POD documentation - main docs before the code
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15 Bio::SeqFeature::Computation - Computation SeqFeature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19 $feat = new Bio::SeqFeature::Computation (
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20 -start => 10, -end => 100,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 -strand => -1, -primary => 'repeat',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22 -program_name => 'GeneMark',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 -program_date => '12-5-2000',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24 -program_version => 'x.y',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25 -database_name => 'Arabidopsis',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26 -database_date => '12-dec-2000',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 -computation_id => 2231,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 -score => { no_score => 334 } );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 Bio::SeqFeature::Computation extends the Generic seqfeature object with
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 a set of computation related fields and a more flexible set of storing
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 more types of score and subseqfeatures. It is compatible with the Generic
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36 SeqFeature object.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 The new way of storing score values is similar to the tag structure in the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 Generic object. For storing sets of subseqfeatures the array containg the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 subseqfeatures is now a hash which contains arrays of seqfeatures
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 Both the score and subSeqfeature methods can be called in exactly the same
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 way, the value's will be stored as a 'default' score or subseqfeature.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46 #'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 =head1 FEEDBACK
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 =head2 Mailing Lists
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 User feedback is an integral part of the evolution of this and other
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 Bioperl modules. Send your comments and suggestions preferably to one
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 of the Bioperl mailing lists. Your participation is much appreciated.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56 bioperl-l@bioperl.org - General discussion
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 http://bio.perl.org/MailList.html - About the mailing lists
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 =head2 Reporting Bugs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 Report bugs to the Bioperl bug tracking system to help us keep track
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 the bugs and their resolution. Bug reports can be submitted via email
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63 or the web:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65 bioperl-bugs@bio.perl.org
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 http://bugzilla.bioperl.org/
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 =head1 AUTHOR - Ewan Birney, Mark Fiers
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 Ewan Birney E<lt>birney@sanger.ac.ukE<gt>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 Mark Fiers E<lt>m.w.e.j.fiers@plant.wag-ur.nlE<gt>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 =head1 DEVELOPERS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 This class has been written with an eye out of inheritance. The fields
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76 the actual object hash are:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 _gsf_sub_hash = reference to a hash containing sets of sub arrays
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 _gsf_score_hash= reference to a hash for the score values
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 =head1 APPENDIX
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 The rest of the documentation details each of the object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 methods. Internal methods are usually preceded with a _
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 # Let the code begin...
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 package Bio::SeqFeature::Computation;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 use vars qw(@ISA);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 use Bio::Root::Root;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 use Bio::SeqFeature::Generic;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 @ISA = qw(Bio::SeqFeature::Generic);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 my ( $class, @args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 my $self = $class->SUPER::new(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 my ( $computation_id,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 $program_name, $program_date, $program_version,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107 $database_name, $database_date, $database_version) =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 $self->_rearrange([qw(COMPUTATION_ID
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 PROGRAM_NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 PROGRAM_DATE
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 PROGRAM_VERSION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 DATABASE_NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 DATABASE_DATE
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 DATABASE_VERSION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 )],@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 $program_name && $self->program_name($program_name);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 $program_date && $self->program_date($program_date);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 $program_version && $self->program_version($program_version);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 $database_name && $self->database_name($database_name);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 $database_date && $self->database_date($database_date);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 $database_version && $self->database_version($database_version);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 $computation_id && $self->computation_id($computation_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 =head2 has_score
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 Title : has_score
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131 Usage : $value = $self->has_score('some_score')
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 Function: Tests wether a feature contains a score
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 Returns : TRUE if the SeqFeature has the score,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134 and FALSE otherwise.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 Args : The name of a score
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 sub has_score {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 my ($self, $score) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 return undef unless defined $score;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142 return exists $self->{'_gsf_score_hash'}->{$score};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 =head2 add_score_value
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147 Title : add_score_value
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148 Usage : $self->add_score_value('P_value',224);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149 Returns : TRUE on success
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150 Args : score (string) and value (any scalar)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 sub add_score_value {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155 my ($self, $score, $value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156 if( ! defined $score || ! defined $value ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157 $self->warn("must specify a valid $score and $value to add_score_value");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158 return 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161 if ( !defined $self->{'_gsf_score_hash'}->{$score} ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 $self->{'_gsf_score_hash'}->{$score} = [];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 push(@{$self->{'_gsf_score_hash'}->{$score}},$value);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168 =head2 score
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 Title : score
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171 Usage : $value = $comp_obj->score()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172 $comp_obj->score($value)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173 Function: Returns the 'default' score or sets the 'default' score
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174 This method exist for compatibility options
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175 It would equal ($comp_obj->each_score_value('default'))[0];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 Returns : A value
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177 Args : (optional) a new value for the 'default' score
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181 sub score {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182 my ($self, $value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183 my @v;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 if (defined $value) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186 if( ref($value) =~ /HASH/i ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187 while( my ($t,$val) = each %{ $value } ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188 $self->add_score_value($t,$val);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191 @v = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192 $self->add_score_value('default', $value);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196 @v = $self->each_score_value('default');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198 return $v[0];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201 =head2 each_score_value
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203 Title : each_score_value
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204 Usage : @values = $gsf->each_score_value('note');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205 Function: Returns a list of all the values stored
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206 under a particular score.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207 Returns : A list of scalars
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208 Args : The name of the score
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212 sub each_score_value {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213 my ($self, $score) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214 if ( ! exists $self->{'_gsf_score_hash'}->{$score} ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215 $self->warn("asking for score value that does not exist $score");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216 return undef;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218 return @{$self->{'_gsf_score_hash'}->{$score}};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222 =head2 all_scores
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224 Title : all_scores
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225 Usage : @scores = $feat->all_scores()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226 Function: Get a list of all the scores in a feature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 Returns : An array of score names
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228 Args : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233 sub all_scores {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234 my ($self, @args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236 return keys %{$self->{'_gsf_score_hash'}};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
237 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
238
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
239
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
240 =head2 remove_score
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
241
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242 Title : remove_score
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
243 Usage : $feat->remove_score('some_score')
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
244 Function: removes a score from this feature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
245 Returns : nothing
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
246 Args : score (string)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
247
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
248
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
249 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
250
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
251 sub remove_score {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
252 my ($self, $score) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
253
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
254 if ( ! exists $self->{'_gsf_score_hash'}->{$score} ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
255 $self->warn("trying to remove a score that does not exist: $score");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
256 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
257
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
258 delete $self->{'_gsf_score_hash'}->{$score};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
259 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
260
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
261 =head2 computation_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
262
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
263 Title : computation_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
264 Usage : $computation_id = $feat->computation_id()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
265 $feat->computation_id($computation_id)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
266 Function: get/set on program name information
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
267 Returns : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
268 Args : none if get, the new value if set
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
269
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
270
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
271 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
272
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
273 sub computation_id {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
274 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
275
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
276 if (defined($value)) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
277 $self->{'_gsf_computation_id'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
278 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
279
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
280 return $self->{'_gsf_computation_id'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
281 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
282
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
283
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
284
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
285
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
286 =head2 program_name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
287
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
288 Title : program_name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
289 Usage : $program_name = $feat->program_name()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
290 $feat->program_name($program_name)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
291 Function: get/set on program name information
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
292 Returns : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
293 Args : none if get, the new value if set
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
294
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
295
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
296 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
297
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
298 sub program_name {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
299 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
300
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
301 if (defined($value)) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
302 $self->{'_gsf_program_name'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
303 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
304
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
305 return $self->{'_gsf_program_name'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
306 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
307
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
308 =head2 program_date
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
309
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
310 Title : program_date
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
311 Usage : $program_date = $feat->program_date()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
312 $feat->program_date($program_date)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
313 Function: get/set on program date information
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
314 Returns : date (string)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
315 Args : none if get, the new value if set
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
316
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
317
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
318 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
319
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
320 sub program_date {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
321 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
322
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
323 if (defined($value)) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
324 $self->{'_gsf_program_date'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
325 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
326
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
327 return $self->{'_gsf_program_date'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
328 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
329
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
330
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
331 =head2 program_version
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
332
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
333 Title : program_version
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
334 Usage : $program_version = $feat->program_version()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
335 $feat->program_version($program_version)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
336 Function: get/set on program version information
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
337 Returns : date (string)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
338 Args : none if get, the new value if set
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
339
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
340
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
341 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
342
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
343 sub program_version {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
344 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
345
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
346 if (defined($value)) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
347 $self->{'_gsf_program_version'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
348 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
349
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
350 return $self->{'_gsf_program_version'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
351 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
352
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
353 =head2 database_name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
354
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
355 Title : database_name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
356 Usage : $database_name = $feat->database_name()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
357 $feat->database_name($database_name)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
358 Function: get/set on program name information
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
359 Returns : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
360 Args : none if get, the new value if set
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
361
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
362 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
363
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
364 sub database_name {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
365 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
366
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
367 if (defined($value)) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
368 $self->{'_gsf_database_name'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
369 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
370
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
371 return $self->{'_gsf_database_name'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
372 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
373
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
374 =head2 database_date
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
375
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
376 Title : database_date
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
377 Usage : $database_date = $feat->database_date()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
378 $feat->database_date($database_date)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
379 Function: get/set on program date information
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
380 Returns : date (string)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
381 Args : none if get, the new value if set
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
382
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
383
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
384 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
385
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
386 sub database_date {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
387 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
388
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
389 if (defined($value)) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
390 $self->{'_gsf_database_date'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
391 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
392
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
393 return $self->{'_gsf_database_date'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
394 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
395
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
396
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
397 =head2 database_version
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
398
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
399 Title : database_version
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
400 Usage : $database_version = $feat->database_version()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
401 $feat->database_version($database_version)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
402 Function: get/set on program version information
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
403 Returns : date (string)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
404 Args : none if get, the new value if set
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
405
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
406
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
407 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
408
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
409 sub database_version {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
410 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
411
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
412 if (defined($value)) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
413 $self->{'_gsf_database_version'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
414 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
415
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
416 return $self->{'_gsf_database_version'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
417
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
418 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
419
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
420 =head2 sub_SeqFeature_type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
421
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
422 Title : sub_SeqFeature_type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
423 Usage : $sub_SeqFeature_type = $feat->sub_SeqFeature_type()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
424 $feat->sub_SeqFeature_type($sub_SeqFeature_type)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
425 Function: sub_SeqFeature_type is automatically set when adding
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
426 a sub_computation (sub_SeqFeature) to a computation object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
427 Returns : sub_SeqFeature_type (string)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
428 Args : none if get, the new value if set
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
429
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
430 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
431
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
432 sub sub_SeqFeature_type {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
433 my ($self, $value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
434
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
435 if (defined($value)) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
436 $self->{'_gsf_sub_SeqFeature_type'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
437 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
438 return $self->{'_gsf_sub_SeqFeature_type'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
439 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
440
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
441 =head2 all_sub_SeqFeature_types
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
442
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
443 Title : all_Sub_SeqFeature_types
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
444 Usage : @all_sub_seqfeature_types = $comp->all_Sub_SeqFeature_types();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
445 Function: Returns an array with all subseqfeature types
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
446 Returns : An array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
447 Args : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
448
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
449 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
450
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
451 sub all_sub_SeqFeature_types {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
452 my ($self) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
453 return keys ( %{$self->{'gsf_sub_hash'}} );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
454 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
455
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
456 =head2 sub_SeqFeature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
457
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
458 Title : sub_SeqFeature('sub_feature_type')
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
459 Usage : @feats = $feat->sub_SeqFeature();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
460 @feats = $feat->sub_SeqFeature('sub_feature_type');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
461 Function: Returns an array of sub Sequence Features of a specific
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
462 type or, if the type is ommited, all sub Sequence Features
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
463 Returns : An array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
464 Args : (optional) a sub_SeqFeature type (ie exon, pattern)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
465
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
466 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
467
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
468 sub sub_SeqFeature {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
469 my ($self, $ssf_type) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
470 my (@return_array) = ();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
471 if ($ssf_type eq '') {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
472 #return all sub_SeqFeatures
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
473 foreach (keys ( %{$self->{'gsf_sub_hash'}} )){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
474 push @return_array, @{$self->{'gsf_sub_hash'}->{$_}};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
475 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
476 return @return_array;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
477 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
478 if (defined ($self->{'gsf_sub_hash'}->{$ssf_type})) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
479 return @{$self->{'gsf_sub_hash'}->{$ssf_type}};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
480 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
481 $self->warn("$ssf_type is not a valid sub SeqFeature type");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
482 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
483 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
484 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
485
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
486 =head2 add_sub_SeqFeature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
487
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
488 Title : add_sub_SeqFeature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
489 Usage : $feat->add_sub_SeqFeature($subfeat);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
490 $feat->add_sub_SeqFeature($subfeat,'sub_seqfeature_type')
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
491 $feat->add_sub_SeqFeature($subfeat,'EXPAND')
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
492 $feat->add_sub_SeqFeature($subfeat,'EXPAND','sub_seqfeature_type')
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
493 Function: adds a SeqFeature into a specific subSeqFeature array.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
494 with no 'EXPAND' qualifer, subfeat will be tested
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
495 as to whether it lies inside the parent, and throw
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
496 an exception if not.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
497 If EXPAND is used, the parents start/end/strand will
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
498 be adjusted so that it grows to accommodate the new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
499 subFeature,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
500 optionally a sub_seqfeature type can be defined.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
501 Returns : nothing
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
502 Args : An object which has the SeqFeatureI interface
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
503 : (optional) 'EXPAND'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
504 : (optional) 'sub_SeqFeature_type'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
505
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
506 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
507
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
508 sub add_sub_SeqFeature{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
509 my ($self,$feat,$var1, $var2) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
510 $var1 = '' unless( defined $var1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
511 $var2 = '' unless( defined $var2);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
512 my ($expand, $ssf_type) = ('', $var1 . $var2);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
513 $expand = 'EXPAND' if ($ssf_type =~ s/EXPAND//);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
514
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
515 if ( !$feat->isa('Bio::SeqFeatureI') ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
516 $self->warn("$feat does not implement Bio::SeqFeatureI. Will add it anyway, but beware...");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
517 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
518
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
519 if($expand eq 'EXPAND') {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
520 $self->_expand_region($feat);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
521 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
522 if ( !$self->contains($feat) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
523 $self->throw("$feat is not contained within parent feature, and expansion is not valid");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
524 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
525 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
526
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
527 $ssf_type = 'default' if ($ssf_type eq '');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
528
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
529 if (!(defined ($self->{'gsf_sub_hash'}->{$ssf_type}))) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
530 @{$self->{'gsf_sub_hash'}->{$ssf_type}} = ();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
531 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
532 $feat->sub_SeqFeature_type($ssf_type);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
533 push @{$self->{'gsf_sub_hash'}->{$ssf_type}}, $feat;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
534 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
535
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
536 =head2 flush_sub_SeqFeature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
537
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
538 Title : flush_sub_SeqFeature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
539 Usage : $sf->flush_sub_SeqFeature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
540 $sf->flush_sub_SeqFeature('sub_SeqFeature_type');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
541 Function: Removes all sub SeqFeature or all sub SeqFeatures
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
542 of a specified type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
543 (if you want to remove a more specific subset, take
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
544 an array of them all, flush them, and add
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
545 back only the guys you want)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
546 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
547 Returns : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
548 Args : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
549
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
550
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
551 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
552
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
553 sub flush_sub_SeqFeature {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
554 my ($self, $ssf_type) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
555 if ($ssf_type) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
556 if ((defined ($self->{'gsf_sub_hash'}->{$ssf_type}))) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
557 delete $self->{'gsf_sub_hash'}->{$ssf_type};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
558 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
559 $self->warn("$ssf_type is not a valid sub SeqFeature type");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
560 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
561 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
562 $self->{'_gsf_sub_hash'} = {}; # zap the complete hash implicitly.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
563 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
564 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
565
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
566
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
567
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
568 1;