Mercurial > repos > mahtabm > ensemb_rep_gvl
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/variant_effect_predictor/Bio/LiveSeq/ChainI.pm Thu Apr 11 06:29:17 2013 -0400 @@ -0,0 +1,288 @@ +# $Id: ChainI.pm,v 1.9 2002/10/22 07:38:34 lapp Exp $ +# +# bioperl module for Bio::LiveSeq::ChainI +# +# Cared for by Joseph Insana <insana@ebi.ac.uk> <jinsana@gmx.net> +# +# Copyright Joseph Insana +# +# You may distribute this module under the same terms as perl itself +# +# POD documentation - main docs before the code + +=head1 NAME + +Bio::LiveSeq::ChainI - Double linked chain data structure + +=head1 SYNOPSIS + + #documentation needed + +=head1 DESCRIPTION + +This class generates and manipulates generic double linked list, chain, +that can be used to manage biological sequences. + +The advantages over strings or plain arrays is the ease of tracking +changes (mutations) in the elements (sequence). The other side of the +coin is that these structures need consideraly more memory, but that +is cheap and constantly inceasing resource in computers. + +=head1 FEEDBACK + +=head2 Mailing Lists + +User feedback is an integral part of the evolution of this and other +Bioperl modules. Send your comments and suggestions preferably to one +of the Bioperl mailing lists. Your participation is much appreciated. + + bioperl-l@bioperl.org - General discussion + http://bio.perl.org/MailList.html - About the mailing lists + +=head2 Reporting Bugs + +Report bugs to the Bioperl bug tracking system to help us keep track +the bugs and their resolution. Bug reports can be submitted via email +or the web: + + bioperl-bugs@bio.perl.org + http://bugzilla.bioperl.org/ + +=head1 AUTHOR - Joseph A.L. Insana + +Email: Insana@ebi.ac.uk, jinsana@gmx.net +Address: + + EMBL Outstation, European Bioinformatics Institute + Wellcome Trust Genome Campus, Hinxton + Cambs. CB10 1SD, United Kingdom + +=head1 APPENDIX + +The rest of the documentation details each of the object +methods. Internal methods are usually preceded with a _ + +=cut + +# Let the code begin... + +package Bio::LiveSeq::ChainI; +$VERSION=1.9; +# Version history: +# Thu Mar 16 01:38:25 GMT 2000 v.1.4 1st wraparound of methods complete +# tested with chainseq_asobj_test.pl +# Thu Mar 16 19:03:56 GMT 2000 v.1.5 decided to stick with same names as Chain +# Fri Mar 17 05:08:15 GMT 2000 v.1.6 in sync with Chain 2.4 +# Fri Mar 17 15:47:23 GMT 2000 v.1.7 added pos_of_label, enforced down_ or up_ +# Fri Mar 17 20:12:27 GMT 2000 v.1.8 NAMING change: index->label everywhere +# Mon Mar 20 19:20:17 GMT 2000 v.1.81 minor addings, Chain 2.52 +# Mon Mar 20 23:15:09 GMT 2000 v.1.82 in sync with Chain 2.6 +# Tue Mar 21 01:36:29 GMT 2000 v.1.83 added default strand if new(DNA) +# Tue Mar 21 14:19:17 GMT 2000 v.1.9 moved new(DNA) to DNA, added chain2string() + +use Carp qw(croak); +use strict; # this will be moved before when strict enforced in Chain.pm + +use Bio::LiveSeq::Chain 2.6; # package where all the subroutines are defined + + +=head2 new + + Title : new + Usage : $chain = Bio::LiveSeq::ChainI->new(-string => "thequickbrownfoxjumpsoverthelazydog", + -offset => 3 ); + OR $chain = Bio::LiveSeq::ChainI->new(-array => \@array, + -offset => 3 ); + Function: generates a new Bio::LiveSeq:ChainI + Returns : a new Chain + Args : string + OR arrayreference + AND optional offset to create element labels +=cut + +sub new { + my ($thing, %args) = @_; + my $class = ref($thing) || $thing; + my $obj; + + if ($args{-string}) { + $obj = $thing->string2chain($args{-string}, $args{-offset}); + } elsif ($args{-array}) { + $obj = $thing->array2chain($args{-array}, $args{-offset}); + } else { + croak "$class not initialized properly"; + } + + $obj = bless $obj, $class; + return $obj; +} + +# added as of 1.9 +sub string2chain { + shift @_; # so that it doesn't pass the object reference + return Bio::LiveSeq::Chain::string2chain(@_); +} +sub array2chain { + shift @_; # so that it doesn't pass the object reference + return Bio::LiveSeq::Chain::array2chain(@_); +} +# +sub chain2string { + croak "ambiguous method call. Explicit down_ or up_"; +} +sub down_chain2string { + return Bio::LiveSeq::Chain::down_chain2string(@_); +} +sub up_chain2string { + return Bio::LiveSeq::Chain::up_chain2string(@_); +} +sub chain2string_verbose { + croak "ambiguous method call. Explicit down_ or up_"; +} +sub down_chain2string_verbose { + return Bio::LiveSeq::Chain::down_chain2string_verbose(@_); +} +sub up_chain2string_verbose { + return Bio::LiveSeq::Chain::up_chain2string_verbose(@_); +} +sub invert_chain { + return Bio::LiveSeq::Chain::invert_chain(@_); +} +sub mutate_element { + croak "Old method name, please update code to: set_value_at_label"; +} + +# new as of version 2.33 of Chain.pm +sub down_labels { + return Bio::LiveSeq::Chain::down_labels(@_); +} +sub up_labels { + return Bio::LiveSeq::Chain::up_labels(@_); +} + +sub start { + return Bio::LiveSeq::Chain::start(@_); +} +sub end { + return Bio::LiveSeq::Chain::end(@_); +} +sub label_exists { + return Bio::LiveSeq::Chain::label_exists(@_); +} + +sub get_value_at_pos { + croak "ambiguous method call. Explicit down_ or up_"; +} +sub down_get_value_at_pos { + return Bio::LiveSeq::Chain::down_get_value_at_pos(@_); +} +sub up_get_value_at_pos { + return Bio::LiveSeq::Chain::up_get_value_at_pos(@_); +} +sub set_value_at_pos { + croak "ambiguous method call. Explicit down_ or up_"; +} +sub down_set_value_at_pos { + return Bio::LiveSeq::Chain::down_set_value_at_pos(@_); +} +sub up_set_value_at_pos { + return Bio::LiveSeq::Chain::up_set_value_at_pos(@_); +} +sub get_value_at_label { + return Bio::LiveSeq::Chain::get_value_at_label(@_); +} +sub set_value_at_label { + return Bio::LiveSeq::Chain::set_value_at_label(@_); +} +sub get_label_at_pos { + croak "ambiguous method call. Explicit down_ or up_"; +} +sub up_get_label_at_pos { + return Bio::LiveSeq::Chain::up_get_label_at_pos(@_); +} +sub down_get_label_at_pos { + return Bio::LiveSeq::Chain::down_get_label_at_pos(@_); +} +sub get_pos_of_label { + croak "ambiguous method call. Explicit down_ or up_"; +} +sub up_get_pos_of_label { + return Bio::LiveSeq::Chain::up_get_pos_of_label(@_); +} +sub down_get_pos_of_label { + return Bio::LiveSeq::Chain::down_get_pos_of_label(@_); +} +# + +sub preinsert_string { + return Bio::LiveSeq::Chain::praeinsert_string(@_); +} +sub preinsert_array { + return Bio::LiveSeq::Chain::praeinsert_array(@_); +} +sub praeinsert_string { + return Bio::LiveSeq::Chain::praeinsert_string(@_); +} +sub postinsert_string { + return Bio::LiveSeq::Chain::postinsert_string(@_); +} +sub praeinsert_array { + return Bio::LiveSeq::Chain::praeinsert_array(@_); +} +sub postinsert_array { + return Bio::LiveSeq::Chain::postinsert_array(@_); +} +sub down_element{ + return Bio::LiveSeq::Chain::down_element(@_); +} +sub up_element { + return Bio::LiveSeq::Chain::up_element(@_); +} +sub is_downstream { + return Bio::LiveSeq::Chain::is_downstream(@_); +} +sub is_upstream { + return Bio::LiveSeq::Chain::is_upstream(@_); +} +sub check_chain { + return Bio::LiveSeq::Chain::check_chain(@_); +} +sub chain_length { + return Bio::LiveSeq::Chain::chain_length(@_); +} +sub splice_chain { + return Bio::LiveSeq::Chain::splice_chain(@_); +} +sub pos_of_element { + croak "ambiguous and old method name. use: down_pos_of_label"; +} +sub up_pos_of_element { + croak "old method name. use: down_pos_of_label"; + return Bio::LiveSeq::Chain::up_pos_of_element(@_); +} +sub down_pos_of_element { + croak "old method name. use: up_pos_of_label"; + return Bio::LiveSeq::Chain::down_pos_of_element(@_); +} +sub subchain_length { + croak "ambiguous method call. Explicit down_ or up_"; +} +sub down_subchain_length { + return Bio::LiveSeq::Chain::down_subchain_length(@_); +} +sub up_subchain_length { + return Bio::LiveSeq::Chain::up_subchain_length(@_); +} + +# these have to be deleted and changed names to conform to terminology +sub elements { + return Bio::LiveSeq::Chain::down_elements(@_); +} +sub up_elements { + return Bio::LiveSeq::Chain::up_elements(@_); +} +sub down_elements { + return Bio::LiveSeq::Chain::down_elements(@_); +} + +1;