Mercurial > repos > mahtabm > ensembl
comparison variant_effect_predictor/Bio/Expression/FeatureGroup.pm @ 0:1f6dce3d34e0
Uploaded
author | mahtabm |
---|---|
date | Thu, 11 Apr 2013 02:01:53 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:1f6dce3d34e0 |
---|---|
1 # $Id: FeatureGroup.pm,v 1.1.2.2 2003/09/17 09:19:21 allenday Exp $ | |
2 # BioPerl module for Bio::Expression::FeatureGroup | |
3 # | |
4 # Copyright Allen Day <allenday@ucla.edu>, Stanley Nelson <snelson@ucla.edu> | |
5 # Human Genetics, UCLA Medical School, University of California, Los Angeles | |
6 | |
7 # POD documentation - main docs before the code | |
8 | |
9 =head1 NAME | |
10 | |
11 Bio::Expression::FeatureGroup - a set of DNA/RNA features. ISA | |
12 Bio::Expression::FeatureI | |
13 | |
14 =head1 SYNOPSIS | |
15 | |
16 # | |
17 | |
18 =head1 DESCRIPTION | |
19 | |
20 A set of DNA/RNA features. | |
21 | |
22 =head1 FEEDBACK | |
23 | |
24 =head2 Mailing Lists | |
25 | |
26 User feedback is an integral part of the evolution of this and other | |
27 Bioperl modules. Send your comments and suggestions preferably to one | |
28 of the Bioperl mailing lists. Your participation is much appreciated. | |
29 | |
30 bioperl-l@bioperl.org - General discussion | |
31 http://bioperl.org/MailList.shtml - About the mailing lists | |
32 | |
33 =head2 Reporting Bugs | |
34 | |
35 Report bugs to the Bioperl bug tracking system to help us keep track | |
36 the bugs and their resolution. | |
37 Bug reports can be submitted via email or the web: | |
38 | |
39 bioperl-bugs@bio.perl.org | |
40 http://bugzilla.bioperl.org/ | |
41 | |
42 =head1 AUTHOR | |
43 | |
44 Allen Day E<lt>allenday@ucla.eduE<gt> | |
45 | |
46 =head1 APPENDIX | |
47 | |
48 The rest of the documentation details each of the object | |
49 methods. Internal methods are usually preceded with a _ | |
50 | |
51 =cut | |
52 | |
53 # Let the code begin... | |
54 package Bio::Expression::FeatureGroup; | |
55 | |
56 use strict; | |
57 | |
58 use base qw(Bio::Root::Root Bio::Expression::FeatureI); | |
59 use vars qw($DEBUG); | |
60 | |
61 =head2 new | |
62 | |
63 Title : new | |
64 Usage : $featuregroup = Bio::Expression::FeatureGroup->new(%args); | |
65 Function: create a new featuregroup object | |
66 Returns : a Bio::Expression::FeatureGroup object | |
67 Args : an optional hash of parameters to be used in initialization: | |
68 -id -- the featuregroup ID | |
69 -type -- the featuregroup type | |
70 | |
71 =cut | |
72 | |
73 sub new { | |
74 my($class,@args) = @_; | |
75 my $self = bless {}, $class; | |
76 $self->_initialize(@args); | |
77 return $self; | |
78 } | |
79 | |
80 =head2 _initialize | |
81 | |
82 Title : _initialize | |
83 Usage : $featuregroup->_initialize(@args); | |
84 Function: initialize the featuregroup object | |
85 Returns : nothing | |
86 Args : @args | |
87 | |
88 =cut | |
89 | |
90 sub _initialize{ | |
91 my ($self,@args) = @_; | |
92 my %param = @args; | |
93 | |
94 $self->type($param{-type}); | |
95 $self->id($param{-id} ); | |
96 | |
97 $self->SUPER::_initialize(@args); | |
98 $DEBUG = 1 if( ! defined $DEBUG && $self->verbose > 0); | |
99 } | |
100 | |
101 =head2 type | |
102 | |
103 Title : type | |
104 Usage : $featuregroup->type($optional_arg); | |
105 Function: get/set the type of the featuregroup | |
106 Comments: this is probably going to be a string like | |
107 "quality control", "mismatch blah blah", etc. | |
108 Returns : the featuregroup type | |
109 Args : a new value for the featuregroup type | |
110 | |
111 =cut | |
112 | |
113 sub type { | |
114 my $self = shift; | |
115 $self->{type} = shift if @_; | |
116 return $self->{type}; | |
117 } | |
118 | |
119 =head2 id | |
120 | |
121 Title : id | |
122 Usage : $featuregroup->id($optional_arg); | |
123 Function: get/set the id of the featuregroup | |
124 Returns : the featuregroup id | |
125 Args : a new value for the featuregroup id | |
126 | |
127 =cut | |
128 | |
129 sub id { | |
130 my $self = shift; | |
131 $self->{id} = shift if @_; | |
132 return $self->{id}; | |
133 } | |
134 | |
135 | |
136 =head2 standard_deviation | |
137 | |
138 Title : standard_deviation | |
139 Usage : $featuregroup->standard_deviation($optional_arg); | |
140 Function: get/set the standard deviation of the featuregroup value | |
141 Returns : the featuregroup standard deviation | |
142 Args : a new value for the featuregroup standard deviation | |
143 Notes : this method does no calculation, it merely holds a value | |
144 | |
145 =cut | |
146 | |
147 sub standard_deviation { | |
148 my $self = shift; | |
149 $self->{standard_deviation} = shift if @_; | |
150 return $self->{standard_deviation}; | |
151 } | |
152 | |
153 =head2 quantitation | |
154 | |
155 Title : quantitation | |
156 Usage : $featuregroup->quantitation($optional_arg); | |
157 Function: get/set the quantitation of the featuregroup | |
158 Returns : the featuregroup's quantitated value | |
159 Args : a new value for the featuregroup's quantitated value | |
160 Notes : this method does no calculation, it merely holds a value | |
161 | |
162 =cut | |
163 | |
164 sub quantitation { | |
165 my $self = shift; | |
166 $self->{quantitation} = shift if @_; | |
167 return $self->{quantitation}; | |
168 } | |
169 | |
170 =head2 quantitation_units | |
171 | |
172 Title : quantitation_units | |
173 Usage : $featuregroup->quantitation_units($optional_arg); | |
174 Function: get/set the quantitation units of the featuregroup | |
175 Returns : the featuregroup's quantitated value units | |
176 Args : a new value for the featuregroup's quantitated value units | |
177 | |
178 =cut | |
179 | |
180 sub quantitation_units { | |
181 my $self = shift; | |
182 $self->{quantitation_units} = shift if @_; | |
183 return $self->{quantitation_units}; | |
184 } | |
185 | |
186 =head2 presence | |
187 | |
188 Title : presence | |
189 Usage : $featuregroup->presence($optional_arg); | |
190 Function: get/set the presence call of the featuregroup | |
191 Returns : the featuregroup's presence call | |
192 Args : a new value for the featuregroup's presence call | |
193 | |
194 =cut | |
195 | |
196 sub presence { | |
197 my $self = shift; | |
198 $self->{presence} = shift if @_; | |
199 return $self->{presence}; | |
200 } | |
201 | |
202 =head2 add_feature | |
203 | |
204 Title : add_feature | |
205 Usage : $feature_copy = $featuregroup->add_feature($feature); | |
206 Function: add a feature to the featuregroup | |
207 Returns : see this_feature() | |
208 Args : a Bio::Expression::FeatureI compliant object | |
209 | |
210 =cut | |
211 | |
212 sub add_feature { | |
213 my($self,@args) = @_; | |
214 foreach my $feature (@args){ | |
215 $self->throw('Features must be Bio::Expression::FeatureI compliant') unless $feature->isa('Bio::Expression::FeatureI'); | |
216 push @{$self->{features}}, $feature; | |
217 } | |
218 | |
219 return $self->{features} ? $self->{features}->[-1] : undef; | |
220 } | |
221 | |
222 =head2 this_feature | |
223 | |
224 Title : this_feature | |
225 Usage : $feature = $featuregroup->this_feature | |
226 Function: access the last feature added to the featuregroup | |
227 Returns : the last feature added to the featuregroup | |
228 Args : none | |
229 | |
230 =cut | |
231 | |
232 sub this_feature { | |
233 my $self = shift; | |
234 return $self->{features} ? $self->{features}->[-1] : undef; | |
235 } | |
236 | |
237 =head2 each_feature | |
238 | |
239 Title : each_feature | |
240 Usage : @features = $featuregroup->each_feature | |
241 Function: returns a list of Bio::Expression::FeatureI compliant | |
242 objects | |
243 Returns : a list of objects | |
244 Args : none | |
245 | |
246 =cut | |
247 | |
248 sub each_feature { | |
249 my $self = shift; | |
250 return @{$self->{features}} if defined($self->{features}); | |
251 return (); | |
252 } | |
253 | |
254 =head2 each_feature_quantitation | |
255 | |
256 Title : each_feature_quantitation | |
257 Usage : @featurequantitions = $featuregroup->each_feature_quantitation; | |
258 Function: returns an list of quantitations of the features in the featuregroup | |
259 Returns : a list of numeric values | |
260 Args : none | |
261 | |
262 =cut | |
263 | |
264 sub each_feature_quantitation { | |
265 my $self = shift; | |
266 my @values = (); | |
267 push @values, $_->value foreach $self->each_feature; | |
268 return @values; | |
269 } | |
270 | |
271 =head2 is_qc | |
272 | |
273 Title : is_qc | |
274 Usage : $is_quality_control = $featuregroup->is_qc | |
275 Function: get/set whether or not the featuregroup is used for quality control purposes | |
276 Returns : a boolean (equivalent) | |
277 Args : a new value | |
278 | |
279 =cut | |
280 | |
281 sub is_qc { | |
282 my $self = shift; | |
283 $self->{is_qc} = shift if defined @_; | |
284 return $self->{is_qc}; | |
285 } | |
286 | |
287 1; |