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