diff variant_effect_predictor/Bio/Search/HSP/WABAHSP.pm @ 0:1f6dce3d34e0

Uploaded
author mahtabm
date Thu, 11 Apr 2013 02:01:53 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/variant_effect_predictor/Bio/Search/HSP/WABAHSP.pm	Thu Apr 11 02:01:53 2013 -0400
@@ -0,0 +1,166 @@
+# $Id: WABAHSP.pm,v 1.5 2002/10/22 07:45:17 lapp Exp $
+#
+# BioPerl module for Bio::Search::HSP::WABAHSP
+#
+# Cared for by Jason Stajich <jason@bioperl.org>
+#
+# Copyright Jason Stajich
+#
+# You may distribute this module under the same terms as perl itself
+
+# POD documentation - main docs before the code
+
+=head1 NAME
+
+Bio::Search::HSP::WABAHSP - HSP object suitable for describing WABA alignments
+
+=head1 SYNOPSIS
+
+# use this object as you would a GenericHSP
+# a few other methods have been added including state
+
+=head1 DESCRIPTION
+
+This object implements a few of the extra methods such as
+hmmstate_string which returns the HMM state representation for the
+WABA alignment.  We also must implement a method to calculate
+homology_string since it is not returned by the algorithm in the
+machine readable format.
+
+=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
+the Bioperl mailing list.  Your participation is much appreciated.
+
+  bioperl-l@bioperl.org              - General discussion
+  http://bioperl.org/MailList.shtml  - About the mailing lists
+
+=head2 Reporting Bugs
+
+Report bugs to the Bioperl bug tracking system to help us keep track
+of the bugs and their resolution. Bug reports can be submitted via
+email or the web:
+
+  bioperl-bugs@bioperl.org
+  http://bugzilla.bioperl.org/
+
+=head1 AUTHOR - Jason Stajich
+
+Email jason@bioperl.org
+
+Describe contact details here
+
+=head1 CONTRIBUTORS
+
+Additional contributors names and emails here
+
+=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::Search::HSP::WABAHSP;
+use vars qw(@ISA);
+use strict;
+use Bio::Root::RootI;
+use Bio::Search::HSP::GenericHSP;
+
+@ISA = qw(Bio::Search::HSP::GenericHSP );
+
+=head2 new
+
+ Title   : new
+ Usage   : my $obj = new Bio::Search::HSP::WABAHSP();
+ Function: Builds a new Bio::Search::HSP::WABAHSP object 
+ Returns : Bio::Search::HSP::WABAHSP
+ Args    : -hmmstate_seq => the string representing the state output from WABA
+
+=cut
+
+sub new {
+  my($class,@args) = @_;
+
+  # gotta do some preprocessing before we send the arguments to the superclass
+  my ($len,$qs,$hs) = Bio::Root::RootI->_rearrange([qw(HSP_LENGTH
+						       QUERY_SEQ 
+						       HIT_SEQ)],@args);  
+  if( $len != length($qs) ) {
+    Bio::Root::RootI->warn("HSP_LENGTH must equal length of query_seq string, using value from QUERY_SEQ\n");
+      $len = length($qs);
+  }
+  my( $homol_seq,$gapct,$identical) = ('',0,0);
+  
+  for(my $i=0;$i<$len;$i++) {
+      my $q = substr($qs,$i,1);
+      my $h = substr($hs,$i,1);
+      if( $q eq '-' || $h eq '-' ) {
+	  $homol_seq .= ' ';
+	  $gapct ++;
+      } elsif( $q eq $h ) { 
+	  $homol_seq .= '|';
+	  $identical++;
+      } else { 
+	  $homol_seq .= ' ';
+      }
+  }
+  my $self = $class->SUPER::new('-conserved' => $identical,
+				'-identical' => $identical,
+				'-gaps'      => $gapct,
+				'-homology_seq' => $homol_seq,
+				@args);
+    
+  my ($hmmst) = $self->_rearrange([qw(HMMSTATE_SEQ)],@args);
+  defined $hmmst && $self->hmmstate_string($hmmst);
+  
+  $self->add_tag_value('Target' , join(" ","Sequence:".$self->hit->seq_id, 
+				       $self->hit->start, $self->hit->end));
+
+  return $self;
+}
+
+=head2 hmmstate_string
+
+ Title   : hmmstate_string
+ Usage   : my $hmmseq = $wabahsp->hmmstate_string();
+ Function: Get/Set the WABA HMM stateseq
+ Returns : string
+ Args    : [optional] string
+
+
+=cut
+
+sub hmmstate_string{
+   my ($self,$val) = @_;
+   if( defined $val ) { 
+       $self->{'_hmmstate_string'} = $val;
+   }
+   return $self->{'_hmmstate_string'};
+}
+
+=head2 homolgy_string
+
+ Title   : homolgy_string
+ Usage   : my $homology_str = $hsp->homology_string();
+ Function: Homology string must be calculated for a WABA HSP so we can do
+           so here and cache the result so it is only done once
+ Returns : string
+ Args    : none
+
+
+=cut
+
+sub homolgy_string{
+   my ($self) = @_;
+   return '';
+}
+
+
+1;