annotate variant_effect_predictor/Bio/Variation/SeqDiff.pm @ 3:d30fa12e4cc5 default tip

Merge heads 2:a5976b2dce6f and 1:09613ce8151e which were created as a result of a recently fixed bug.
author devteam <devteam@galaxyproject.org>
date Mon, 13 Jan 2014 10:38:30 -0500
parents 1f6dce3d34e0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1 # $Id: SeqDiff.pm,v 1.16 2002/10/22 07:38:49 lapp Exp $
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2 # bioperl module for Bio::Variation::SeqDiff
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4 # Cared for by Heikki Lehvaslaiho <heikki@ebi.ac.uk>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6 # Copyright Heikki Lehvaslaiho
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8 # You may distribute this module under the same terms as perl itself
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10 # POD documentation - main docs before the code
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12 # cds_end definition?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16 Bio::Variation::SeqDiff - Container class for mutation/variant descriptions
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20 $seqDiff = Bio::Variation::SeqDiff->new (
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 -id => $M20132,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22 -alphabet => 'rna',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 -gene_symbol => 'AR'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24 -chromosome => 'X',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25 -numbering => 'coding'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 # get a DNAMutation object somehow
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 $seqDiff->add_Variant($dnamut);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 print $seqDiff->sys_name(), "\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 SeqDiff stores Bio::Variation::VariantI object references and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 descriptive information common to all changes in a sequence. Mutations
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 are understood to be any kind of sequence markers and are expected to
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36 occur in the same chromosome. See L<Bio::Variation::VariantI> for details.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 The methods of SeqDiff are geared towards describing mutations in
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 human genes using gene-based coordinate system where 'A' of the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 initiator codon has number 1 and the one before it -1. This is
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 according to conventions of human genetics.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 There will be class Bio::Variation::Genotype to describe markers in
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 different chromosomes and diploid genototypes.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46 Classes implementing Bio::Variation::VariantI interface are
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 Bio::Variation::DNAMutation, Bio::Variation::RNAChange, and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 Bio::Variation::AAChange. See L<Bio::Variation::VariantI>,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 L<Bio::Variation::DNAMutation>, L<Bio::Variation::RNAChange>, and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 L<Bio::Variation::AAChange> for more information.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 Variant objects can be added using two ways: an array passed to the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 constructor or as individual Variant objects with add_Variant
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 method.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 =head1 FEEDBACK
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 =head2 Mailing Lists
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 User feedback is an integral part of the evolution of this and other
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 Bioperl modules. Send your comments and suggestions preferably to the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63 Bioperl mailing lists Your participation is much appreciated.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65 bioperl-l@bioperl.org - General discussion
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 http://bio.perl.org/MailList.html - About the mailing lists
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 =head2 Reporting Bugs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 report bugs to the Bioperl bug tracking system to help us keep track
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 the bugs and their resolution. Bug reports can be submitted via
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 email or the web:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 bioperl-bugs@bio.perl.org
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 http://bugzilla.bioperl.org/
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 =head1 AUTHOR - Heikki Lehvaslaiho
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 Email: heikki@ebi.ac.uk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 Address:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 EMBL Outstation, European Bioinformatics Institute
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 Wellcome Trust Genome Campus, Hinxton
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 Cambs. CB10 1SD, United Kingdom
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 =head1 CONTRIBUTORS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 Eckhard Lehmann, ecky@e-lehmann.de
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 =head1 APPENDIX
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 The rest of the documentation details each of the object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 methods. Internal methods are usually preceded with a _
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 # Let the code begin...
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 package Bio::Variation::SeqDiff;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 my $VERSION=1.0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 use vars qw($VERSION @ISA);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 use Bio::Root::Root;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 use Bio::Tools::CodonTable;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 use Bio::PrimarySeq;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 @ISA = qw( Bio::Root::Root );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 =head2 new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 Title : new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 Usage : $seqDiff = Bio::Variation::SeqDiff->new;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 Function: generates a new Bio::Variation::SeqDiff
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 Returns : reference to a new object of class SeqDiff
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 Args :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 my($class,@args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 my $self = $class->SUPER::new(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 my($id, $sysname, $trivname, $chr, $gene_symbol,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 $desc, $alphabet, $numbering, $offset, $rna_offset, $rna_id, $cds_end,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 $dna_ori, $dna_mut, $rna_ori, $rna_mut, $aa_ori, $aa_mut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 #@variants, @genes
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 ) =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 $self->_rearrange([qw(ID
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131 SYSNAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 TRIVNAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 CHR
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134 GENE_SYMBOL
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 DESC
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 ALPHABET
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137 NUMBERING
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138 OFFSET
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 RNA_OFFSET
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 RNA_ID
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 CDS_END
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142 DNA_ORI
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 DNA_MUT
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144 RNA_ORI
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 AA_ORI
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146 AA_MUT
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147 )],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148 @args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150 #my $make = $self->SUPER::_initialize(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152 $id && $self->id($id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153 $sysname && $self->sysname($sysname);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 $trivname && $self->trivname($trivname);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155 $chr && $self->chromosome($chr);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156 $gene_symbol && $self->gene_symbol($chr);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157 $desc && $self->description($desc);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158 $alphabet && $self->alphabet($alphabet);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159 $numbering && $self->numbering($numbering);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160 $offset && $self->offset($offset);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161 $rna_offset && $self->rna_offset($rna_offset);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 $rna_id && $self->rna_id($rna_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163 $cds_end && $self->cds_end($cds_end);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 $dna_ori && $self->dna_ori($dna_ori);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166 $dna_mut && $self->dna_mut($dna_mut);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 $rna_ori && $self->rna_ori($rna_ori);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168 $rna_mut && $self->rna_mut($rna_mut);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 $aa_ori && $self->aa_ori ($aa_ori);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 $aa_mut && $self->aa_mut ($aa_mut);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172 $self->{ 'variants' } = [];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173 #@variants && push(@{$self->{'variants'}},@variants);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175 $self->{ 'genes' } = [];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 #@genes && push(@{$self->{'genes'}},@genes);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178 return $self; # success - we hope!
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182 =head2 id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 Title : id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185 Usage : $obj->id(H0001); $id = $obj->id();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188 Sets or returns the id of the seqDiff.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189 Should be used to give the collection of variants a UID
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190 without semantic associations.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193 Returns : value of id, a scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194 Args : newvalue (optional)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199 sub id {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201 if (defined $value) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202 $self->{'id'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204 # unless (exists $self->{'id'}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205 # return "undefined";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206 # }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208 return $self->{'id'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213 =head2 sysname
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215 Title : sysname
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216 Usage : $obj->sysname('5C>G'); $sysname = $obj->sysname();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219 Sets or returns the systematic name of the seqDiff. The
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220 name should follow the HUGO Mutation Database Initiative
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221 approved nomenclature. If called without first setting the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222 value, will generate it from L<Bio::Variation::DNAMutation>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223 objects attached.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226 Returns : value of sysname, a scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 Args : newvalue (optional)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232 sub sysname {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234 if (defined $value) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235 $self->{'sysname'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
237 elsif (not defined $self->{'sysname'}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
238
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
239 my $sysname = '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
240 my $c = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
241 foreach my $mut ($self->each_Variant) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242 if( $mut->isa('Bio::Variation::DNAMutation') ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
243 $c++;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
244 if ($c == 1 ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
245 $sysname = $mut->sysname ;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
246 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
247 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
248 $sysname .= ";". $mut->sysname;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
249 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
250 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
251 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
252 $sysname = "[". $sysname. "]" if $c > 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
253 $self->{'sysname'} = $sysname;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
254 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
255 return $self->{'sysname'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
256 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
257
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
258
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
259 =head2 trivname
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
260
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
261 Title : trivname
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
262 Usage : $obj->trivname('[A2G;T56G]'); $trivname = $obj->trivname();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
263 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
264
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
265 Sets or returns the trivial name of the seqDiff.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
266 The name should follow the HUGO Mutation Database Initiative
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
267 approved nomenclature. If called without first setting the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
268 value, will generate it from L<Bio::Variation::AAChange>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
269 objects attached.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
270
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
271 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
272 Returns : value of trivname, a scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
273 Args : newvalue (optional)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
274
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
275 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
276
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
277
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
278 sub trivname {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
279 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
280 if (defined $value) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
281 $self->{'trivname'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
282 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
283 elsif (not defined $self->{'trivname'}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
284
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
285 my $trivname = '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
286 my $c = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
287 foreach my $mut ($self->each_Variant) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
288 if( $mut->isa('Bio::Variation::AAChange') ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
289 $c++;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
290 if ($c == 1 ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
291 $trivname = $mut->trivname ;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
292 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
293 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
294 $trivname .= ";". $mut->trivname;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
295 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
296 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
297 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
298 $trivname = "[". $trivname. "]" if $c > 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
299 $self->{'trivname'} = $trivname;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
300 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
301
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
302 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
303 return $self->{'trivname'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
304 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
305 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
306
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
307
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
308 =head2 chromosome
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
309
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
310 Title : chromosome
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
311 Usage : $obj->chromosome('X'); $chromosome = $obj->chromosome();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
312 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
313
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
314 Sets or returns the chromosome ("linkage group") of the seqDiff.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
315
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
316 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
317 Returns : value of chromosome, a scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
318 Args : newvalue (optional)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
319
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
320 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
321
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
322
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
323 sub chromosome {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
324 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
325 if (defined $value) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
326 $self->{'chromosome'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
327 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
328 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
329 return $self->{'chromosome'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
330 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
331 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
332
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
333
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
334 =head2 gene_symbol
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
335
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
336 Title : gene_symbol
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
337 Usage : $obj->gene_symbol('FOS'); $gene_symbol = $obj->gene_symbol;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
338 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
339
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
340 Sets or returns the gene symbol for the studied CDS.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
341
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
342 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
343 Returns : value of gene_symbol, a scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
344 Args : newvalue (optional)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
345
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
346 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
347
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
348
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
349 sub gene_symbol {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
350 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
351 if (defined $value) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
352 $self->{'gene_symbol'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
353 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
354 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
355 return $self->{'gene_symbol'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
356 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
357 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
358
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
359
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
360
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
361 =head2 description
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
362
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
363 Title : description
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
364 Usage : $obj->description('short description'); $descr = $obj->description();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
365 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
366
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
367 Sets or returns the short description of the seqDiff.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
368
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
369 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
370 Returns : value of description, a scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
371 Args : newvalue (optional)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
372
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
373 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
374
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
375
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
376 sub description {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
377 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
378 if (defined $value) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
379 $self->{'description'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
380 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
381 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
382 return $self->{'description'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
383 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
384 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
385
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
386
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
387 =head2 alphabet
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
388
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
389 Title : alphabet
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
390 Usage : if( $obj->alphabet eq 'dna' ) { /Do Something/ }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
391 Function: Returns the type of primary reference sequence being one of
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
392 'dna', 'rna' or 'protein'. This is case sensitive.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
393
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
394 Returns : a string either 'dna','rna','protein'.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
395 Args : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
396
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
397
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
398 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
399
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
400 sub alphabet {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
401 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
402 my %type = (dna => 1,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
403 rna => 1,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
404 protein => 1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
405 if( defined $value ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
406 if ($type{$value}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
407 $self->{'alphabet'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
408 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
409 $self->throw("$value is not valid alphabet value!");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
410 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
411 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
412 return $self->{'alphabet'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
413 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
414
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
415
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
416 =head2 numbering
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
417
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
418 Title : numbering
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
419 Usage : $obj->numbering('coding'); $numbering = $obj->numbering();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
420 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
421
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
422 Sets or returns the string giving the numbering schema used
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
423 to describe the variants.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
424
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
425 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
426 Returns : value of numbering, a scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
427 Args : newvalue (optional)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
428
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
429 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
430
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
431
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
432
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
433 sub numbering {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
434 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
435 if (defined $value) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
436 $self->{'numbering'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
437 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
438 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
439 return $self->{'numbering'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
440 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
441 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
442
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
443
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
444 =head2 offset
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
445
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
446 Title : offset
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
447 Usage : $obj->offset(124); $offset = $obj->offset();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
448 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
449
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
450 Sets or returns the offset from the beginning of the DNA sequence
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
451 to the coordinate start used to describe variants. Typically
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
452 the beginning of the coding region of the gene.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
453 The cds_start should be 1 + offset.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
454
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
455 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
456 Returns : value of offset, a scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
457 Args : newvalue (optional)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
458
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
459 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
460
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
461
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
462
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
463 sub offset {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
464 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
465 if (defined $value) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
466 $self->{'offset'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
467 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
468 elsif (not defined $self->{'offset'} ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
469 return $self->{'offset'} = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
470 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
471 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
472 return $self->{'offset'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
473 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
474 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
475
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
476
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
477 =head2 cds_start
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
478
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
479 Title : cds_start
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
480 Usage : $obj->cds_start(123); $cds_start = $obj->cds_start();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
481 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
482
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
483 Sets or returns the cds_start from the beginning of the DNA
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
484 sequence to the coordinate start used to describe
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
485 variants. Typically the beginning of the coding region of
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
486 the gene. Needs to be and is implemented as 1 + offset.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
487
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
488 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
489 Returns : value of cds_start, a scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
490 Args : newvalue (optional)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
491
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
492 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
493
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
494
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
495
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
496 sub cds_start {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
497 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
498 if (defined $value) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
499 $self->{'offset'} = $value - 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
500 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
501 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
502 return $self->{'offset'} + 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
503 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
504 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
505
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
506
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
507 =head2 cds_end
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
508
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
509 Title : cds_end
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
510 Usage : $obj->cds_end(321); $cds_end = $obj->cds_end();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
511 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
512
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
513 Sets or returns the position of the last nucleotitide of the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
514 termination codon. The coordinate system starts from cds_start.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
515
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
516 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
517 Returns : value of cds_end, a scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
518 Args : newvalue (optional)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
519
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
520 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
521
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
522
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
523
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
524 sub cds_end {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
525 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
526 if (defined $value) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
527 $self->{'cds_end'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
528 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
529 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
530 return $self->{'cds_end'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
531 #$self->{'cds_end'} = CORE::length($self->SeqDiff->rna_ori)/3;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
532 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
533 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
534
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
535
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
536 =head2 rna_offset
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
537
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
538 Title : rna_offset
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
539 Usage : $obj->rna_offset(124); $rna_offset = $obj->rna_offset();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
540 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
541
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
542 Sets or returns the rna_offset from the beginning of the RNA sequence
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
543 to the coordinate start used to describe variants. Typically
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
544 the beginning of the coding region of the gene.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
545
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
546 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
547 Returns : value of rna_offset, a scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
548 Args : newvalue (optional)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
549
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
550 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
551
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
552
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
553
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
554 sub rna_offset {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
555 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
556 if (defined $value) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
557 $self->{'rna_offset'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
558 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
559 elsif (not defined $self->{'rna_offset'} ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
560 return $self->{'rna_offset'} = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
561 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
562 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
563 return $self->{'rna_offset'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
564 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
565 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
566
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
567
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
568 =head2 rna_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
569
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
570 Title : rna_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
571 Usage : $obj->rna_id('transcript#3'); $rna_id = $obj->rna_id();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
572 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
573
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
574 Sets or returns the ID for original RNA sequence of the seqDiff.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
575
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
576 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
577 Returns : value of rna_id, a scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
578 Args : newvalue (optional)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
579
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
580 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
581
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
582
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
583 sub rna_id {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
584 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
585 if (defined $value) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
586 $self->{'rna_id'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
587 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
588 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
589 return $self->{'rna_id'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
590 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
591 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
592
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
593
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
594
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
595 =head2 add_Variant
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
596
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
597 Title : add_Variant
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
598 Usage : $obj->add_Variant($variant)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
599 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
600
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
601 Pushes one Bio::Variation::Variant into the list of variants.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
602 At the same time, creates a link from the Variant to SeqDiff
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
603 using its SeqDiff method.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
604
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
605 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
606 Returns : 1 when succeeds, 0 for failure.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
607 Args : Variant object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
608
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
609 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
610
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
611 sub add_Variant {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
612 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
613 if (defined $value) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
614 if( ! $value->isa('Bio::Variation::VariantI') ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
615 $self->throw("Is not a VariantI complying object but a [$self]");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
616 return 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
617 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
618 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
619 push(@{$self->{'variants'}},$value);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
620 $value->SeqDiff($self);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
621 return 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
622 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
623 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
624 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
625 return 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
626 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
627 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
628
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
629
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
630 =head2 each_Variant
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
631
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
632 Title : each_Variant
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
633 Usage : $obj->each_Variant();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
634 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
635
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
636 Returns a list of Variants.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
637
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
638 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
639 Returns : list of Variants
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
640 Args : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
641
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
642 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
643
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
644 sub each_Variant{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
645 my ($self,@args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
646
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
647 return @{$self->{'variants'}};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
648 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
649
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
650
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
651
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
652 =head2 add_Gene
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
653
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
654 Title : add_Gene
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
655 Usage : $obj->add_Gene($gene)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
656 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
657
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
658 Pushes one L<Bio::LiveSeq::Gene> into the list of genes.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
659
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
660 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
661 Returns : 1 when succeeds, 0 for failure.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
662 Args : Bio::LiveSeq::Gene object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
663
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
664 See L<Bio::LiveSeq::Gene> for more information.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
665
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
666 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
667
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
668
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
669 sub add_Gene {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
670 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
671 if (defined $value) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
672 if( ! $value->isa('Bio::LiveSeq::Gene') ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
673 $value->throw("Is not a Bio::LiveSeq::Gene object but a [$value]");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
674 return 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
675 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
676 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
677 push(@{$self->{'genes'}},$value);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
678 return 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
679 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
680 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
681 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
682 return 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
683 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
684 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
685
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
686
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
687 =head2 each_Gene
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
688
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
689 Title : each_Gene
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
690 Usage : $obj->each_Gene();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
691 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
692
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
693 Returns a list of L<Bio::LiveSeq::Gene>s.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
694
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
695 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
696 Returns : list of Genes
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
697 Args : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
698
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
699 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
700
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
701 sub each_Gene{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
702 my ($self,@args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
703
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
704 return @{$self->{'genes'}};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
705 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
706
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
707
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
708 =head2 dna_ori
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
709
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
710 Title : dna_ori
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
711 Usage : $obj->dna_ori('atgctgctgctgct'); $dna_ori = $obj->dna_ori();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
712 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
713
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
714 Sets or returns the original DNA sequence string of the seqDiff.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
715
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
716 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
717 Returns : value of dna_ori, a scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
718 Args : newvalue (optional)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
719
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
720 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
721
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
722
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
723 sub dna_ori {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
724 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
725 if (defined $value) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
726 $self->{'dna_ori'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
727 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
728 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
729 return $self->{'dna_ori'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
730 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
731 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
732
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
733
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
734 =head2 dna_mut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
735
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
736 Title : dna_mut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
737 Usage : $obj->dna_mut('atgctggtgctgct'); $dna_mut = $obj->dna_mut();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
738 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
739
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
740 Sets or returns the mutated DNA sequence of the seqDiff.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
741 If sequence has not been set generates it from the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
742 original sequence and DNA mutations.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
743
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
744 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
745 Returns : value of dna_mut, a scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
746 Args : newvalue (optional)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
747
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
748 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
749
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
750
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
751 sub dna_mut {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
752 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
753 if (defined $value) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
754 $self->{'dna_mut'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
755 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
756 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
757 $self->_set_dnamut() unless $self->{'dna_mut'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
758 return $self->{'dna_mut'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
759 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
760 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
761
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
762 sub _set_dnamut {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
763 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
764
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
765 return undef unless $self->{'dna_ori'} && $self->each_Variant;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
766
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
767 $self->{'dna_mut'} = $self->{'dna_ori'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
768 foreach ($self->each_Variant) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
769 next unless $_->isa('Bio::Variation::DNAMutation');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
770 next unless $_->isMutation;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
771
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
772 my ($s, $la, $le);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
773 #lies the mutation less than 25 bases after the start of sequence?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
774 if ($_->start < 25) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
775 $s = 0; $la = $_->start - 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
776 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
777 $s = $_->start - 25; $la = 25;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
778 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
779
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
780 #is the mutation an insertion?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
781 $_->end($_->start) unless $_->allele_ori->seq;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
782
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
783 #does the mutation end greater than 25 bases before the end of
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
784 #sequence?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
785 if (($_->end + 25) > length($self->{'dna_mut'})) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
786 $le = length($self->{'dna_mut'}) - $_->end;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
787 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
788 $le = 25;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
789 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
790
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
791 $_->dnStreamSeq(substr($self->{'dna_mut'}, $s, $la));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
792 $_->upStreamSeq(substr($self->{'dna_mut'}, $_->end, $le));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
793
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
794 my $s_ori = $_->dnStreamSeq . $_->allele_ori->seq . $_->upStreamSeq;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
795 my $s_mut = $_->dnStreamSeq . $_->allele_mut->seq . $_->upStreamSeq;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
796
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
797 (my $str = $self->{'dna_mut'}) =~ s/$s_ori/$s_mut/;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
798 $self->{'dna_mut'} = $str;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
799 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
800 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
801
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
802
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
803 =head2 rna_ori
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
804
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
805 Title : rna_ori
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
806 Usage : $obj->rna_ori('atgctgctgctgct'); $rna_ori = $obj->rna_ori();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
807 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
808
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
809 Sets or returns the original RNA sequence of the seqDiff.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
810
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
811 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
812 Returns : value of rna_ori, a scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
813 Args : newvalue (optional)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
814
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
815 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
816
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
817
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
818 sub rna_ori {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
819 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
820 if (defined $value) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
821 $self->{'rna_ori'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
822 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
823 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
824 return $self->{'rna_ori'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
825 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
826 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
827
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
828
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
829 =head2 rna_mut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
830
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
831 Title : rna_mut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
832 Usage : $obj->rna_mut('atgctggtgctgct'); $rna_mut = $obj->rna_mut();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
833 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
834
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
835 Sets or returns the mutated RNA sequence of the seqDiff.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
836
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
837 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
838 Returns : value of rna_mut, a scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
839 Args : newvalue (optional)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
840
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
841 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
842
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
843
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
844 sub rna_mut {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
845 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
846 if (defined $value) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
847 $self->{'rna_mut'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
848 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
849 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
850 return $self->{'rna_mut'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
851 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
852 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
853
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
854
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
855 =head2 aa_ori
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
856
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
857 Title : aa_ori
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
858 Usage : $obj->aa_ori('MAGVLL*'); $aa_ori = $obj->aa_ori();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
859 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
860
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
861 Sets or returns the original protein sequence of the seqDiff.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
862
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
863 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
864 Returns : value of aa_ori, a scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
865 Args : newvalue (optional)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
866
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
867 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
868
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
869
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
870 sub aa_ori {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
871 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
872 if (defined $value) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
873 $self->{'aa_ori'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
874 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
875 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
876 return $self->{'aa_ori'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
877 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
878 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
879
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
880
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
881 =head2 aa_mut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
882
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
883 Title : aa_mut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
884 Usage : $obj->aa_mut('MA*'); $aa_mut = $obj->aa_mut();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
885 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
886
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
887 Sets or returns the mutated protein sequence of the seqDiff.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
888
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
889 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
890 Returns : value of aa_mut, a scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
891 Args : newvalue (optional)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
892
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
893 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
894
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
895
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
896 sub aa_mut {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
897 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
898 if (defined $value) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
899 $self->{'aa_mut'} = $value;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
900 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
901 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
902 return $self->{'aa_mut'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
903 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
904 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
905
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
906
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
907 =head2 seqobj
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
908
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
909 Title : seqobj
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
910 Usage : $dnaobj = $obj->seqobj('dna_mut');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
911 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
912
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
913 Returns the any original or mutated sequences as a
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
914 Bio::PrimarySeq object.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
915
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
916 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
917 Returns : Bio::PrimarySeq object for the requested sequence
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
918 Args : string, method name for the sequence requested
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
919
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
920 See L<Bio::PrimarySeq> for more information.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
921
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
922 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
923
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
924 sub seqobj {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
925 my ($self,$value) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
926 my $out;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
927 my %valid_obj =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
928 map {$_, 1} qw(dna_ori rna_ori aa_ori dna_mut rna_mut aa_mut);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
929 $valid_obj{$value} ||
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
930 $self->throw("Sequence type '$value' is not a valid type (".
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
931 join(',', map "'$_'", sort keys %valid_obj) .") lowercase");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
932 my ($alphabet) = $value =~ /([^_]+)/;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
933 my $id = $self->id;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
934 $id = $self->rna_id if $self->rna_id;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
935 $alphabet = 'protein' if $alphabet eq 'aa';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
936 $out = Bio::PrimarySeq->new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
937 ( '-seq' => $self->{$value},
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
938 '-display_id' => $id,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
939 '-accession_number' => $self->id,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
940 '-alphabet' => $alphabet
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
941 ) if $self->{$value} ;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
942 return $out;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
943 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
944
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
945 =head2 alignment
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
946
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
947 Title : alignment
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
948 Usage : $obj->alignment
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
949 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
950
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
951 Returns a pretty RNA/AA sequence alignment from linked
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
952 objects. Under construction: Only simple coding region
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
953 point mutations work.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
954
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
955 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
956 Returns :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
957 Args : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
958
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
959 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
960
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
961
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
962 sub alignment {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
963 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
964 my (@entry, $text);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
965
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
966 my $maxflanklen = 12;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
967
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
968 foreach my $mut ($self->each_Variant) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
969 if( $mut->isa('Bio::Variation::RNAChange') ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
970
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
971 my $upflank = $mut->upStreamSeq;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
972 my $dnflank = $mut->dnStreamSeq;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
973 my $cposd = $mut->codon_pos;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
974 my $rori = $mut->allele_ori->seq;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
975 my $rmut = $mut->allele_mut->seq;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
976 my $rseqoriu = '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
977 my $rseqmutu = '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
978 my $rseqorid = '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
979 my $rseqmutd = '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
980 my $aaseqmutu = '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
981 my (@rseqori, @rseqmut );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
982
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
983 # point
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
984 if ($mut->DNAMutation->label =~ /point/) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
985 if ($cposd == 1 ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
986 my $nt2d = substr($dnflank, 0, 2);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
987 push @rseqori, $rori. $nt2d;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
988 push @rseqmut, uc ($rmut). $nt2d;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
989 $dnflank = substr($dnflank, 2);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
990 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
991 elsif ($cposd == 2) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
992 my $ntu = chop $upflank;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
993 my $ntd = substr($dnflank, 0, 1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
994 push @rseqori, $ntu. $rori. $ntd;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
995 push @rseqmut, $ntu. uc ($rmut). $ntd;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
996 $dnflank = substr($dnflank, 1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
997 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
998 elsif ($cposd == 3) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
999 my $ntu1 = chop $upflank;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1000 my $ntu2 = chop $upflank;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1001 push (@rseqori, $ntu2. $ntu1. $rori);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1002 push (@rseqmut, $ntu2. $ntu1. uc $rmut);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1003 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1004 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1005 #deletion
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1006 elsif ($mut->DNAMutation->label =~ /deletion/) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1007 if ($cposd == 2 ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1008 $rseqorid = chop $upflank;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1009 $rseqmutd = $rseqorid;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1010 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1011 for (my $i=1; $i<=$mut->length; $i++) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1012 my $ntd .= substr($mut->allele_ori, $i-1, 1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1013 $rseqorid .= $ntd;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1014 if (length($rseqorid) == 3 ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1015 push (@rseqori, $rseqorid);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1016 push (@rseqmut, " ");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1017 $rseqorid = '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1018 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1019 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1020
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1021 if ($rseqorid) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1022 $rseqorid .= substr($dnflank, 0, 3-$rseqorid);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1023 push (@rseqori, $rseqorid);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1024 push (@rseqmut, " ");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1025 $dnflank = substr($dnflank,3-$rseqorid);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1026 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1027 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1028 $upflank = reverse $upflank;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1029 # loop throught the flanks
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1030 for (my $i=1; $i<=length($dnflank); $i++) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1031
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1032 last if $i > $maxflanklen;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1033
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1034 my $ntd .= substr($dnflank, $i-1, 1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1035 my $ntu .= substr($upflank, $i-1, 1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1036
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1037 $rseqmutd .= $ntd;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1038 $rseqorid .= $ntd;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1039 $rseqmutu = $ntu. $rseqmutu;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1040 $rseqoriu = $ntu. $rseqoriu;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1041
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1042 if (length($rseqorid) == 3 and length($rseqorid) == 3) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1043 push (@rseqori, $rseqorid);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1044 push (@rseqmut, $rseqmutd);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1045 $rseqorid = $rseqmutd ='';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1046 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1047 if (length($rseqoriu) == 3 and length($rseqoriu) == 3) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1048 unshift (@rseqori, $rseqoriu);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1049 unshift (@rseqmut, $rseqmutu);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1050 $rseqoriu = $rseqmutu ='';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1051 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1052
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1053 #print "|i=$i, $cposd, $rseqmutd, $rseqorid\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1054 #print "|i=$i, $cposu, $rseqmutu, $rseqoriu\n\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1055
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1056 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1057
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1058 push (@rseqori, $rseqorid);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1059 unshift (@rseqori, $rseqoriu);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1060 push (@rseqmut, $rseqmutd);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1061 unshift (@rseqmut, $rseqmutu);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1062
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1063 return unless $mut->AAChange;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1064 #translate
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1065 my $tr = new Bio::Tools::CodonTable ('-id' => $mut->codon_table);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1066 my $apos = $mut->AAChange->start;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1067 my $aposmax = CORE::length($self->aa_ori); #terminator codon no
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1068 my $rseqori;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1069 my $rseqmut;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1070 my $aaseqori;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1071 my $aaseqmut = "";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1072 for (my $i = 0; $i <= $#rseqori; $i++) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1073 my $a = '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1074
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1075 $a = $tr->translate($rseqori[$i]) if length($rseqori[$i]) == 3;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1076
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1077 if (length($a) != 1 or
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1078 $apos - ( $maxflanklen/2 -1) + $i < 1 or
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1079 $apos - ( $maxflanklen/2 -1) + $i > $aposmax ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1080 $aaseqori .= " ";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1081 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1082 $aaseqori .= " ". $a. " ";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1083 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1084 my $b = '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1085 if (length($rseqmut[$i]) == 3) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1086 if ($rseqmut[$i] eq ' ') {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1087 $b = "_";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1088 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1089 $b = $tr->translate($rseqmut[$i]);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1090 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1091 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1092 if (( $b ne $a and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1093 length($b) == 1 and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1094 $apos - ( $maxflanklen/2 -1) + $i >= 1 ) or
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1095 ( $apos - ( $maxflanklen/2 -1) + $i >= $aposmax and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1096 $mut->label =~ 'termination')
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1097 ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1098 $aaseqmut .= " ". $b. " ";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1099 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1100 $aaseqmut .= " ";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1101 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1102
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1103 if ($i == 0 and length($rseqori[$i]) != 3) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1104 my $l = 3 - length($rseqori[$i]);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1105 $rseqori[$i] = (" " x $l). $rseqori[$i];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1106 $rseqmut[$i] = (" " x $l). $rseqmut[$i];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1107 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1108 $rseqori .= $rseqori[$i]. " " if $rseqori[$i] ne '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1109 $rseqmut .= $rseqmut[$i]. " " if $rseqmut[$i] ne '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1110 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1111
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1112 # collect the results
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1113 push (@entry,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1114 "\n"
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1115 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1116 $text = " ". $aaseqmut;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1117 push (@entry,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1118 $text
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1119 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1120 $text = "Variant : ". $rseqmut;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1121 push (@entry,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1122 $text
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1123 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1124 $text = "Reference: ". $rseqori;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1125 push (@entry,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1126 $text
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1127 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1128 $text = " ". $aaseqori;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1129 push (@entry,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1130 $text
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1131 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1132 push (@entry,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1133 "\n"
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1134 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1135 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1136
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1137 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1138
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1139 my $res;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1140 foreach my $line (@entry) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1141 $res .= "$line\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1142 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1143 return $res;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1144 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1145
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1146 1;