annotate variant_effect_predictor/Bio/Variation/Allele.pm @ 0:2bc9b66ada89 draft default tip

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