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