annotate variant_effect_predictor/Bio/Variation/Allele.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 # $Id: Allele.pm,v 1.9 2002/10/22 07:38:49 lapp Exp $
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
2 #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
3 # BioPerl module for Bio::Variation::Allele
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
4 #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
5 # Cared for by Heikki Lehvaslaiho <heikki@ebi.ac.uk>
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
6 #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
7 # Copyright Heikki Lehvaslaiho
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
8 #
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
9 # You may distribute this module under the same terms as perl itself
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
10
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
11 # POD documentation - main docs before the code
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
12
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
13 =head1 NAME
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
14
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
15 Bio::Variation::Allele - Sequence object with allele-specific attributes
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
16
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
17 =head1 SYNOPSIS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
18
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
19 $allele1 = Bio::Variation::Allele->new ( -seq => 'A',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
20 -id => 'AC00001.1',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
21 -alphabet => 'dna',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
22 -is_reference => 1
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
23 );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
24
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
25 =head1 DESCRIPTION
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
26
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
27 List of alleles describe known sequence alternatives in a variable region.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
28 Alleles are contained in Bio::Variation::VariantI complying objects.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
29 See L<Bio::Variation::VariantI> for details.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
30
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
31 Bio::Varation::Alleles are PrimarySeqI complying objects which can
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
32 contain database cross references as specified in
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
33 Bio::DBLinkContainerI interface, too.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
34
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
35 A lot of the complexity with dealing with Allele objects are caused by
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
36 null alleles; Allele objects that have zero length sequence string.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
37
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
38 In addition describing the allele by its sequence , it possible to
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
39 give describe repeat structure within the sequence. This done using
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
40 methods repeat_unit (e.g. 'ca') and repeat_count (e.g. 7).
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
41
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
42 =head1 FEEDBACK
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
43
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
44 =head2 Mailing Lists
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
45
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
46 User feedback is an integral part of the evolution of this and other
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
47 Bioperl modules. Send your comments and suggestions preferably to the
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
48 Bioperl mailing lists Your participation is much appreciated.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
49
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
50 bioperl-l@bioperl.org - General discussion
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
51 http://bio.perl.org/MailList.html - About the mailing lists
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
52
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
53 =head2 Reporting Bugs
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
54
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
55 report bugs to the Bioperl bug tracking system to help us keep track
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
56 the bugs and their resolution. Bug reports can be submitted via
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
57 email or the web:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
58
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
59 bioperl-bugs@bio.perl.org
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
60 http://bugzilla.bioperl.org/
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
61
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
62 =head1 AUTHOR - Heikki Lehvaslaiho
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
63
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
64 Email: heikki@ebi.ac.uk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
65 Address:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
66
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
67 EMBL Outstation, European Bioinformatics Institute
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
68 Wellcome Trust Genome Campus, Hinxton
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
69 Cambs. CB10 1SD, United Kingdom
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
70
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
71
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
72 =head1 APPENDIX
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
73
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
74 The rest of the documentation details each of the object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
75 methods. Internal methods are usually preceded with a _
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
76
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
77 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
78
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
79
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
80 # Let the code begin...
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
81
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
82 package Bio::Variation::Allele;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
83 my $VERSION=1.0;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
84 use vars qw(@ISA);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
85 use strict;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
86
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
87 # Object preamble - inheritance
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
88
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
89 use Bio::PrimarySeq;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
90 use Bio::DBLinkContainerI;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
91
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
92 @ISA = qw( Bio::PrimarySeq Bio::DBLinkContainerI );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
93
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
94 sub new {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
95 my($class, @args) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
96 my $self = $class->SUPER::new(@args);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
97
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
98 my($is_reference, $repeat_unit, $repeat_count) =
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
99 $self->_rearrange([qw(IS_REFERENCE
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
100 REPEAT_UNIT
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
101 REPEAT_COUNT
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
102 )],
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
103 @args);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
104
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
105 $is_reference && $self->is_reference($is_reference);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
106 $repeat_unit && $self->repeat_unit($repeat_unit);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
107 $repeat_count && $self->repeat_count($repeat_count);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
108
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
109 return $self; # success - we hope!
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
110 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
111
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
112
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
113 =head2 is_reference
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
114
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
115 Title : is_reference
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
116 Usage : $obj->is_reference()
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
117 Function: sets and returns boolean values.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
118 Unset values return false.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
119 Example : $obj->is_reference()
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
120 Returns : boolean
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
121 Args : optional true of false value
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
122
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
123
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
124 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
125
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
126
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
127 sub is_reference {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
128 my ($self,$value) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
129 if( defined $value) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
130 $value ? ($value = 1) : ($value = 0);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
131 $self->{'is_reference'} = $value;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
132 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
133 if( ! exists $self->{'is_reference'} ) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
134 return 0;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
135 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
136 else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
137 return $self->{'is_reference'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
138 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
139 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
140
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
141
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
142 =head2 add_DBLink
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
143
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
144 Title : add_DBLink
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
145 Usage : $self->add_DBLink($ref)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
146 Function: adds a link object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
147 Example :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
148 Returns :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
149 Args :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
150
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
151
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
152 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
153
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
154
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
155 sub add_DBLink{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
156 my ($self,$com) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
157 if( ! $com->isa('Bio::Annotation::DBLink') ) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
158 $self->throw("Is not a link object but a [$com]");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
159 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
160 push(@{$self->{'link'}},$com);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
161 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
162
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
163 =head2 each_DBLink
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
164
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
165 Title : each_DBLink
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
166 Usage : foreach $ref ( $self->each_DBlink() )
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
167 Function: gets an array of DBlink of objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
168 Example :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
169 Returns :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
170 Args :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
171
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
172
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
173 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
174
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
175 sub each_DBLink{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
176 my ($self) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
177 return @{$self->{'link'}};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
178 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
179
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
180 =head2 repeat_unit
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
181
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
182 Title : repeat_unit
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
183 Usage : $obj->repeat_unit('ca');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
184 Function:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
185
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
186 Sets and returns the sequence of the repeat_unit the
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
187 allele is composed of.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
188
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
189 Example :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
190 Returns : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
191 Args : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
192
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
193 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
194
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
195 sub repeat_unit {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
196 my ($self,$value) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
197 if( defined $value) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
198 $self->{'repeat_unit'} = $value;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
199 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
200 if ($self->{'seq'} && $self->{'repeat_unit'} && $self->{'repeat_count'} ) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
201 $self->warn("Repeats do not add up!")
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
202 if ( $self->{'repeat_unit'} x $self->{'repeat_count'}) ne $self->{'seq'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
203 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
204 return $self->{'repeat_unit'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
205 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
206
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
207 =head2 repeat_count
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
208
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
209 Title : repeat_count
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
210 Usage : $obj->repeat_count();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
211 Function:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
212
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
213 Sets and returns the number of repeat units in the allele.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
214
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
215 Example :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
216 Returns : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
217 Args : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
218
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
219 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
220
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
221
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
222 sub repeat_count {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
223 my ($self,$value) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
224 if( defined $value) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
225 if ( not $value =~ /^\d+$/ ) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
226 $self->throw("[$value] for repeat_count has to be a positive integer\n");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
227 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
228 $self->{'repeat_count'} = $value;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
229 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
230 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
231 if ($self->{'seq'} && $self->{'repeat_unit'} && $self->{'repeat_count'} ) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
232 $self->warn("Repeats do not add up!")
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
233 if ( $self->{'repeat_unit'} x $self->{'repeat_count'}) ne $self->{'seq'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
234 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
235 return $self->{'repeat_count'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
236 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
237
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
238 =head2 count
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
239
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
240 Title : count
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
241 Usage : $obj->count();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
242 Function:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
243
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
244 Sets and returns the number of times this allele was observed.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
245
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
246 Example :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
247 Returns : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
248 Args : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
249
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
250 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
251
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
252 sub count {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
253 my ($self,$value) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
254 if( defined $value) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
255 if ( not $value =~ /^\d+$/ ) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
256 $self->throw("[$value] for count has to be a positive integer\n");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
257 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
258 $self->{'count'} = $value;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
259 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
260 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
261 return $self->{'count'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
262 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
263
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
264
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
265 =head2 frequency
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
266
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
267 Title : frequency
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
268 Usage : $obj->frequency();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
269 Function:
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
270
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
271 Sets and returns the frequency of the allele in the observed
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
272 population.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
273
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
274 Example :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
275 Returns : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
276 Args : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
277
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
278 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
279
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
280 sub frequency {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
281 my ($self,$value) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
282 if( defined $value) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
283 if ( not $value =~ /^\d+$/ ) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
284 $self->throw("[$value] for frequency has to be a positive integer\n");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
285 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
286 $self->{'frequency'} = $value;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
287 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
288 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
289 return $self->{'frequency'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
290 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
291
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
292
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
293 1;