Mercurial > repos > mahtabm > ensembl
comparison variant_effect_predictor/Bio/LiveSeq/Mutation.pm @ 0:1f6dce3d34e0
Uploaded
author | mahtabm |
---|---|
date | Thu, 11 Apr 2013 02:01:53 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:1f6dce3d34e0 |
---|---|
1 # $Id: Mutation.pm,v 1.6 2002/10/22 07:38:34 lapp Exp $ | |
2 # | |
3 # BioPerl module for Bio::LiveSeq::Mutation | |
4 # | |
5 # Cared for by Heikki Lehvaslaiho <heikki@ebi.ac.uk> | |
6 # | |
7 # Copyright Heikki Lehvaslaiho | |
8 # | |
9 # You may distribute this module under the same terms as perl itself | |
10 | |
11 # POD documentation - main docs before the code | |
12 | |
13 =head1 NAME | |
14 | |
15 Bio::LiveSeq::Mutation - Mutation event descriptor class | |
16 | |
17 =head1 SYNOPSIS | |
18 | |
19 # full descrition of a point mutation | |
20 $mutation1a = Bio::LiveSeq::Mutation->new ( -seq => 'A', | |
21 -seqori => 'T', | |
22 -pos => 100, | |
23 -len => 1 # optional, defaults to length(seq) | |
24 ); | |
25 | |
26 # minimal information for a point mutation | |
27 $mutation1b = Bio::LiveSeq::Mutation->new ( -seq => 'A', | |
28 -pos => 100 | |
29 ); | |
30 # insertion | |
31 $mutation2 = Bio::LiveSeq::Mutation->new ( -seq => 'ATT', | |
32 -pos => 100, | |
33 -len => 0 | |
34 ); | |
35 # deletion | |
36 $mutation3 = Bio::LiveSeq::Mutation->new ( -seq => '', # optional | |
37 -seqori => 'TTG', # optional | |
38 -pos => 100 | |
39 -len => 3 | |
40 ); | |
41 # complex | |
42 $mutation4 = Bio::LiveSeq::Mutation->new ( -seq => 'CC', | |
43 -seqori => 'TTG', # optional | |
44 -pos => 100 | |
45 -len => 3 | |
46 ); | |
47 | |
48 | |
49 =head1 DESCRIPTION | |
50 | |
51 This class describes a local mutation event using minimalistic | |
52 description. It is not necessary to know anything about the original | |
53 sequence. You need to give the changed sequence, the position of the | |
54 mutation in the (unidentified) reference sequence, and the length of | |
55 the affected subsequence in the reference sequence. If the original | |
56 allele sequence is given, the objects applying the mutation into the | |
57 reference sequence (e.g. L<Bio::LiveSeq::Mutator>) might check for its | |
58 validity. | |
59 | |
60 =head1 FEEDBACK | |
61 | |
62 =head2 Mailing Lists | |
63 | |
64 User feedback is an integral part of the evolution of this and other | |
65 Bioperl modules. Send your comments and suggestions preferably to the | |
66 Bioperl mailing lists Your participation is much appreciated. | |
67 | |
68 bioperl-l@bioperl.org - General discussion | |
69 http://bio.perl.org/MailList.html - About the mailing lists | |
70 | |
71 =head2 Reporting Bugs | |
72 | |
73 report bugs to the Bioperl bug tracking system to help us keep track | |
74 the bugs and their resolution. Bug reports can be submitted via | |
75 email or the web: | |
76 | |
77 bioperl-bugs@bio.perl.org | |
78 http://bugzilla.bioperl.org/ | |
79 | |
80 =head1 AUTHOR - Heikki Lehvaslaiho | |
81 | |
82 Email: heikki@ebi.ac.uk | |
83 Address: | |
84 | |
85 EMBL Outstation, European Bioinformatics Institute | |
86 Wellcome Trust Genome Campus, Hinxton | |
87 Cambs. CB10 1SD, United Kingdom | |
88 | |
89 =head1 APPENDIX | |
90 | |
91 The rest of the documentation details each of the object | |
92 methods. Internal methods are usually preceded with a _ | |
93 | |
94 =cut | |
95 | |
96 | |
97 # Let the code begin... | |
98 | |
99 package Bio::LiveSeq::Mutation; | |
100 use vars qw(@ISA); | |
101 use strict; | |
102 | |
103 # Object preamble - inheritance | |
104 | |
105 use Bio::Root::Root; | |
106 | |
107 @ISA = qw( Bio::Root::Root ); | |
108 | |
109 sub new { | |
110 my($class,@args) = @_; | |
111 my $self; | |
112 $self = {}; | |
113 bless $self, $class; | |
114 | |
115 my ($seq, $seqori, $pos, $len, $label) = | |
116 $self->_rearrange([qw(SEQ | |
117 SEQORI | |
118 POS | |
119 LEN | |
120 )], | |
121 @args); | |
122 | |
123 $seq && $self->seq($seq); | |
124 $seqori && $self->seqori($seqori); | |
125 $pos && $self->pos($pos); | |
126 defined($len) && $self->len($len); # defined() added otherwise won't work for len==0 | |
127 | |
128 return $self; # success - we hope! | |
129 } | |
130 | |
131 | |
132 =head2 seq | |
133 | |
134 Title : seq | |
135 Usage : $obj->seq(); | |
136 Function: | |
137 | |
138 Sets and returns the mutated sequence. No checking is done | |
139 to validate the symbols. | |
140 | |
141 Example : | |
142 Returns : string | |
143 Args : integer | |
144 | |
145 =cut | |
146 | |
147 | |
148 sub seq { | |
149 my ($self,$value) = @_; | |
150 if( defined $value) { | |
151 $self->{'seq'} = $value; | |
152 } | |
153 return $self->{'seq'}; | |
154 } | |
155 | |
156 | |
157 =head2 seqori | |
158 | |
159 Title : seqori | |
160 Usage : $obj->seqori(); | |
161 Function: | |
162 | |
163 Sets and returns the original subsequence in the reference | |
164 sequence. No checking is done to validate the symbols. | |
165 Optional value. | |
166 | |
167 Example : | |
168 Returns : string | |
169 Args : string | |
170 | |
171 =cut | |
172 | |
173 | |
174 sub seqori { | |
175 my ($self,$value) = @_; | |
176 if( defined $value) { | |
177 $self->{'seqori'} = $value; | |
178 } | |
179 return $self->{'seqori'}; | |
180 } | |
181 | |
182 | |
183 =head2 pos | |
184 | |
185 Title : pos | |
186 Usage : $obj->pos(); | |
187 Function: | |
188 | |
189 Sets and returns the position of the first element in the | |
190 sequence. | |
191 | |
192 Example : | |
193 Returns : string | |
194 Args : integer | |
195 | |
196 =cut | |
197 | |
198 | |
199 sub pos { | |
200 my ($self,$value) = @_; | |
201 if( defined $value) { | |
202 if ( $value !~ /^([+-])?\d+$/ ) { | |
203 $self->throw("[$value] for pos has to be an integer\n"); | |
204 } else { | |
205 $self->{'pos'} = $value; | |
206 } | |
207 } | |
208 return $self->{'pos'}; | |
209 } | |
210 | |
211 =head2 len | |
212 | |
213 Title : len | |
214 Usage : $obj->len(); | |
215 Function: | |
216 | |
217 Sets and returns the len of the affected original allele | |
218 sequence. If value is not set, defaults to the lenght of | |
219 the mutated sequence (seq). | |
220 | |
221 Example : | |
222 Returns : string | |
223 Args : string | |
224 | |
225 =cut | |
226 | |
227 sub len { | |
228 my ($self,$value) = @_; | |
229 if ( defined $value) { | |
230 $self->{'len'} = $value; | |
231 } | |
232 if ( ! exists $self->{'len'} ) { | |
233 return length $self->{'seq'}; | |
234 } | |
235 return $self->{'len'}; | |
236 } | |
237 | |
238 =head2 label | |
239 | |
240 Title : label | |
241 Usage : $obj->label(); | |
242 Function: | |
243 | |
244 Sets and returns the label of the affected original allele | |
245 location. Label is a stable identifier whereas location | |
246 can be changed by mutations. Label comes from | |
247 l<Bio::LiveSeq::Gene>. | |
248 | |
249 Example : | |
250 Returns : string | |
251 Args : string | |
252 | |
253 =cut | |
254 | |
255 sub label { | |
256 my ($self,$value) = @_; | |
257 if ( defined $value) { | |
258 $self->{'label'} = $value; | |
259 } | |
260 if ( ! exists $self->{'label'} ) { | |
261 return undef; | |
262 } | |
263 return $self->{'label'}; | |
264 } | |
265 | |
266 | |
267 =head2 transpos | |
268 | |
269 Title : transpos | |
270 Usage : $obj->transpos(); | |
271 Function: | |
272 | |
273 Sets and returns the transcript position of the mutation. | |
274 Set when associated with a reference sequence. Value | |
275 depends on reference molecule and the co-ordinate system | |
276 used. | |
277 | |
278 Example : | |
279 Returns : string | |
280 Args : integer | |
281 | |
282 =cut | |
283 | |
284 | |
285 sub transpos { | |
286 my ($self,$value) = @_; | |
287 if( defined $value) { | |
288 if ( $value !~ /^([+-])?\d+$/ ) { | |
289 $self->throw("[$value] for transpos has to be an integer\n"); | |
290 } else { | |
291 $self->{'transpos'} = $value; | |
292 } | |
293 } | |
294 return $self->{'transpos'}; | |
295 } | |
296 | |
297 | |
298 =head2 issue | |
299 | |
300 Title : issue | |
301 Usage : $obj->issue(); | |
302 Function: | |
303 | |
304 Sets and returns the position of the mutation in an array | |
305 of mutations to be issued. Set after the validity of the | |
306 mutation has been confirmed. | |
307 | |
308 Example : | |
309 Returns : string | |
310 Args : integer | |
311 | |
312 =cut | |
313 | |
314 | |
315 sub issue { | |
316 my ($self,$value) = @_; | |
317 if( defined $value) { | |
318 if ( $value !~ /^([+-])?\d+$/ ) { | |
319 $self->throw("[$value] for issue has to be an integer\n"); | |
320 } else { | |
321 $self->{'issue'} = $value; | |
322 } | |
323 } | |
324 return $self->{'issue'}; | |
325 } | |
326 | |
327 | |
328 =head2 prelabel | |
329 | |
330 Title : prelabel | |
331 Usage : $obj->prelabel(); | |
332 Function: | |
333 | |
334 Sets and returns the prelabel of the affected original allele | |
335 location. Prelabel is a stable identifier whereas location | |
336 can be changed by mutations. Prelabel comes from | |
337 l<Bio::LiveSeq::Gene>. | |
338 | |
339 Example : | |
340 Returns : string | |
341 Args : string | |
342 | |
343 =cut | |
344 | |
345 sub prelabel { | |
346 my ($self,$value) = @_; | |
347 if ( defined $value) { | |
348 $self->{'prelabel'} = $value; | |
349 } | |
350 if ( ! exists $self->{'prelabel'} ) { | |
351 return undef; | |
352 } | |
353 return $self->{'prelabel'}; | |
354 } | |
355 | |
356 | |
357 =head2 postlabel | |
358 | |
359 Title : postlabel | |
360 Usage : $obj->postlabel(); | |
361 Function: | |
362 | |
363 Sets and returns the postlabel of the affected original allele | |
364 location. Postlabel is a stable identifier whereas location | |
365 can be changed by mutations. Postlabel comes from | |
366 l<Bio::LiveSeq::Gene>. | |
367 | |
368 Example : | |
369 Returns : string | |
370 Args : string | |
371 | |
372 =cut | |
373 | |
374 sub postlabel { | |
375 my ($self,$value) = @_; | |
376 if ( defined $value) { | |
377 $self->{'postlabel'} = $value; | |
378 } | |
379 if ( ! exists $self->{'postlabel'} ) { | |
380 return undef; | |
381 } | |
382 return $self->{'postlabel'}; | |
383 } | |
384 | |
385 | |
386 =head2 lastlabel | |
387 | |
388 Title : lastlabel | |
389 Usage : $obj->lastlabel(); | |
390 Function: | |
391 | |
392 Sets and returns the lastlabel of the affected original allele | |
393 location. Lastlabel is a stable identifier whereas location | |
394 can be changed by mutations. Lastlabel comes from | |
395 l<Bio::LiveSeq::Gene>. | |
396 | |
397 Example : | |
398 Returns : string | |
399 Args : string | |
400 | |
401 =cut | |
402 | |
403 sub lastlabel { | |
404 my ($self,$value) = @_; | |
405 if ( defined $value) { | |
406 $self->{'lastlabel'} = $value; | |
407 } | |
408 if ( ! exists $self->{'lastlabel'} ) { | |
409 return undef; | |
410 } | |
411 return $self->{'lastlabel'}; | |
412 } | |
413 | |
414 1; |