annotate variant_effect_predictor/Bio/Variation/AAChange.pm @ 1:d6778b5d8382 draft default tip

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