annotate variant_effect_predictor/Bio/Map/Microsatellite.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 # BioPerl module for Bio::Map::Microsatellite
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
2 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
3 # Cared for by Chad Matsalla <bioinformatics1@dieselwurks.com>
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
4 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
5 # Copyright Chad Matsalla
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
6 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
7 # You may distribute this module under the same terms as perl itself
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
8
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
9 # POD documentation - main docs before the code
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
10
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
11 =head1 NAME
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
12
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
13 Bio::Map::Microsatellite - An object representing a Microsatellite marker.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
14
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
15 =head1 SYNOPSIS
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
16
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
17 $o_usat = new Bio::Map::Microsatellite
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
18 (-name=>'Chad Super Marker 2',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
19 -sequence => 'gctgactgatcatatatatatatatatatatatatatatatcgcgatcgtga',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
20 -motif => 'at',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
21 -repeats => 15,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
22 -repeat_start_position => 11
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
23 );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
24
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
25 $sequence_before_usat = $o_usat->get_leading_flank();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
26 $sequence_after_usat = $o_usat->get_trailing_flank();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
27
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
28
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
29 =head1 DESCRIPTION
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
30
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
31 This object handles the notion of an Microsatellite. This microsatellite can
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
32 be placed on a (linear) Map or used on its own. If this Microsatellites
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
33 will be used in a mapping context (it doesn't have to, you know) it can have
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
34 multiple positions in a map. For information about a Microsatellite's position
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
35 in a map one must query the associate PositionI object which is accessible
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
36 through the position() method.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
37
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
38 =head1 FEEDBACK
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
39
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
40 =head2 Mailing Lists
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
41
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
42 User feedback is an integral part of the evolution of this and other
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
43 Bioperl modules. Send your comments and suggestions preferably to
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
44 the Bioperl mailing list. Your participation is much appreciated.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
45
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
46 bioperl-l@bioperl.org - General discussion
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
47 http://bioperl.org/MailList.shtml - About the mailing lists
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
48
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
49 =head2 Reporting Bugs
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
50
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
51 Report bugs to the Bioperl bug tracking system to help us keep track
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
52 of the bugs and their resolution. Bug reports can be submitted via
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
53 email or the web:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
54
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
55 bioperl-bugs@bioperl.org
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
56 http://bugzilla.bioperl.org/
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
57
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
58 =head1 AUTHOR - Chad Matsalla
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
59
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
60 Email bioinformatics1@dieselwurks.com
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
61
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
62 =head1 CONTRIBUTORS
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
63
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
64 Heikki Lehvaslaiho heikki@ebi.ac.uk
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
65 Lincoln Stein lstein@cshl.org
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
66 Jason Stajich jason@bioperl.org
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
67
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
68 =head1 APPENDIX
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
69
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
70 The rest of the documentation details each of the object methods.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
71 Internal methods are usually preceded with a _
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
72
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
73 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
74
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
75 # Let the code begin...
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
76
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
77 package Bio::Map::Microsatellite;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
78 use vars qw(@ISA);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
79 use strict;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
80 use Bio::Root::Root;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
81 use Bio::Map::Marker;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
82
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
83 @ISA = qw(Bio::Map::Marker);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
84
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
85 =head2 new
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
86
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
87 Title : new
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
88 Usage : $o_usat =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
89 Function: Builds a new Bio::Map::Microsatellite object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
90 Returns : Bio::Map::Microsatellite
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
91 Args :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
92 -name => name of this microsatellite (optional, string,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
93 default 'Unknown microsatellite')
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
94 -positions => position(s) for this marker in maps[optional],
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
95 An array reference of tuples (array refs themselves)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
96 Each tuple conatins a Bio::Map::MapI-inherited object and a
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
97 Bio::Map::PositionI-inherited obj, no default)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
98 -sequence => the sequence of this microsatellite (optional,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
99 scalar, no default)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
100 -motif => the repeat motif of this microsatellite (optional,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
101 scalar, no default)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
102 -repeats => the number of motif repeats for this microsatellite
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
103 (optional, scalar, no default)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
104 -repeat_start_position => the starting position of the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
105 microsatellite in this sequence. The first base of the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
106 sequence is position "1". (optional, scalar, no default)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
107
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
108 Note : Creating a Bio::Map::Microsatellite object with no position
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
109 might be useful for microsatellite people wanting to embrace
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
110 and extend this module. <raising hand> Me! Me! Me!
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
111 - using repeat_start_position will trigger a mechinism to
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
112 calculate a value for repeat_end_position.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
113
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
114
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
115 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
116
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
117 sub new {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
118 my ($class,@args) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
119 my $self = $class->SUPER::new(@args);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
120 my ($map, $position, $sequence, $motif, $repeats, $start) =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
121 $self->_rearrange([qw(MAP
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
122 POSITION
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
123 SEQUENCE
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
124 MOTIF
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
125 REPEATS
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
126 REPEAT_START_POSITION
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
127 )], @args);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
128 if( ! $self->name ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
129 $self->name('Unnamed microsatellite');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
130 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
131 $map && $self->map($map);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
132 $position && $self->position($position);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
133 $sequence && $self->sequence($sequence);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
134 $self->motif(defined $motif ? $motif : 'Unknown motif');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
135 $repeats && $self->repeats($repeats);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
136 $start && $self->repeat_start_position($start);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
137 return $self;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
138 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
139
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
140 =head2 Bio::Map::Marker methods
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
141
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
142 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
143
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
144 =head2 position
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
145
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
146 Title : position
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
147 Usage : my $position = $mappable->position($map); OR
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
148 $mappable->position($map,$position); OR
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
149 Function: Get/Set the Bio::Map::PositionI for a mappable element
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
150 in a specific Map
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
151 Returns : Bio::Map::PositionI
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
152 Args : $map =Bio::Map::MapI # Map we are talking about
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
153 $position = Bio::Map::PositionI # Position we want to set
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
154
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
155
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
156 =head2 name($new_name)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
157
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
158 Title : name($new_name)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
159 Usage : $o_usat->name($new_name) _or_
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
160 my $name = $o_usat->name()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
161 Function: Get/Set the name for this Microsatellite
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
162 Returns : A scalar representing the current name of this Microsatellite
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
163 Args : If provided, the current name of this Microsatellite
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
164 will be set to $new_name.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
165
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
166 =head2 motif($new_motif)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
167
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
168 Title : motif($new_motif)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
169 Usage : my $motif = $o_usat->motif($new_motif) _or_
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
170 my $motif = $o_usat->motif()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
171 Function: Get/Set the repeat motif for this Microsatellite
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
172 Returns : A scalar representing the current repeat motif of this
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
173 Microsatellite.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
174 Args : If provided, the current repeat motif of this Microsatellite
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
175 will be set to $new_motif.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
176
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
177 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
178
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
179 sub motif {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
180 my ($self,$motif) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
181 if ($motif) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
182 $self->{'_motif'} = $motif;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
183 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
184 return $self->{'_motif'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
185 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
186
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
187 =head2 sequence($new_sequence)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
188
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
189 Title : sequence($new_sequence)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
190 Usage : my $sequence = $o_usat->sequence($new_sequence) _or_
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
191 my $sequence = $o_usat->sequence()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
192 Function: Get/Set the sequence for this Microsatellite
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
193 Returns : A scalar representing the current sequence of this
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
194 Microsatellite.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
195 Args : If provided, the current sequence of this Microsatellite
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
196 will be set to $new_sequence.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
197
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
198 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
199
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
200 sub sequence {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
201 my ($self,$sequence) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
202 if ($sequence) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
203 $self->{'_sequence'} = $sequence;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
204 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
205 return $self->{'_sequence'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
206 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
207
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
208 =head2 repeats($new_repeats)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
209
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
210 Title : repeats($new_repeats)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
211 Usage : my $repeats = $o_usat->repeats($new_repeats) _or_
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
212 my $repeats = $o_usat->repeats()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
213 Function: Get/Set the repeat repeats for this Microsatellite
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
214 Returns : A scalar representing the current number of repeats of this
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
215 Microsatellite.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
216 Args : If provided, the current number of repeats of this
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
217 Microsatellite will be set to $new_repeats.
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 sub repeats {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
222 my ($self,$repeats) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
223 if ($repeats) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
224 $self->{'_repeats'} = $repeats;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
225 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
226 return $self->{'_repeats'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
227 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
228
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
229 =head2 repeat_start_position($new_repeat_start_position)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
230
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
231 Title : repeat_start_position($new_repeat_start_position)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
232 Usage : my $repeat_start_position =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
233 $o_usat->repeat_start_position($new_repeat_start_position) _or_
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
234 my $repeat_start_position = $o_usat->repeat_start_position()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
235 Function: Get/Set the repeat repeat_start_position for this
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
236 Microsatellite
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
237 Returns : A scalar representing the repeat start position for this
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
238 Microsatellite.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
239 Args : If provided, the current repeat start position of this
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
240 Microsatellite will be set to $new_repeat_start_position.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
241 This method will also try to set the repeat end position. This
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
242 depends on having information for the motif and the number of
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
243 repeats. If you want to use methods like get_trailing_flank or
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
244 get_leading flank, be careful to include the right information.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
245
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
246 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
247
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
248 sub repeat_start_position {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
249 my ($self,$repeat_start_position) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
250 if ($repeat_start_position) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
251 $self->{'_repeat_start_position'} = $repeat_start_position;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
252 $self->repeat_end_position("set");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
253 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
254 return $self->{'_repeat_start_position'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
255 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
256
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
257 =head2 repeat_end_position($value)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
258
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
259 Title : repeat_end_position($set)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
260 Usage : $new_repeat_end_position =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
261 $o_usat->repeat_end_position("set"); _or_
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
262 $new_repeat_end_position =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
263 $o_usat->repeat_end_position($value); _or_
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
264 $current_repeat_end_position = $o_usat->repeat_end_position();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
265 Function: get/set the end position of the repeat in this sequence
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
266 Returns : A scalar representing the base index of the end of the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
267 repeat in this Microsatellite. The first base in the sequence
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
268 is base 1.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
269 Args : A scalar representing a value, the string "set", or no
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
270 argument (see Notes).
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
271 Notes : If you do not provide an argument to this method, the current
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
272 end position of the repeat in this Microsatellite will be
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
273 returned (a scalar).
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
274 If you provide the string "set" to this method it will set the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
275 end position based on the start position, the length of the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
276 motif, and the nuimber of repeats.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
277 If you specify a value the current end position of the repeat
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
278 will be set to that value. This is a really bad idea. Don't do
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
279 it.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
280
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
281 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
282
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
283 #'
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
284 sub repeat_end_position {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
285 my ($self,$caller) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
286 if( defined $caller ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
287 if ($caller eq "set") {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
288 $self->{'_repeat_end_position'} =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
289 $self->{'_repeat_start_position'} +
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
290 (length($self->motif()) * $self->repeats());
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
291 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
292 elsif ($caller) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
293 $self->{'_repeat_end_position'} = $caller;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
294 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
295 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
296 return $self->{'_repeat_end_position'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
297 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
298
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
299 =head2 equals
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
300
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
301 Title : equals
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
302 Usage : if( $mappable->equals($mapable2)) ...
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
303 Function: Test if a position is equal to another position
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
304 Returns : boolean
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
305 Args : Bio::Map::MappableI
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
306
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
307 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
308
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
309 sub equals {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
310 my ($self,@args) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
311 $self->warn("equals is not yet implemented in ".
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
312 ref($self)." yet. Check back real soon!");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
313 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
314
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
315 =head2 less_than
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
316
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
317 Title : less_than
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
318 Usage : if( $mappable->less_than($m2) ) ...
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
319 Function: Tests if a position is less than another position
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
320 Returns : boolean
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
321 Args : Bio::Map::MappableI
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
322
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
323 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
324
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
325 sub less_than {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
326 my ($self,@args) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
327 $self->warn("less_then is not yet implemented in ".
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
328 ref($self)." yet. Check back real soon!");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
329 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
330
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
331 =head2 greater_than
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
332
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
333 Title : greater_than
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
334 Usage : if( $mappable->greater_than($m2) ) ...
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
335 Function: Tests if position is greater than another position
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
336 Returns : boolean
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
337 Args : Bio::Map::MappableI
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
338
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
339 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
340
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
341 sub greater_than {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
342 my ($self,@args) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
343 $self->warn("greater_then is not yet implemented in ".
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
344 ref($self)." yet. Check back real soon!");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
345 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
346
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
347 =head2 get_leading_flank()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
348
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
349 Title : get_leading_flank()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
350 Usage : $leading_sequence = $o_usat->get_leading_flank();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
351 Returns : A scalar representing the sequence before the repeats in this
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
352 Microsatellite.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
353 Args : None.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
354
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
355 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
356
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
357 sub get_leading_flank {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
358 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
359 return substr $self->sequence(),0,$self->repeat_start_position-1;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
360
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
361 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
362
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
363 =head2 get_trailing_flank()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
364
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
365 Title : get_trailing_flank()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
366 Usage : $trailing_flank = $o_usat->get_trailing_flank();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
367 Returns : A scalar representing the sequence after the repeats in this
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
368 Microsatellite.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
369 Args : None.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
370
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
371 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
372
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
373 sub get_trailing_flank {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
374 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
375 return substr $self->sequence(),$self->repeat_end_position()-1;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
376 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
377
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
378
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
379 1;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
380
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
381