diff variant_effect_predictor/Bio/Tools/HMMER/Set.pm @ 0:21066c0abaf5 draft

Uploaded
author willmclaren
date Fri, 03 Aug 2012 10:04:48 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/variant_effect_predictor/Bio/Tools/HMMER/Set.pm	Fri Aug 03 10:04:48 2012 -0400
@@ -0,0 +1,254 @@
+# $Id: Set.pm,v 1.13 2002/10/22 07:45:23 lapp Exp $
+#
+# BioPerl module for Bio::Tools::HMMER::Set
+#
+# Cared for by Ewan Birney <birney@sanger.ac.uk>
+#
+# Copyright Ewan Birney
+#
+# You may distribute this module under the same terms as perl itself
+
+# POD documentation - main docs before the code
+
+=head1 NAME
+
+Bio::Tools::HMMER::Set - Set of identical domains from HMMER matches
+
+=head1 SYNOPSIS
+
+    # get a Set object probably from the results object
+    print "Bits score over set ",$set->bits," evalue ",$set->evalue,"\n";
+
+    foreach $domain ( $set->each_Domain ) {
+	print "Domain start ",$domain->start," end ",$domain->end,"\n";
+    }
+
+=head1 DESCRIPTION
+
+Represents a set of HMMER domains hitting one sequence. HMMER reports two
+different scores, a per sequence total score (and evalue) and a per
+domain score and evalue. This object represents a collection of the same
+domain with the sequence bits score and evalue. (these attributes are also
+on the per domain scores, which you can get there).
+
+=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://www.bioperl.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@bioperl.org
+  http://www.bugzilla.bioperl.org/
+
+=head1 AUTHOR - Ewan Birney
+
+Email birney@sanger.ac.uk
+
+=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::Tools::HMMER::Set;
+use vars qw(@ISA);
+use strict;
+
+use Bio::Root::Root;
+use Bio::Tools::HMMER::Domain;
+
+@ISA = qw( Bio::Root::Root );
+
+sub new {
+    my($class,@args) = @_;
+    my $self = $class->SUPER::new(@args);
+    my ($name,$acc,$desc) = $self->_rearrange([qw(NAME ACCESSION DESC)],
+					      @args);
+    $name && $self->name($name);
+    $acc  && $self->accession($acc);
+    $desc && $self->desc($desc);
+
+
+    $self->{'domains'} = [];
+    $self->{'domainnames'} = {};
+    return $self;
+}
+
+=head2 add_Domain
+
+ Title   : add_Domain
+ Usage   : $set->add_Domain($domain)
+ Function: adds the domain to the list
+ Returns : nothing
+ Args    : A Bio::Tools::HMMER::Domain object
+
+=cut
+
+sub add_Domain{
+   my ($self,$domain) = @_;
+
+
+   if( ! defined $domain || ! $domain->isa("Bio::Tools::HMMER::Domain") ) {
+       $self->throw("[$domain] is not a Bio::Tools::HMMER::Domain. aborting");
+   }
+   return if $self->{'domainnames'}->{$domain->get_nse}++;
+   push(@{$self->{'domains'}},$domain);
+
+}
+
+=head2 each_Domain
+
+ Title   : each_Domain
+ Usage   : foreach $domain ( $set->each_Domain() ) 
+ Function: returns an array of domain objects in this set
+ Returns : array
+ Args    : none
+
+
+=cut
+
+sub each_Domain{
+   my ($self,@args) = @_;
+
+   return @{$self->{'domains'}};
+}
+
+=head2 name
+
+ Title   : name
+ Usage   : $obj->name($newval)
+ Function: 
+ Example : 
+ Returns : value of name
+ Args    : newvalue (optional)
+
+
+=cut
+
+sub name{
+   my ($obj,$value) = @_;
+   if( defined $value) {
+      $obj->{'name'} = $value;
+    }
+    return $obj->{'name'};
+
+}
+
+=head2 desc
+
+ Title   : desc
+ Usage   : $obj->desc($newval)
+ Function: 
+ Example : 
+ Returns : value of desc
+ Args    : newvalue (optional)
+
+=cut
+
+sub desc{
+   my ($self,$value) = @_;
+   if( defined $value) {
+      $self->{'desc'} = $value;
+    }
+    return $self->{'desc'};
+
+}
+
+=head2 accession
+
+ Title   : accession
+ Usage   : $obj->accession($newval)
+ Function: 
+ Example : 
+ Returns : value of accession
+ Args    : newvalue (optional)
+
+
+=cut
+
+sub accession{
+   my ($self,$value) = @_;
+   if( defined $value) {
+      $self->{'accession'} = $value;
+    }
+    return $self->{'accession'};
+}
+
+
+=head2 bits
+
+ Title   : bits
+ Usage   : $obj->bits($newval)
+ Function: 
+ Example : 
+ Returns : value of bits
+ Args    : newvalue (optional)
+
+
+=cut
+
+sub bits{
+   my ($obj,$value) = @_;
+
+   if( defined $value) {
+      $obj->{'bits'} = $value;
+    }
+    return $obj->{'bits'};
+
+}
+
+=head2 evalue
+
+ Title   : evalue
+ Usage   : $obj->evalue($newval)
+ Function: 
+ Example : 
+ Returns : value of evalue
+ Args    : newvalue (optional)
+
+
+=cut
+
+sub evalue{
+   my ($obj,$value) = @_;
+   if( defined $value) {
+      $obj->{'evalue'} = $value;
+    }
+    return $obj->{'evalue'};
+
+}
+
+
+sub addHMMUnit {
+    my $self = shift;
+    my $unit = shift;
+
+    $self->warn("Using old addHMMUnit call on Bio::Tools::HMMER::Set. Should replace with add_Domain");
+    return $self->add_Domain($unit);
+}
+
+sub eachHMMUnit {
+    my $self = shift;
+    $self->warn("Using old eachHMMUnit call on Bio::Tools::HMMER::Set. Should replace with each_Domain");
+    return $self->each_Domain();
+}
+
+1;  # says use was ok
+__END__
+