annotate variant_effect_predictor/Bio/Variation/VariantI.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: VariantI.pm,v 1.12 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::VariantI
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::VariantI - Sequence Change SeqFeature abstract class
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 #get Bio::Variant::VariantI somehow
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
20 print $var->restriction_changes, "\n";
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
21 foreach $allele ($var->each_Allele) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
22 #work on Bio::Variation::Allele objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
23 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
24
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
25 =head1 DESCRIPTION
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
26
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
27 This superclass defines common methods to basic sequence changes. The
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
28 instantiable classes Bio::Variation::DNAMutation,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
29 Bio::Variation::RNAChange and Bio::Variation::AAChange use them.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
30 See L<Bio::Variation::DNAMutation>, L<Bio::Variation::RNAChange>,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
31 and L<Bio::Variation::AAChange> for more information.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
32
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
33 These classes store information, heavy computation to detemine allele
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
34 sequences is done elsewhere.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
35
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
36 The database cross-references are implemented as
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
37 Bio::Annotation::DBLink objects. The methods to access them are
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
38 defined in Bio::DBLinkContainerI. See L<Bio::Annotation::DBLink>
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
39 and L<Bio::DBLinkContainerI> for details.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
40
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
41 Bio::Variation::VariantI redifines and extends
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
42 Bio::SeqFeature::Generic for sequence variations. This class
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
43 describes specific sequence change events. These events are always
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
44 from a specific reference sequence to something different. See
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
45 L<Bio::SeqFeature::Generic> for more information.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
46
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
47 IMPORTANT: The notion of reference sequence permeates all
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
48 Bio::Variation classes. This is especially important to remember when
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
49 dealing with Alleles. In a polymorphic site, there can be a large
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
50 number of alleles. One of then has to be selected to be the reference
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
51 allele (allele_ori). ALL the rest has to be passed to the Variant
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
52 using the method add_Allele, including the mutated allele in a
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
53 canonical mutation. The IO modules and generated attributes depend on
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
54 it. They ignore the allele linked to using allele_mut and circulate
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
55 each Allele returned by each_Allele into allele_mut and calculate
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
56 the changes between that and allele_ori.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
57
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
58
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
59 =head1 FEEDBACK
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
60
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
61 =head2 Mailing Lists
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
62
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
63 User feedback is an integral part of the evolution of this and other
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
64 Bioperl modules. Send your comments and suggestions preferably to the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
65 Bioperl mailing lists Your participation is much appreciated.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
66
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
67 bioperl-l@bioperl.org - General discussion
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
68 http://bio.perl.org/MailList.html - About the mailing lists
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
69
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
70 =head2 Reporting Bugs
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
71
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
72 report bugs to the Bioperl bug tracking system to help us keep track
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
73 the bugs and their resolution. Bug reports can be submitted via
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
74 email or the web:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
75
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
76 bioperl-bugs@bio.perl.org
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
77 http://bugzilla.bioperl.org/
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
78
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
79 =head1 AUTHOR - Heikki Lehvaslaiho
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
80
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
81 Email: heikki@ebi.ac.uk
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
82 Address:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
83
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
84 EMBL Outstation, European Bioinformatics Institute
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
85 Wellcome Trust Genome Campus, Hinxton
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
86 Cambs. CB10 1SD, United Kingdom
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
87
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
88
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
89 =head1 APPENDIX
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
90
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
91 The rest of the documentation details each of the object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
92 methods. Internal methods are usually preceded with a _
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
93
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
94 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
95
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
96
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
97 # Let the code begin...
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
98
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
99
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
100 package Bio::Variation::VariantI;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
101 $VERSION=1.0;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
102 use vars qw(@ISA);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
103 use strict;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
104 use Bio::Root::Root;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
105 use Bio::DBLinkContainerI;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
106 # Object preamble - inheritance
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
107
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
108 use Bio::SeqFeature::Generic;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
109 @ISA = qw(Bio::Root::Root Bio::SeqFeature::Generic Bio::DBLinkContainerI );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
110
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
111 =head2 id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
112
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
113 Title : id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
114 Usage : $obj->id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
115 Function:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
116
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
117 Read only method. Returns the id of the variation object.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
118 The id is the id of the first DBLink object attached to this object.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
119
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
120 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
121 Returns : scalar
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
122 Args : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
123
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
124 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
125
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
126 sub id {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
127 my ($self) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
128 my @ids = $self->each_DBLink;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
129 my $id = $ids[0] if scalar @ids > 0;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
130 return $id->database. "::". $id->primary_id if $id;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
131 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
132
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
133
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
134 =head2 add_Allele
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
135
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
136 Title : add_Allele
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
137 Usage : $self->add_Allele($allele)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
138 Function:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
139
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
140 Adds one Bio::Variation::Allele into the list of alleles.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
141 Note that the method forces the convention that nucleotide
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
142 sequence is in lower case and amino acds are in upper
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
143 case.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
144
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
145 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
146 Returns : 1 when succeeds, 0 for failure.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
147 Args : Allele object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
148
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
149 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
150
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
151
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
152 sub add_Allele {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
153 my ($self,$value) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
154 if (defined $value) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
155 if( ! $value->isa('Bio::Variation::Allele') ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
156 my $com = ref $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
157 $self->throw("Is not a Allele object but a [$com]");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
158 return 0;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
159 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
160 if ( $self->isa('Bio::Variation::AAChange') ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
161 $value->seq( uc $value->seq) if $value->seq;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
162 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
163 $value->seq( lc $value->seq) if $value->seq;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
164 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
165 push(@{$self->{'alleles'}},$value);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
166 $self->allele_mut($value); #????
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
167 return 1;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
168 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
169 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
170 return 0;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
171 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
172 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
173
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
174
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
175 =head2 each_Allele
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
176
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
177 Title : alleles
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
178 Usage : $obj->each_Allele();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
179 Function:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
180
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
181 Returns a list of Bio::Variation::Allele objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
182
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
183 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
184 Returns : list of Alleles
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
185 Args : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
186
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
187 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
188
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
189 sub each_Allele{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
190 my ($self,@args) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
191 return @{$self->{'alleles'}};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
192 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
193
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
194
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
195
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
196 =head2 isMutation
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
197
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
198 Title : isMutation
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
199 Usage : print join('/', $obj->each_Allele) if not $obj->isMutation;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
200 Function:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
201
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
202 Returns or sets the boolean value indicating that the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
203 variant descibed is a canonical mutation with two alleles
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
204 assinged to be the original (wild type) allele and mutated
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
205 allele, respectively. If this value is not set, it is
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
206 assumed that the Variant descibes polymorphisms.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
207
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
208 Returns : a boolean
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
209
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
210 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
211
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
212 sub isMutation {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
213 my ($self,$value) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
214 if (defined $value) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
215 if ($value ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
216 $self->{'isMutation'} = 1;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
217 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
218 $self->{'isMutation'} = 0;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
219 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
220 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
221 return $self->{'isMutation'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
222 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
223
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
224
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
225 =head2 allele_ori
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
226
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
227 Title : allele_ori
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
228 Usage : $obj->allele_ori();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
229 Function:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
230
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
231 Links to and returns the Bio::Variation::Allele object.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
232 If value is not set, returns false. All other Alleles are
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
233 compared to this.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
234
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
235 Amino acid sequences are stored in upper case characters,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
236 others in lower case.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
237
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
238 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
239 Returns : string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
240 Args : string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
241
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
242 See L<Bio::Variation::Allele> for more.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
243
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
244 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
245
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
246 sub allele_ori {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
247 my ($self,$value) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
248 if( defined $value) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
249 if ( ! ref $value || ! $value->isa('Bio::Variation::Allele')) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
250 $self->throw("Value is not Bio::Variation::Allele but [$value]");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
251 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
252 if ( $self->isa('Bio::Variation::AAChange') ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
253 $value->seq( uc $value->seq) if $value->seq;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
254 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
255 $value->seq( lc $value->seq) if $value->seq;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
256 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
257 $self->{'allele_ori'} = $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
258 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
259 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
260 return $self->{'allele_ori'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
261 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
262
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
263
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
264 =head2 allele_mut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
265
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
266 Title : allele_mut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
267 Usage : $obj->allele_mut();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
268 Function:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
269
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
270 Links to and returns the Bio::Variation::Allele
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
271 object. Sets and returns the mutated allele sequence.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
272 If value is not set, returns false.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
273
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
274 Amino acid sequences are stored in upper case characters,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
275 others in lower case.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
276
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
277 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
278 Returns : string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
279 Args : string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
280
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
281 See L<Bio::Variation::Allele> for more.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
282
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
283 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
284
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
285
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
286 sub allele_mut {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
287 my ($self,$value) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
288 if( defined $value) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
289 if ( ! ref $value || ! $value->isa('Bio::Variation::Allele')) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
290 $self->throw("Value is not Bio::Variation::Allele but [$value]");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
291 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
292 if ( $self->isa('Bio::Variation::AAChange') ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
293 $value->seq( uc $value->seq) if $value->seq;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
294 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
295 $value->seq( lc $value->seq) if $value->seq;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
296 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
297 $self->{'allele_mut'} = $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
298 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
299 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
300 return $self->{'allele_mut'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
301 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
302
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
303 =head2 length
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
304
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
305 Title : length
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
306 Usage : $obj->length();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
307 Function:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
308
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
309 Sets and returns the length of the affected original
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
310 allele sequence. If value is not set, returns false == 0.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
311
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
312 Value 0 means that the variant position is before the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
313 start=end sequence position. (Value 1 would denote a point
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
314 mutation). This follows the convension to report an
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
315 insertion (2insT) in equivalent way to a corresponding
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
316 deletion (2delT) (Think about indel polymorpism ATC <=> AC
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
317 where the origianal state is not known ).
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
318
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
319 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
320 Returns : string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
321 Args : string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
322
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
323 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
324
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
325
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
326 sub length {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
327 my ($self,$value) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
328 if ( defined $value) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
329 $self->{'length'} = $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
330 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
331 if ( ! exists $self->{'length'} ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
332 return 0;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
333 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
334 return $self->{'length'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
335 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
336
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
337 =head2 upStreamSeq
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
338
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
339 Title : upStreamSeq
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
340 Usage : $obj->upStreamSeq();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
341 Function:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
342
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
343 Sets and returns upstream flanking sequence string. If
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
344 value is not set, returns false. The sequence should be
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
345 >=25 characters long, if possible.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
346
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
347 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
348 Returns : string or false
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
349 Args : string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
350
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
351 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
352
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
353
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
354 sub upStreamSeq {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
355 my ($self,$value) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
356 if( defined $value) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
357 $self->{'upstreamseq'} = $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
358 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
359 return $self->{'upstreamseq'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
360 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
361
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
362
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
363 =head2 dnStreamSeq
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
364
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
365 Title : dnStreamSeq
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
366 Usage : $obj->dnStreamSeq();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
367 Function:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
368
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
369 Sets and returns dnstream flanking sequence string. If
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
370 value is not set, returns false. The sequence should be
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
371 >=25 characters long, if possible.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
372
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
373 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
374 Returns : string or false
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
375 Args : string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
376
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
377 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
378
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
379
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
380 sub dnStreamSeq {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
381 my ($self,$value) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
382 if( defined $value) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
383 $self->{'dnstreamseq'} = $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
384 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
385 return $self->{'dnstreamseq'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
386
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
387 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
388
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
389
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
390 =head2 label
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
391
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
392 Title : label
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
393 Usage : $obj->label();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
394 Function:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
395
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
396 Sets and returns mutation event label(s). If value is not
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
397 set, or no argument is given returns false. Each
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
398 instantiable class needs to implement this method. Valid
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
399 values are listed in 'Mutation event controlled vocabulary' in
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
400 http://www.ebi.ac.uk/mutations/recommendations/mutevent.html.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
401
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
402 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
403 Returns : string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
404 Args : string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
405
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
406 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
407
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
408
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
409 sub label {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
410 my ($self,$value) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
411 $self->throw("[$self] has not implemeted method 'label'");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
412 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
413
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
414
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
415
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
416 =head2 status
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
417
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
418 Title : status
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
419 Usage : $obj->status()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
420 Function:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
421
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
422 Returns the status of the sequence change object.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
423 Valid values are: 'suspected' and 'proven'
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
424
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
425 Example : $obj->status('proven');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
426 Returns : scalar
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
427 Args : valid string (optional, for setting)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
428
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
429
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
430 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
431
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
432
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
433 sub status {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
434 my ($self,$value) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
435 my %status = (suspected => 1,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
436 proven => 1
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
437 );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
438
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
439 if( defined $value) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
440 $value = lc $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
441 if ($status{$value}) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
442 $self->{'status'} = $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
443 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
444 else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
445 $self->throw("$value is not valid status value!");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
446 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
447 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
448 if( ! exists $self->{'status'} ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
449 return "$self";
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
450 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
451 return $self->{'status'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
452 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
453
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
454
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
455 =head2 proof
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
456
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
457 Title : proof
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
458 Usage : $obj->proof()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
459 Function:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
460
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
461 Returns the proof of the sequence change object.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
462 Valid values are: 'computed' and 'experimental'.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
463
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
464 Example : $obj->proof('computed');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
465 Returns : scalar
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
466 Args : valid string (optional, for setting)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
467
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
468
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
469 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
470
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
471
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
472 sub proof {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
473 my ($self,$value) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
474 my %proof = (computed => 1,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
475 experimental => 1
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
476 );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
477
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
478 if( defined $value) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
479 $value = lc $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
480 if ($proof{$value}) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
481 $self->{'proof'} = $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
482 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
483 $self->throw("$value is not valid proof value!");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
484 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
485 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
486 return $self->{'proof'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
487 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
488
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
489
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
490 =head2 region
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
491
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
492 Title : region
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
493 Usage : $obj->region();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
494 Function:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
495
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
496 Sets and returns the name of the sequence region type or
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
497 protein domain at this location. If value is not set,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
498 returns false.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
499
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
500 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
501 Returns : string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
502 Args : string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
503
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
504 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
505
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
506
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
507 sub region {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
508 my ($self,$value) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
509 if( defined $value) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
510 $self->{'region'} = $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
511 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
512 return $self->{'region'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
513 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
514
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
515
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
516 =head2 region_value
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
517
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
518 Title : region_value
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
519 Usage : $obj->region_value();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
520 Function:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
521
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
522 Sets and returns the name of the sequence region_value or
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
523 protein domain at this location. If value is not set,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
524 returns false.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
525
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
526 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
527 Returns : string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
528 Args : string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
529
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
530 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
531
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
532
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
533 sub region_value {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
534 my ($self,$value) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
535 if( defined $value) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
536 $self->{'region_value'} = $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
537 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
538 return $self->{'region_value'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
539 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
540
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
541 =head2 region_dist
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
542
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
543 Title : region_dist
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
544 Usage : $obj->region_dist();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
545 Function:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
546
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
547 Sets and returns the distance tot the closest region
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
548 (i.e. intro/exon or domain) boundary. If distance is not
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
549 set, returns false.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
550
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
551 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
552 Returns : integer
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
553 Args : integer
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
554
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
555 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
556
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
557
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
558 sub region_dist {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
559 my ($self,$value) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
560 if( defined $value) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
561 if ( not $value =~ /^[+-]?\d+$/ ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
562 $self->throw("[$value] for region_dist has to be an integer\n");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
563 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
564 $self->{'region_dist'} = $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
565 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
566 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
567 return $self->{'region_dist'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
568 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
569
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
570
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
571 =head2 numbering
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
572
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
573 Title : numbering
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
574 Usage : $obj->numbering()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
575 Function:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
576
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
577 Returns the numbering chema used locating sequnce features.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
578 Valid values are: 'entry' and 'coding'
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
579
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
580 Example : $obj->numbering('coding');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
581 Returns : scalar
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
582 Args : valid string (optional, for setting)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
583
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
584
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
585 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
586
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
587
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
588 sub numbering {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
589 my ($self,$value) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
590 my %numbering = (entry => 1,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
591 coding => 1
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
592 );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
593
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
594 if( defined $value) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
595 $value = lc $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
596 if ($numbering{$value}) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
597 $self->{'numbering'} = $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
598 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
599 else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
600 $self->throw("'$value' is not a valid for numbering!");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
601 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
602 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
603 if( ! exists $self->{'numbering'} ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
604 return "$self";
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
605 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
606 return $self->{'numbering'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
607 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
608
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
609 =head2 mut_number
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
610
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
611 Title : mut_number
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
612 Usage : $num = $obj->mut_number;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
613 : $num = $obj->mut_number($number);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
614 Function:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
615
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
616 Returns or sets the number identifying the order in which the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
617 mutation has been issued. Numbers shouldstart from 1.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
618 If the number has never been set, the method will return ''
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
619
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
620 If you want the output from IO modules look nice and, for
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
621 multivariant/allele variations, make sense you better set
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
622 this attribute.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
623
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
624 Returns : an integer
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
625
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
626 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
627
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
628
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
629 sub mut_number {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
630 my ($self,$value) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
631 if (defined $value) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
632 $self->{'mut_number'} = $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
633 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
634 unless (exists $self->{'mut_number'}) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
635 return ('');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
636 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
637 return $self->{'mut_number'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
638 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
639 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
640
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
641
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
642 =head2 SeqDiff
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
643
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
644 Title : SeqDiff
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
645 Usage : $mutobj = $obj->SeqDiff;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
646 : $mutobj = $obj->SeqDiff($objref);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
647 Function:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
648
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
649 Returns or sets the link-reference to the umbrella
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
650 Bio::Variation::SeqDiff object. If there is no link,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
651 it will return undef
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
652
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
653 Note: Adding a variant into a SeqDiff object will
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
654 automatically set this value.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
655
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
656 Returns : an obj_ref or undef
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
657
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
658 See L<Bio::Variation::SeqDiff> for more information.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
659
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
660 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
661
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
662 sub SeqDiff {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
663 my ($self,$value) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
664 if (defined $value) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
665 if( ! $value->isa('Bio::Variation::SeqDiff') ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
666 $self->throw("Is not a Bio::Variation::SeqDiff object but a [$value]");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
667 return (undef);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
668 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
669 else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
670 $self->{'seqDiff'} = $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
671 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
672 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
673 unless (exists $self->{'seqDiff'}) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
674 return (undef);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
675 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
676 return $self->{'seqDiff'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
677 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
678 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
679
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
680 =head2 add_DBLink
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
681
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
682 Title : add_DBLink
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
683 Usage : $self->add_DBLink($ref)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
684 Function: adds a link object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
685 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
686 Returns :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
687 Args :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
688
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
689
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
690 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
691
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
692
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
693 sub add_DBLink{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
694 my ($self,$com) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
695 if( $com && ! $com->isa('Bio::Annotation::DBLink') ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
696 $self->throw("Is not a link object but a [$com]");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
697 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
698 $com && push(@{$self->{'link'}},$com);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
699 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
700
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
701 =head2 each_DBLink
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
702
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
703 Title : each_DBLink
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
704 Usage : foreach $ref ( $self->each_DBlink() )
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
705 Function: gets an array of DBlink of objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
706 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
707 Returns :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
708 Args :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
709
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
710
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
711 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
712
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
713 sub each_DBLink{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
714 my ($self) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
715
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
716 return @{$self->{'link'}};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
717 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
718
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
719 =head2 restriction_changes
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
720
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
721 Title : restriction_changes
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
722 Usage : $obj->restriction_changes();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
723 Function:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
724
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
725 Returns a string containing a list of restriction
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
726 enzyme changes of form +EcoRI, separated by
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
727 commas. Strings need to be valid restriction enzyme names
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
728 as stored in REBASE. allele_ori and allele_mut need to be assigned.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
729
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
730 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
731 Returns : string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
732 Args : string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
733
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
734 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
735
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
736 sub restriction_changes {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
737 my ($self) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
738
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
739 if (not $self->{'re_changes'}) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
740 my %re = &_enzymes;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
741
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
742 # complain if used on AA data
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
743 if ($self->isa('Bio::Variation::AAChange')) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
744 $self->throw('Restriction enzymes do not bite polypeptides!');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
745 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
746
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
747 #sanity checks
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
748 $self->warn('Upstream sequence is empty!')
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
749 if $self->upStreamSeq eq '';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
750 $self->warn('Downstream sequence is empty!')
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
751 if $self->dnStreamSeq eq '';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
752 # $self->warn('Original allele sequence is empty!')
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
753 # if $self->allele_ori eq '';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
754 # $self->warn('Mutated allele sequence is empty!')
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
755 # if $self->allele_mut eq '';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
756
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
757 #reuse the non empty DNA level list at RNA level if the flanks are identical
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
758 #Hint: Check DNAMutation object first
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
759 if ($self->isa('Bio::Variation::RNAChange') and $self->DNAMutation and
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
760 $self->upStreamSeq eq $self->DNAMutation->upStreamSeq and
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
761 $self->dnStreamSeq eq $self->DNAMutation->dnStreamSeq and
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
762 $self->DNAMutation->restriction_changes ne '' ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
763 $self->{'re_changes'} = $self->DNAMutation->restriction_changes;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
764 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
765
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
766 #maximum length of a type II restriction site in the current REBASE
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
767 my ($le_dn) = 15;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
768 my ($le_up) = $le_dn;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
769
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
770 #reduce the flank lengths if the desired length is not available
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
771 $le_dn = CORE::length ($self->dnStreamSeq) if $le_dn > CORE::length ($self->dnStreamSeq);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
772 $le_up = CORE::length ($self->upStreamSeq) if $le_up > CORE::length ($self->upStreamSeq);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
773
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
774 #Build sequence strings to compare
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
775 my ($oriseq, $mutseq);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
776 $oriseq = $mutseq = substr($self->upStreamSeq, -$le_up, $le_up);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
777 $oriseq .= $self->allele_ori->seq if $self->allele_ori->seq;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
778 $mutseq .= $self->allele_mut->seq if $self->allele_mut->seq;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
779 $oriseq .= substr($self->dnStreamSeq, 0, $le_dn);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
780 $mutseq .= substr($self->dnStreamSeq, 0, $le_dn);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
781
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
782 # ... and their reverse complements
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
783 my $oriseq_rev = _revcompl ($oriseq);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
784 my $mutseq_rev = _revcompl ($mutseq);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
785
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
786 # collect results into a string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
787 my $rec = '';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
788 foreach my $enz (sort keys (%re)) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
789 my $site = $re{$enz};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
790 my @ori = ($oriseq=~ /$site/g);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
791 my @mut = ($mutseq=~ /$site/g);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
792 my @ori_r = ($oriseq_rev =~ /$site/g);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
793 my @mut_r = ($mutseq_rev =~ /$site/g);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
794
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
795 $rec .= '+'. $enz. ", "
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
796 if (scalar @ori < scalar @mut) or (scalar @ori_r < scalar @mut_r);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
797 $rec .= '-'. $enz. ", "
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
798 if (scalar @ori > scalar @mut) or (scalar @ori_r > scalar @mut_r);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
799
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
800 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
801 $rec = substr($rec, 0, CORE::length($rec) - 2) if $rec ne '';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
802 $self->{'re_changes'} = $rec;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
803 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
804 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
805 return $self->{'re_changes'}
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
806 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
807
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
808
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
809 sub _revcompl {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
810 # side effect: lower case letters
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
811 my ($seq) = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
812
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
813 $seq = lc $seq;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
814 $seq =~ tr/acgtrymkswhbvdnx/tgcayrkmswdvbhnx/;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
815 return CORE::reverse $seq;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
816 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
817
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
818
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
819 sub _enzymes {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
820 #REBASE version 005 type2.005
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
821 my %enzymes = (
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
822 'AarI' => 'cacctgc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
823 'AatII' => 'gacgtc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
824 'AccI' => 'gt[ac][gt]ac',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
825 'AceIII' => 'cagctc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
826 'AciI' => 'ccgc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
827 'AclI' => 'aacgtt',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
828 'AcyI' => 'g[ag]cg[ct]c',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
829 'AflII' => 'cttaag',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
830 'AflIII' => 'ac[ag][ct]gt',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
831 'AgeI' => 'accggt',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
832 'AhaIII' => 'tttaaa',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
833 'AloI' => 'gaac[acgt][acgt][acgt][acgt][acgt][acgt]tcc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
834 'AluI' => 'agct',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
835 'AlwNI' => 'cag[acgt][acgt][acgt]ctg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
836 'ApaBI' => 'gca[acgt][acgt][acgt][acgt][acgt]tgc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
837 'ApaI' => 'gggccc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
838 'ApaLI' => 'gtgcac',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
839 'ApoI' => '[ag]aatt[ct]',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
840 'AscI' => 'ggcgcgcc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
841 'AsuI' => 'gg[acgt]cc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
842 'AsuII' => 'ttcgaa',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
843 'AvaI' => 'c[ct]cg[ag]g',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
844 'AvaII' => 'gg[at]cc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
845 'AvaIII' => 'atgcat',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
846 'AvrII' => 'cctagg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
847 'BaeI' => 'ac[acgt][acgt][acgt][acgt]gta[ct]c',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
848 'BalI' => 'tggcca',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
849 'BamHI' => 'ggatcc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
850 'BbvCI' => 'cctcagc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
851 'BbvI' => 'gcagc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
852 'BbvII' => 'gaagac',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
853 'BccI' => 'ccatc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
854 'Bce83I' => 'cttgag',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
855 'BcefI' => 'acggc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
856 'BcgI' => 'cga[acgt][acgt][acgt][acgt][acgt][acgt]tgc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
857 'BciVI' => 'gtatcc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
858 'BclI' => 'tgatca',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
859 'BetI' => '[at]ccgg[at]',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
860 'BfiI' => 'actggg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
861 'BglI' => 'gcc[acgt][acgt][acgt][acgt][acgt]ggc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
862 'BglII' => 'agatct',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
863 'BinI' => 'ggatc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
864 'BmgI' => 'g[gt]gccc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
865 'BplI' => 'gag[acgt][acgt][acgt][acgt][acgt]ctc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
866 'Bpu10I' => 'cct[acgt]agc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
867 'BsaAI' => '[ct]acgt[ag]',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
868 'BsaBI' => 'gat[acgt][acgt][acgt][acgt]atc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
869 'BsaXI' => 'ac[acgt][acgt][acgt][acgt][acgt]ctcc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
870 'BsbI' => 'caacac',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
871 'BscGI' => 'cccgt',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
872 'BseMII' => 'ctcag',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
873 'BsePI' => 'gcgcgc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
874 'BseRI' => 'gaggag',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
875 'BseSI' => 'g[gt]gc[ac]c',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
876 'BsgI' => 'gtgcag',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
877 'BsiI' => 'cacgag',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
878 'BsiYI' => 'cc[acgt][acgt][acgt][acgt][acgt][acgt][acgt]gg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
879 'BsmAI' => 'gtctc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
880 'BsmI' => 'gaatgc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
881 'Bsp1407I' => 'tgtaca',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
882 'Bsp24I' => 'gac[acgt][acgt][acgt][acgt][acgt][acgt]tgg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
883 'BspGI' => 'ctggac',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
884 'BspHI' => 'tcatga',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
885 'BspLU11I' => 'acatgt',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
886 'BspMI' => 'acctgc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
887 'BspMII' => 'tccgga',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
888 'BsrBI' => 'ccgctc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
889 'BsrDI' => 'gcaatg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
890 'BsrI' => 'actgg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
891 'BstEII' => 'ggt[acgt]acc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
892 'BstXI' => 'cca[acgt][acgt][acgt][acgt][acgt][acgt]tgg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
893 'BtrI' => 'cacgtc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
894 'BtsI' => 'gcagtg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
895 'Cac8I' => 'gc[acgt][acgt]gc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
896 'CauII' => 'cc[cg]gg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
897 'Cfr10I' => '[ag]ccgg[ct]',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
898 'CfrI' => '[ct]ggcc[ag]',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
899 'CjeI' => 'cca[acgt][acgt][acgt][acgt][acgt][acgt]gt',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
900 'CjePI' => 'cca[acgt][acgt][acgt][acgt][acgt][acgt][acgt]tc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
901 'ClaI' => 'atcgat',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
902 'CviJI' => '[ag]gc[ct]',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
903 'CviRI' => 'tgca',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
904 'DdeI' => 'ct[acgt]ag',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
905 'DpnI' => 'gatc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
906 'DraII' => '[ag]gg[acgt]cc[ct]',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
907 'DraIII' => 'cac[acgt][acgt][acgt]gtg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
908 'DrdI' => 'gac[acgt][acgt][acgt][acgt][acgt][acgt]gtc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
909 'DrdII' => 'gaacca',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
910 'DsaI' => 'cc[ag][ct]gg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
911 'Eam1105I' => 'gac[acgt][acgt][acgt][acgt][acgt]gtc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
912 'EciI' => 'ggcgga',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
913 'Eco31I' => 'ggtctc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
914 'Eco47III' => 'agcgct',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
915 'Eco57I' => 'ctgaag',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
916 'EcoNI' => 'cct[acgt][acgt][acgt][acgt][acgt]agg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
917 'EcoRI' => 'gaattc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
918 'EcoRII' => 'cc[at]gg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
919 'EcoRV' => 'gatatc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
920 'Esp3I' => 'cgtctc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
921 'EspI' => 'gct[acgt]agc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
922 'FauI' => 'cccgc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
923 'FinI' => 'gggac',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
924 'Fnu4HI' => 'gc[acgt]gc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
925 'FnuDII' => 'cgcg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
926 'FokI' => 'ggatg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
927 'FseI' => 'ggccggcc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
928 'GdiII' => 'cggcc[ag]',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
929 'GsuI' => 'ctggag',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
930 'HaeI' => '[at]ggcc[at]',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
931 'HaeII' => '[ag]gcgc[ct]',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
932 'HaeIII' => 'ggcc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
933 'HaeIV' => 'ga[ct][acgt][acgt][acgt][acgt][acgt][ag]tc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
934 'HgaI' => 'gacgc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
935 'HgiAI' => 'g[at]gc[at]c',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
936 'HgiCI' => 'gg[ct][ag]cc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
937 'HgiEII' => 'acc[acgt][acgt][acgt][acgt][acgt][acgt]ggt',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
938 'HgiJII' => 'g[ag]gc[ct]c',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
939 'HhaI' => 'gcgc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
940 'Hin4I' => 'ga[cgt][acgt][acgt][acgt][acgt][acgt][acg]tc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
941 'HindII' => 'gt[ct][ag]ac',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
942 'HindIII' => 'aagctt',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
943 'HinfI' => 'ga[acgt]tc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
944 'HpaI' => 'gttaac',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
945 'HpaII' => 'ccgg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
946 'HphI' => 'ggtga',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
947 'Hpy178III' => 'tc[acgt][acgt]ga',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
948 'Hpy188I' => 'tc[acgt]ga',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
949 'Hpy99I' => 'cg[at]cg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
950 'KpnI' => 'ggtacc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
951 'Ksp632I' => 'ctcttc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
952 'MaeI' => 'ctag',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
953 'MaeII' => 'acgt',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
954 'MaeIII' => 'gt[acgt]ac',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
955 'MboI' => 'gatc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
956 'MboII' => 'gaaga',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
957 'McrI' => 'cg[ag][ct]cg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
958 'MfeI' => 'caattg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
959 'MjaIV' => 'gt[acgt][acgt]ac',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
960 'MluI' => 'acgcgt',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
961 'MmeI' => 'tcc[ag]ac',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
962 'MnlI' => 'cctc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
963 'MseI' => 'ttaa',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
964 'MslI' => 'ca[ct][acgt][acgt][acgt][acgt][ag]tg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
965 'MstI' => 'tgcgca',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
966 'MwoI' => 'gc[acgt][acgt][acgt][acgt][acgt][acgt][acgt]gc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
967 'NaeI' => 'gccggc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
968 'NarI' => 'ggcgcc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
969 'NcoI' => 'ccatgg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
970 'NdeI' => 'catatg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
971 'NheI' => 'gctagc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
972 'NlaIII' => 'catg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
973 'NlaIV' => 'gg[acgt][acgt]cc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
974 'NotI' => 'gcggccgc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
975 'NruI' => 'tcgcga',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
976 'NspBII' => 'c[ac]gc[gt]g',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
977 'NspI' => '[ag]catg[ct]',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
978 'PacI' => 'ttaattaa',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
979 'Pfl1108I' => 'tcgtag',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
980 'PflMI' => 'cca[acgt][acgt][acgt][acgt][acgt]tgg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
981 'PleI' => 'gagtc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
982 'PmaCI' => 'cacgtg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
983 'PmeI' => 'gtttaaac',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
984 'PpiI' => 'gaac[acgt][acgt][acgt][acgt][acgt]ctc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
985 'PpuMI' => '[ag]gg[at]cc[ct]',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
986 'PshAI' => 'gac[acgt][acgt][acgt][acgt]gtc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
987 'PsiI' => 'ttataa',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
988 'PstI' => 'ctgcag',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
989 'PvuI' => 'cgatcg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
990 'PvuII' => 'cagctg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
991 'RleAI' => 'cccaca',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
992 'RsaI' => 'gtac',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
993 'RsrII' => 'cgg[at]ccg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
994 'SacI' => 'gagctc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
995 'SacII' => 'ccgcgg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
996 'SalI' => 'gtcgac',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
997 'SanDI' => 'ggg[at]ccc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
998 'SapI' => 'gctcttc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
999 'SauI' => 'cct[acgt]agg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1000 'ScaI' => 'agtact',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1001 'ScrFI' => 'cc[acgt]gg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1002 'SduI' => 'g[agt]gc[act]c',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1003 'SecI' => 'cc[acgt][acgt]gg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1004 'SexAI' => 'acc[at]ggt',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1005 'SfaNI' => 'gcatc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1006 'SfeI' => 'ct[ag][ct]ag',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1007 'SfiI' => 'ggcc[acgt][acgt][acgt][acgt][acgt]ggcc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1008 'SgfI' => 'gcgatcgc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1009 'SgrAI' => 'c[ag]ccgg[ct]g',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1010 'SimI' => 'gggtc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1011 'SmaI' => 'cccggg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1012 'SmlI' => 'ct[ct][ag]ag',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1013 'SnaBI' => 'tacgta',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1014 'SnaI' => 'gtatac',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1015 'SpeI' => 'actagt',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1016 'SphI' => 'gcatgc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1017 'SplI' => 'cgtacg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1018 'SrfI' => 'gcccgggc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1019 'Sse232I' => 'cgccggcg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1020 'Sse8387I' => 'cctgcagg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1021 'Sse8647I' => 'agg[at]cct',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1022 'SspI' => 'aatatt',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1023 'Sth132I' => 'cccg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1024 'StuI' => 'aggcct',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1025 'StyI' => 'cc[at][at]gg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1026 'SwaI' => 'atttaaat',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1027 'TaqI' => 'tcga',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1028 'TaqII' => 'gaccga',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1029 'TatI' => '[at]gtac[at]',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1030 'TauI' => 'gc[cg]gc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1031 'TfiI' => 'ga[at]tc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1032 'TseI' => 'gc[at]gc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1033 'Tsp45I' => 'gt[cg]ac',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1034 'Tsp4CI' => 'ac[acgt]gt',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1035 'TspEI' => 'aatt',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1036 'TspRI' => 'ca[cg]tg[acgt][acgt]',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1037 'Tth111I' => 'gac[acgt][acgt][acgt]gtc',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1038 'Tth111II' => 'caa[ag]ca',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1039 'UbaGI' => 'cac[acgt][acgt][acgt][acgt]gtg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1040 'UbaPI' => 'cgaacg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1041 'VspI' => 'attaat',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1042 'XbaI' => 'tctaga',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1043 'XcmI' => 'cca[acgt][acgt][acgt][acgt][acgt][acgt][acgt][acgt][acgt]tgg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1044 'XhoI' => 'ctcgag',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1045 'XhoII' => '[ag]gatc[ct]',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1046 'XmaIII' => 'cggccg',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1047 'XmnI' => 'gaa[acgt][acgt][acgt][acgt]ttc'
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1048 );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1049
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1050 return %enzymes;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1051 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1052
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1053 1;