comparison variant_effect_predictor/Bio/LiveSeq/ChainI.pm @ 0:2bc9b66ada89 draft default tip

Uploaded
author mahtabm
date Thu, 11 Apr 2013 06:29:17 -0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:2bc9b66ada89
1 # $Id: ChainI.pm,v 1.9 2002/10/22 07:38:34 lapp Exp $
2 #
3 # bioperl module for Bio::LiveSeq::ChainI
4 #
5 # Cared for by Joseph Insana <insana@ebi.ac.uk> <jinsana@gmx.net>
6 #
7 # Copyright Joseph Insana
8 #
9 # You may distribute this module under the same terms as perl itself
10 #
11 # POD documentation - main docs before the code
12
13 =head1 NAME
14
15 Bio::LiveSeq::ChainI - Double linked chain data structure
16
17 =head1 SYNOPSIS
18
19 #documentation needed
20
21 =head1 DESCRIPTION
22
23 This class generates and manipulates generic double linked list, chain,
24 that can be used to manage biological sequences.
25
26 The advantages over strings or plain arrays is the ease of tracking
27 changes (mutations) in the elements (sequence). The other side of the
28 coin is that these structures need consideraly more memory, but that
29 is cheap and constantly inceasing resource in computers.
30
31 =head1 FEEDBACK
32
33 =head2 Mailing Lists
34
35 User feedback is an integral part of the evolution of this and other
36 Bioperl modules. Send your comments and suggestions preferably to one
37 of the Bioperl mailing lists. Your participation is much appreciated.
38
39 bioperl-l@bioperl.org - General discussion
40 http://bio.perl.org/MailList.html - About the mailing lists
41
42 =head2 Reporting Bugs
43
44 Report bugs to the Bioperl bug tracking system to help us keep track
45 the bugs and their resolution. Bug reports can be submitted via email
46 or the web:
47
48 bioperl-bugs@bio.perl.org
49 http://bugzilla.bioperl.org/
50
51 =head1 AUTHOR - Joseph A.L. Insana
52
53 Email: Insana@ebi.ac.uk, jinsana@gmx.net
54 Address:
55
56 EMBL Outstation, European Bioinformatics Institute
57 Wellcome Trust Genome Campus, Hinxton
58 Cambs. CB10 1SD, United Kingdom
59
60 =head1 APPENDIX
61
62 The rest of the documentation details each of the object
63 methods. Internal methods are usually preceded with a _
64
65 =cut
66
67 # Let the code begin...
68
69 package Bio::LiveSeq::ChainI;
70 $VERSION=1.9;
71 # Version history:
72 # Thu Mar 16 01:38:25 GMT 2000 v.1.4 1st wraparound of methods complete
73 # tested with chainseq_asobj_test.pl
74 # Thu Mar 16 19:03:56 GMT 2000 v.1.5 decided to stick with same names as Chain
75 # Fri Mar 17 05:08:15 GMT 2000 v.1.6 in sync with Chain 2.4
76 # Fri Mar 17 15:47:23 GMT 2000 v.1.7 added pos_of_label, enforced down_ or up_
77 # Fri Mar 17 20:12:27 GMT 2000 v.1.8 NAMING change: index->label everywhere
78 # Mon Mar 20 19:20:17 GMT 2000 v.1.81 minor addings, Chain 2.52
79 # Mon Mar 20 23:15:09 GMT 2000 v.1.82 in sync with Chain 2.6
80 # Tue Mar 21 01:36:29 GMT 2000 v.1.83 added default strand if new(DNA)
81 # Tue Mar 21 14:19:17 GMT 2000 v.1.9 moved new(DNA) to DNA, added chain2string()
82
83 use Carp qw(croak);
84 use strict; # this will be moved before when strict enforced in Chain.pm
85
86 use Bio::LiveSeq::Chain 2.6; # package where all the subroutines are defined
87
88
89 =head2 new
90
91 Title : new
92 Usage : $chain = Bio::LiveSeq::ChainI->new(-string => "thequickbrownfoxjumpsoverthelazydog",
93 -offset => 3 );
94 OR $chain = Bio::LiveSeq::ChainI->new(-array => \@array,
95 -offset => 3 );
96 Function: generates a new Bio::LiveSeq:ChainI
97 Returns : a new Chain
98 Args : string
99 OR arrayreference
100 AND optional offset to create element labels
101 =cut
102
103 sub new {
104 my ($thing, %args) = @_;
105 my $class = ref($thing) || $thing;
106 my $obj;
107
108 if ($args{-string}) {
109 $obj = $thing->string2chain($args{-string}, $args{-offset});
110 } elsif ($args{-array}) {
111 $obj = $thing->array2chain($args{-array}, $args{-offset});
112 } else {
113 croak "$class not initialized properly";
114 }
115
116 $obj = bless $obj, $class;
117 return $obj;
118 }
119
120 # added as of 1.9
121 sub string2chain {
122 shift @_; # so that it doesn't pass the object reference
123 return Bio::LiveSeq::Chain::string2chain(@_);
124 }
125 sub array2chain {
126 shift @_; # so that it doesn't pass the object reference
127 return Bio::LiveSeq::Chain::array2chain(@_);
128 }
129 #
130 sub chain2string {
131 croak "ambiguous method call. Explicit down_ or up_";
132 }
133 sub down_chain2string {
134 return Bio::LiveSeq::Chain::down_chain2string(@_);
135 }
136 sub up_chain2string {
137 return Bio::LiveSeq::Chain::up_chain2string(@_);
138 }
139 sub chain2string_verbose {
140 croak "ambiguous method call. Explicit down_ or up_";
141 }
142 sub down_chain2string_verbose {
143 return Bio::LiveSeq::Chain::down_chain2string_verbose(@_);
144 }
145 sub up_chain2string_verbose {
146 return Bio::LiveSeq::Chain::up_chain2string_verbose(@_);
147 }
148 sub invert_chain {
149 return Bio::LiveSeq::Chain::invert_chain(@_);
150 }
151 sub mutate_element {
152 croak "Old method name, please update code to: set_value_at_label";
153 }
154
155 # new as of version 2.33 of Chain.pm
156 sub down_labels {
157 return Bio::LiveSeq::Chain::down_labels(@_);
158 }
159 sub up_labels {
160 return Bio::LiveSeq::Chain::up_labels(@_);
161 }
162
163 sub start {
164 return Bio::LiveSeq::Chain::start(@_);
165 }
166 sub end {
167 return Bio::LiveSeq::Chain::end(@_);
168 }
169 sub label_exists {
170 return Bio::LiveSeq::Chain::label_exists(@_);
171 }
172
173 sub get_value_at_pos {
174 croak "ambiguous method call. Explicit down_ or up_";
175 }
176 sub down_get_value_at_pos {
177 return Bio::LiveSeq::Chain::down_get_value_at_pos(@_);
178 }
179 sub up_get_value_at_pos {
180 return Bio::LiveSeq::Chain::up_get_value_at_pos(@_);
181 }
182 sub set_value_at_pos {
183 croak "ambiguous method call. Explicit down_ or up_";
184 }
185 sub down_set_value_at_pos {
186 return Bio::LiveSeq::Chain::down_set_value_at_pos(@_);
187 }
188 sub up_set_value_at_pos {
189 return Bio::LiveSeq::Chain::up_set_value_at_pos(@_);
190 }
191 sub get_value_at_label {
192 return Bio::LiveSeq::Chain::get_value_at_label(@_);
193 }
194 sub set_value_at_label {
195 return Bio::LiveSeq::Chain::set_value_at_label(@_);
196 }
197 sub get_label_at_pos {
198 croak "ambiguous method call. Explicit down_ or up_";
199 }
200 sub up_get_label_at_pos {
201 return Bio::LiveSeq::Chain::up_get_label_at_pos(@_);
202 }
203 sub down_get_label_at_pos {
204 return Bio::LiveSeq::Chain::down_get_label_at_pos(@_);
205 }
206 sub get_pos_of_label {
207 croak "ambiguous method call. Explicit down_ or up_";
208 }
209 sub up_get_pos_of_label {
210 return Bio::LiveSeq::Chain::up_get_pos_of_label(@_);
211 }
212 sub down_get_pos_of_label {
213 return Bio::LiveSeq::Chain::down_get_pos_of_label(@_);
214 }
215 #
216
217 sub preinsert_string {
218 return Bio::LiveSeq::Chain::praeinsert_string(@_);
219 }
220 sub preinsert_array {
221 return Bio::LiveSeq::Chain::praeinsert_array(@_);
222 }
223 sub praeinsert_string {
224 return Bio::LiveSeq::Chain::praeinsert_string(@_);
225 }
226 sub postinsert_string {
227 return Bio::LiveSeq::Chain::postinsert_string(@_);
228 }
229 sub praeinsert_array {
230 return Bio::LiveSeq::Chain::praeinsert_array(@_);
231 }
232 sub postinsert_array {
233 return Bio::LiveSeq::Chain::postinsert_array(@_);
234 }
235 sub down_element{
236 return Bio::LiveSeq::Chain::down_element(@_);
237 }
238 sub up_element {
239 return Bio::LiveSeq::Chain::up_element(@_);
240 }
241 sub is_downstream {
242 return Bio::LiveSeq::Chain::is_downstream(@_);
243 }
244 sub is_upstream {
245 return Bio::LiveSeq::Chain::is_upstream(@_);
246 }
247 sub check_chain {
248 return Bio::LiveSeq::Chain::check_chain(@_);
249 }
250 sub chain_length {
251 return Bio::LiveSeq::Chain::chain_length(@_);
252 }
253 sub splice_chain {
254 return Bio::LiveSeq::Chain::splice_chain(@_);
255 }
256 sub pos_of_element {
257 croak "ambiguous and old method name. use: down_pos_of_label";
258 }
259 sub up_pos_of_element {
260 croak "old method name. use: down_pos_of_label";
261 return Bio::LiveSeq::Chain::up_pos_of_element(@_);
262 }
263 sub down_pos_of_element {
264 croak "old method name. use: up_pos_of_label";
265 return Bio::LiveSeq::Chain::down_pos_of_element(@_);
266 }
267 sub subchain_length {
268 croak "ambiguous method call. Explicit down_ or up_";
269 }
270 sub down_subchain_length {
271 return Bio::LiveSeq::Chain::down_subchain_length(@_);
272 }
273 sub up_subchain_length {
274 return Bio::LiveSeq::Chain::up_subchain_length(@_);
275 }
276
277 # these have to be deleted and changed names to conform to terminology
278 sub elements {
279 return Bio::LiveSeq::Chain::down_elements(@_);
280 }
281 sub up_elements {
282 return Bio::LiveSeq::Chain::up_elements(@_);
283 }
284 sub down_elements {
285 return Bio::LiveSeq::Chain::down_elements(@_);
286 }
287
288 1;