annotate variant_effect_predictor/Bio/Variation/Allele.pm @ 0:1f6dce3d34e0

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