annotate variant_effect_predictor/Bio/Variation/AAChange.pm @ 0:2bc9b66ada89 draft default tip

Uploaded
author mahtabm
date Thu, 11 Apr 2013 06:29:17 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1 # $Id: AAChange.pm,v 1.13 2002/10/22 07:38:49 lapp Exp $
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
2 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
3 # BioPerl module for Bio::Variation::AAChange
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
4 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
5 # Cared for by Heikki Lehvaslaiho <heikki@ebi.ac.uk>
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
6 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
7 # Copyright Heikki Lehvaslaiho
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
8 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
9 # You may distribute this module under the same terms as perl itself
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
10
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
11 # POD documentation - main docs before the code
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
12
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
13 =head1 NAME
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
14
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
15 Bio::Variation::AAChange - Sequence change class for polypeptides
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
16
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
17 =head1 SYNOPSIS
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
18
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
19 $aamut = Bio::Variation::AAChange->new
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
20 ('-start' => $start,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
21 '-end' => $end,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
22 '-length' => $len,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
23 '-proof' => $proof,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
24 '-isMutation' => 1,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
25 '-mut_number' => $mut_number
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
26 );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
27
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
28 my $a1 = Bio::Variation::Allele->new;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
29 $a1->seq($ori) if $ori;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
30 $aamut->allele_ori($a1);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
31 my $a2 = Bio::Variation::Allele->new;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
32 $a2->seq($mut) if $mut;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
33 $aachange->add_Allele($a2);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
34 $aachange->allele_mut($a2);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
35
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
36 print "\n";
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
37
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
38 # add it to a SeqDiff container object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
39 $seqdiff->add_Variant($rnachange);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
40
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
41 # and create links to and from RNA level variant objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
42 $aamut->RNAChange($rnachange);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
43 $rnachange->AAChange($rnachange);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
44
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
45 =head1 DESCRIPTION
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
46
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
47 The instantiable class Bio::Variation::RNAChange describes basic
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
48 sequence changes at polypeptide level. It uses methods defined in
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
49 superclass Bio::Variation::VariantI, see L<Bio::Variation::VariantI>
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
50 for details.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
51
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
52 If the variation described by a AAChange object has a known
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
53 Bio::Variation::RNAAChange object, create the link with method
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
54 AAChange(). See L<Bio::Variation::AAChange> for more information.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
55
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
56 =head1 FEEDBACK
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
57
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
58 =head2 Mailing Lists
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
59
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
60 User feedback is an integral part of the evolution of this and other
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
61 Bioperl modules. Send your comments and suggestions preferably to the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
62 Bioperl mailing lists Your participation is much appreciated.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
63
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
64 bioperl-l@bioperl.org - General discussion
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
65 http://bio.perl.org/MailList.html - About the mailing lists
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
66
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
67 =head2 Reporting Bugs
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
68
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
69 report bugs to the Bioperl bug tracking system to help us keep track
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
70 the bugs and their resolution. Bug reports can be submitted via
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
71 email or the web:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
72
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
73 bioperl-bugs@bio.perl.org
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
74 http://bugzilla.bioperl.org/
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
75
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
76 =head1 AUTHOR - Heikki Lehvaslaiho
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
77
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
78 Email: heikki@ebi.ac.uk
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
79
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
80 Address:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
81
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
82 EMBL Outstation, European Bioinformatics Institute
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
83 Wellcome Trust Genome Campus, Hinxton
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
84 Cambs. CB10 1SD, United Kingdom
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
85
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
86 =head1 APPENDIX
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
87
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
88 The rest of the documentation details each of the object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
89 methods. Internal methods are usually preceded with a _
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
90
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
91 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
92
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
93
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
94 # Let the code begin...
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
95
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
96
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
97 package Bio::Variation::AAChange;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
98 my $VERSION=1.0;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
99 use vars qw(@ISA $MATRIX);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
100 use strict;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
101
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
102 # Object preamble - inheritance
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
103 use Bio::Variation::VariantI;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
104
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
105 @ISA = qw( Bio::Variation::VariantI );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
106
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
107 BEGIN {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
108
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
109 my $matrix = << "__MATRIX__";
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
110 # Matrix made by matblas from blosum62.iij
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
111 # * column uses minimum score
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
112 # BLOSUM Clustered Scoring Matrix in 1/2 Bit Units
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
113 # Blocks Database = /data/blocks_5.0/blocks.dat
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
114 # Cluster Percentage: >= 62
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
115 # Entropy = 0.6979, Expected = -0.5209
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
116 A R N D C Q E G H I L K M F P S T W Y V B Z X *
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
117 A 4 -1 -2 -2 0 -1 -1 0 -2 -1 -1 -1 -1 -2 -1 1 0 -3 -2 0 -2 -1 0 -4
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
118 R -1 5 0 -2 -3 1 0 -2 0 -3 -2 2 -1 -3 -2 -1 -1 -3 -2 -3 -1 0 -1 -4
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
119 N -2 0 6 1 -3 0 0 0 1 -3 -3 0 -2 -3 -2 1 0 -4 -2 -3 3 0 -1 -4
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
120 D -2 -2 1 6 -3 0 2 -1 -1 -3 -4 -1 -3 -3 -1 0 -1 -4 -3 -3 4 1 -1 -4
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
121 C 0 -3 -3 -3 9 -3 -4 -3 -3 -1 -1 -3 -1 -2 -3 -1 -1 -2 -2 -1 -3 -3 -2 -4
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
122 Q -1 1 0 0 -3 5 2 -2 0 -3 -2 1 0 -3 -1 0 -1 -2 -1 -2 0 3 -1 -4
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
123 E -1 0 0 2 -4 2 5 -2 0 -3 -3 1 -2 -3 -1 0 -1 -3 -2 -2 1 4 -1 -4
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
124 G 0 -2 0 -1 -3 -2 -2 6 -2 -4 -4 -2 -3 -3 -2 0 -2 -2 -3 -3 -1 -2 -1 -4
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
125 H -2 0 1 -1 -3 0 0 -2 8 -3 -3 -1 -2 -1 -2 -1 -2 -2 2 -3 0 0 -1 -4
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
126 I -1 -3 -3 -3 -1 -3 -3 -4 -3 4 2 -3 1 0 -3 -2 -1 -3 -1 3 -3 -3 -1 -4
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
127 L -1 -2 -3 -4 -1 -2 -3 -4 -3 2 4 -2 2 0 -3 -2 -1 -2 -1 1 -4 -3 -1 -4
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
128 K -1 2 0 -1 -3 1 1 -2 -1 -3 -2 5 -1 -3 -1 0 -1 -3 -2 -2 0 1 -1 -4
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
129 M -1 -1 -2 -3 -1 0 -2 -3 -2 1 2 -1 5 0 -2 -1 -1 -1 -1 1 -3 -1 -1 -4
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
130 F -2 -3 -3 -3 -2 -3 -3 -3 -1 0 0 -3 0 6 -4 -2 -2 1 3 -1 -3 -3 -1 -4
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
131 P -1 -2 -2 -1 -3 -1 -1 -2 -2 -3 -3 -1 -2 -4 7 -1 -1 -4 -3 -2 -2 -1 -2 -4
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
132 S 1 -1 1 0 -1 0 0 0 -1 -2 -2 0 -1 -2 -1 4 1 -3 -2 -2 0 0 0 -4
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
133 T 0 -1 0 -1 -1 -1 -1 -2 -2 -1 -1 -1 -1 -2 -1 1 5 -2 -2 0 -1 -1 0 -4
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
134 W -3 -3 -4 -4 -2 -2 -3 -2 -2 -3 -2 -3 -1 1 -4 -3 -2 11 2 -3 -4 -3 -2 -4
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
135 Y -2 -2 -2 -3 -2 -1 -2 -3 2 -1 -1 -2 -1 3 -3 -2 -2 2 7 -1 -3 -2 -1 -4
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
136 V 0 -3 -3 -3 -1 -2 -2 -3 -3 3 1 -2 1 -1 -2 -2 0 -3 -1 4 -3 -2 -1 -4
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
137 B -2 -1 3 4 -3 0 1 -1 0 -3 -4 0 -3 -3 -2 0 -1 -4 -3 -3 4 1 -1 -4
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
138 Z -1 0 0 1 -3 3 4 -2 0 -3 -3 1 -1 -3 -1 0 -1 -3 -2 -2 1 4 -1 -4
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
139 X 0 -1 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -2 0 0 -2 -1 -1 -1 -1 -1 -4
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
140 * -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 1
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
141 __MATRIX__
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
142
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
143 my %blosum = ();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
144 $matrix =~ /^ +(.+)$/m;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
145 my @aas = split / +/, $1;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
146 foreach my $aa (@aas) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
147 my $tmp = $aa;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
148 $tmp = "\\$aa" if $aa eq '*';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
149 $matrix =~ /^($tmp) +([-+]?\d.*)$/m;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
150 my @scores = split / +/, $2 if defined $2;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
151 my $count = 0;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
152 foreach my $ak (@aas) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
153 $blosum{$aa}->{$aas[$count]} = $scores[$count];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
154 $count++;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
155 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
156 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
157 sub _matrix;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
158 $MATRIX = \%blosum;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
159 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
160
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
161 sub new {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
162 my($class,@args) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
163 my $self = $class->SUPER::new(@args);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
164
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
165 my ($start, $end, $length, $strand, $primary, $source,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
166 $frame, $score, $gff_string,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
167 $allele_ori, $allele_mut, $upstreamseq, $dnstreamseq,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
168 $label, $status, $proof, $re_changes, $region, $region_value,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
169 $region_dist,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
170 $numbering, $mut_number, $ismutation) =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
171 $self->_rearrange([qw(START
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
172 END
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
173 LENGTH
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
174 STRAND
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
175 PRIMARY
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
176 SOURCE
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
177 FRAME
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
178 SCORE
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
179 GFF_STRING
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
180 ALLELE_ORI
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
181 ALLELE_MUT
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
182 UPSTREAMSEQ
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
183 DNSTREAMSEQ
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
184 LABEL
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
185 STATUS
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
186 PROOF
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
187 RE_CHANGES
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
188 REGION
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
189 REGION_VALUE
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
190 REGION_DIST
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
191 NUMBERING
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
192 MUT_NUMBER
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
193 ISMUTATION
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
194 )],@args);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
195
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
196 $self->primary_tag("Variation");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
197
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
198 $self->{ 'alleles' } = [];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
199
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
200 $start && $self->start($start);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
201 $end && $self->end($end);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
202 $length && $self->length($length);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
203 $strand && $self->strand($strand);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
204 $primary && $self->primary_tag($primary);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
205 $source && $self->source_tag($source);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
206 $frame && $self->frame($frame);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
207 $score && $self->score($score);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
208 $gff_string && $self->_from_gff_string($gff_string);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
209
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
210 $allele_ori && $self->allele_ori($allele_ori);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
211 $allele_mut && $self->allele_mut($allele_mut);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
212 $upstreamseq && $self->upstreamseq($upstreamseq);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
213 $dnstreamseq && $self->dnstreamseq($dnstreamseq);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
214
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
215 $label && $self->label($label);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
216 $status && $self->status($status);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
217 $proof && $self->proof($proof);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
218 $region && $self->region($region);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
219 $region_value && $self->region_value($region_value);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
220 $region_dist && $self->region_dist($region_dist);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
221 $numbering && $self->numbering($numbering);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
222 $mut_number && $self->mut_number($mut_number);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
223 $ismutation && $self->isMutation($ismutation);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
224
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
225 return $self; # success - we hope!
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
226 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
227
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
228 =head2 RNAChange
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
229
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
230 Title : RNAChange
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
231 Usage : $mutobj = $self->RNAChange;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
232 : $mutobj = $self->RNAChange($objref);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
233 Function: Returns or sets the link-reference to a mutation/change object.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
234 If there is no link, it will return undef
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
235 Returns : an obj_ref or undef
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
236
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
237 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
238
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
239 sub RNAChange {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
240 my ($self,$value) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
241 if (defined $value) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
242 if( ! $value->isa('Bio::Variation::RNAChange') ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
243 $self->throw("Is not a Bio::Variation::RNAChange object but a [$self]");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
244 return (undef);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
245 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
246 else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
247 $self->{'RNAChange'} = $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
248 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
249 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
250 unless (exists $self->{'RNAChange'}) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
251 return (undef);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
252 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
253 return $self->{'RNAChange'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
254 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
255 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
256
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
257
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
258
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
259 =head2 label
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
260
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
261 Title : label
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
262 Usage : $obj->label();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
263 Function:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
264
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
265 Sets and returns mutation event label(s). If value is not
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
266 set, or no argument is given returns false. Each
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
267 instantiable subclass of L<Bio::Variation::VariantI> needs
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
268 to implement this method. Valid values are listed in
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
269 'Mutation event controlled vocabulary' in
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
270 http://www.ebi.ac.uk/mutations/recommendations/mutevent.html.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
271
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
272 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
273 Returns : string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
274 Args : string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
275
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
276 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
277
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
278
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
279 sub label {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
280 my ($self) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
281 my ($o, $m, $type);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
282 $o = $self->allele_ori->seq if $self->allele_ori and $self->allele_ori->seq;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
283 $m = $self->allele_mut->seq if $self->allele_mut and $self->allele_mut->seq;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
284
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
285 if ($self->start == 1 ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
286 if ($o and substr($o, 0, 1) ne substr($m, 0, 1)) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
287 $type = 'no translation';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
288 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
289 elsif ($o and $m and $o eq $m ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
290 $type = 'silent';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
291 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
292 # more ...
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
293 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
294 elsif ($o and substr($o, 0, 1) eq '*' ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
295 if ($m and substr($o, 0, 1) ne substr($m, 0, 1)) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
296 $type = 'post-elongation';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
297 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
298 elsif ($m and $o eq $m ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
299 $type = 'silent, conservative';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
300 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
301 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
302 elsif ($o and $m and $o eq $m) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
303 $type = 'silent, conservative';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
304 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
305 elsif ($m and $m eq '*') {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
306 $type = 'truncation';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
307 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
308 elsif ($o and $m and $o eq $m) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
309 $type = 'silent, conservative';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
310 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
311 elsif (not $m or
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
312 ($o and $m and length($o) > length($m) and
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
313 substr($m, -1, 1) ne '*')) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
314 $type = 'deletion';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
315 if ($o and $m and $o !~ $m and $o !~ $m) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
316 $type .= ', complex';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
317 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
318 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
319 elsif (not $o or
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
320 ($o and $m and length($o) < length($m) and
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
321 substr($m, -1, 1) ne '*' ) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
322 $type = 'insertion';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
323 if ($o and $m and $o !~ $m and $o !~ $m) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
324 $type .= ', complex';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
325 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
326 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
327 elsif ($o and $m and $o ne $m and
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
328 length $o == 1 and length $m == 1 ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
329 $type = 'substitution';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
330 my $value = $self->similarity_score;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
331 if (defined $value) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
332 my $cons = ($value < 0) ? 'nonconservative' : 'conservative';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
333 $type .= ", ". $cons;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
334 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
335 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
336 $type = 'out-of-frame translation, truncation';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
337 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
338 $self->{'label'} = $type;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
339 return $self->{'label'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
340 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
341
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
342
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
343 =head2 similarity_score
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
344
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
345 Title : similarity_score
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
346 Usage : $self->similarity_score
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
347 Function: Measure for evolutionary conservativeness
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
348 of single amino substitutions. Uses BLOSUM62.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
349 Negative numbers are noncoservative changes.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
350 Returns : integer, undef if not single amino acid change
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
351
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
352 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
353
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
354 sub similarity_score {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
355 my ($self) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
356 my ($o, $m, $type);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
357 $o = $self->allele_ori->seq if $self->allele_ori and $self->allele_ori->seq;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
358 $m = $self->allele_mut->seq if $self->allele_mut and $self->allele_mut->seq;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
359 return undef unless $o and $m and length $o == 1 and length $m == 1;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
360 return undef unless $o =~ /[ARNDCQEGHILKMFPSTWYVBZX*]/i and
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
361 $m =~ /[ARNDCQEGHILKMFPSTWYVBZX*]/i;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
362 return $MATRIX->{"\U$o"}->{"\U$m"};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
363 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
364
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
365 =head2 trivname
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
366
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
367 Title : trivname
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
368 Usage : $self->trivname
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
369 Function:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
370
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
371 Given a Bio::Variation::AAChange object with linked
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
372 Bio::Variation::RNAChange and Bio::Variation::DNAMutation
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
373 objects, this subroutine creates a string corresponding to
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
374 the 'trivial name' of the mutation. Trivial name is
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
375 specified in Antonorakis & MDI Nomenclature Working Group:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
376 Human Mutation 11:1-3, 1998.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
377 http://www.interscience.wiley.com/jpages/1059-7794/nomenclature.html
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
378
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
379 Returns : string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
380
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
381 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
382
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
383
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
384 sub trivname {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
385 my ($self,$value) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
386 if( defined $value) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
387 $self->{'trivname'} = $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
388 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
389 my ( $aaori, $aamut,$aamutsymbol, $aatermnumber, $aamutterm) =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
390 ('', '', '', '', '');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
391 my $o = $self->allele_ori->seq if $self->allele_ori and $self->allele_ori->seq;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
392 #my $m = $self->allele_mut->seq if $self->allele_mut and $self->allele_mut->seq;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
393
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
394 $aaori = substr ($o, 0, 1) if $o;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
395 $aaori =~ tr/\*/X/;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
396
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
397 my $sep;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
398 if ($self->isMutation) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
399 $sep = '>';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
400 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
401 $sep = '|';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
402 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
403 my $trivname = $aaori. $self->start;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
404 $trivname .= $sep if $sep eq '|';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
405
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
406 my @alleles = $self->each_Allele;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
407 foreach my $allele (@alleles) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
408 my $m = $allele->seq if $allele->seq;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
409
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
410 $self->allele_mut($allele);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
411 #$trivname .= $sep. uc $m if $m;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
412
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
413 $aamutterm = substr ($m, -1, 1) if $m;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
414 if ($self->RNAChange->label =~ /initiation codon/ and
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
415 ( $o and $m and $o ne $m)) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
416 $aamut = 'X';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
417 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
418 elsif (CORE::length($o) == 1 and CORE::length($m) == 1 ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
419 $aamutsymbol = '';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
420 $aamut = $aamutterm;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
421 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
422 elsif ($self->RNAChange->label =~ /deletion/) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
423 $aamutsymbol = 'del';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
424 if ($aamutterm eq '*') {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
425 $aatermnumber = $self->start + length($m) -1;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
426 $aamut = 'X'. $aatermnumber;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
427 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
428 if ($self->RNAChange && $self->RNAChange->label =~ /inframe/){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
429 $aamut = '-'. length($self->RNAChange->allele_ori->seq)/3 ;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
430 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
431 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
432 elsif ($self->RNAChange->label =~ /insertion/) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
433 $aamutsymbol = 'ins';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
434 if (($aamutterm eq '*') && (length($m)-1 != 0)) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
435 $aatermnumber = $self->start + length($m)-1;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
436 $aamut = $aatermnumber. 'X';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
437 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
438 if ($self->RNAChange->label =~ /inframe/){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
439 $aamut = '+'. int length($self->RNAChange->allele_mut->seq)/3 ;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
440 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
441 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
442 elsif ($self->RNAChange->label =~ /complex/ ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
443 my $diff = length($m) - length($o);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
444 if ($diff >= 0 ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
445 $aamutsymbol = 'ins';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
446 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
447 $aamutsymbol = 'del' ;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
448 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
449 if (($aamutterm eq '*') && (length($m)-1 != 0)) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
450 $aatermnumber = $self->start + length($m)-1;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
451 $aamut = $aatermnumber. 'X';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
452 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
453 if ($self->RNAChange->label =~ /inframe/){
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
454
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
455 if ($diff >= 0 ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
456 $aamut = '+'. $diff ;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
457 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
458 $aamut = $diff ;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
459 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
460 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
461 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
462 elsif ($self->label =~ /truncation/) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
463 $aamut = $m;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
464 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
465 $aamutsymbol = '';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
466 $aamut = $aamutterm;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
467 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
468 $aamut =~ tr/\*/X/;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
469 $trivname .= $aamutsymbol. $aamut. $sep;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
470 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
471 chop $trivname;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
472 $self->{'trivname'} = $trivname;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
473 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
474 return $self->{'trivname'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
475 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
476
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
477 1;