Bio::Tools::HMMER Domain
SummaryIncluded librariesPackage variablesSynopsisDescriptionGeneral documentationMethods
Summary
Bio::Tools::HMMER::Domain - One particular domain hit from HMMER
Package variables
No package variables defined.
Included modules
Bio::SeqFeature::FeaturePair
Bio::SeqFeature::Generic
strict
Inherit
Bio::SeqFeature::FeaturePair
Synopsis
Read the Bio::Tools::HMMER::Results docs
Description
A particular domain score. We reuse the Homol SeqFeature system
here, so this inherits off Homol SeqFeature. As this code
originally came from a separate project, there are some backward
compatibility stuff provided to keep this working with old code.
Don't forget this inherits off Bio::SeqFeature, so all your usual
nice start/end/score stuff is ready for use.
Methods
new
No description
Code
add_alignment_lineDescriptionCode
each_alignment_lineDescriptionCode
get_nseDescriptionCode
start_seq
No description
Code
end_seq
No description
Code
start_hmm
No description
Code
end_hmm
No description
Code
hmmaccDescriptionCode
hmmnameDescriptionCode
bitsDescriptionCode
evalueDescriptionCode
seqbitsDescriptionCode
seq_rangeDescriptionCode
hmm_rangeDescriptionCode
Methods description
add_alignment_linecode    nextTop
 Title   : add_alignment_line
 Usage   : $domain->add_alignment_line($line_from_hmmer_output);
 Function: add an alignment line to this Domain object
 Returns : Nothing
 Args    : scalar

 Adds an alignment line, mainly for storing the HMMER alignments
as flat text which can be reguritated. You're right. This is *not
nice* and not the right way to do it.  C'est la vie.
each_alignment_linecodeprevnextTop
 Title   : each_alignment_line
 Usage   : foreach $line ( $domain->each_alignment_line )
 Function: reguritates the alignment lines as they were fed in.
           only useful realistically for printing.
 Example :
 Returns : 
 Args    : None
get_nsecodeprevnextTop
 Title   : get_nse
 Usage   : $domain->get_nse()
 Function: Provides a seqname/start-end format, useful
           for unique keys. nse stands for name-start-end
           It is used alot in Pfam
 Example :
 Returns : A string
 Args    : Optional seperator 1 and seperator 2 (default / and -)
hmmacccodeprevnextTop
 Title   : hmmacc
 Usage   : $domain->hmmacc($newacc)
 Function: set get for HMM accession number. This is placed in the homol
           feature of the HMM
 Example :
 Returns : 
 Args    :
hmmnamecodeprevnextTop
 Title   : hmmname
 Usage   : $domain->hmmname($newname)
 Function: set get for HMM accession number. This is placed in the homol
           feature of the HMM
 Example :
 Returns : 
 Args    :
bitscodeprevnextTop
 Title   : bits
 Usage   :
 Function: backward compatibility. Same as score
 Example :
 Returns : 
 Args    :
evaluecodeprevnextTop
 Title   : evalue
 Usage   :
 Function: $domain->evalue($value);
 Example :
 Returns : 
 Args    :
seqbitscodeprevnextTop
 Title   : seqbits
 Usage   :
 Function: $domain->seqbits($value);
 Example :
 Returns : 
 Args    :
seq_rangecodeprevnextTop
 Title   : seq_range
 Usage   : 
 Function: Throws an exception to catch scripts which need to upgrade
 Example :
 Returns : 
 Args    :
hmm_rangecodeprevnextTop
 Title   : hmm_range
 Usage   :
 Function: Throws an exception to catch scripts which need to upgrade
 Example :
 Returns : 
 Args    :
Methods code
newdescriptionprevnextTop
sub new {
   my($class,@args) = @_;
  my $self = $class->SUPER::new(@args);

  $self->{'alignlines'} = [];

  my $hmmf1 = Bio::SeqFeature::Generic->new(@args);
  my $hmmf2 = Bio::SeqFeature::Generic->new(@args);

  $self->feature1($hmmf1);
  $self->feature2($hmmf2);

  return $self;
}
add_alignment_linedescriptionprevnextTop
sub add_alignment_line {
    my $self = shift;
    my $line = shift;
    push(@{$self->{'alignlines'}},$line);
}
each_alignment_linedescriptionprevnextTop
sub each_alignment_line {
    my $self = shift;
    return @{$self->{'alignlines'}};
}
get_nsedescriptionprevnextTop
sub get_nse {
    my $self = shift;
    my $sep1 = shift;
    my $sep2 = shift;

    if( !defined $sep2 ) {
	$sep2 = "-";
    }
    if( !defined $sep1 ) {
	$sep1 = "/";
    }

    return sprintf("%s%s%d%s%d",$self->seq_id,$sep1,$self->start,$sep2,$self->end);
}
start_seqdescriptionprevnextTop
sub start_seq {
    my $self = shift;
    my $start = shift;
    
    $self->warn("Using old domain->start_seq. Should use domain->start");
    return $self->start($start);
}
end_seqdescriptionprevnextTop
sub end_seq {
    my $self = shift;
    my $end = shift;

    $self->warn("Using old domain->end_seq. Should use domain->end");
    return $self->end($end);
}
start_hmmdescriptionprevnextTop
sub start_hmm {
     my $self = shift; 
    my $start = shift; 
    $self->warn("Using old domain->start_hmm. Should use domain->hstart");
    return $self->hstart($start);
}
end_hmmdescriptionprevnextTop
sub end_hmm {
    my $self = shift;
    my $end = shift;

    $self->warn("Using old domain->end_hmm. Should use domain->hend");
    return $self->hend($end);
}
hmmaccdescriptionprevnextTop
sub hmmacc {
   my ($self,$acc) = @_;
   if( defined $acc ) {
       $self->feature2->add_tag_value('accession',$acc);
   }
   my @vals = $self->feature2->each_tag_value('accession');
   return shift @vals;
}
hmmnamedescriptionprevnextTop
sub hmmname {
   my ($self,$hname) = @_;


   if( defined $hname ) {
       $self->hseqname($hname);
   } 

   return $self->hseqname();
}
bitsdescriptionprevnextTop
sub bits {
   my ($self,$sc) = @_;

   return $self->score($sc);
}
evaluedescriptionprevnextTop
sub evalue {
   my ($self,$value) = @_;

   if( defined $value ) {
       $self->add_tag_value('evalue',$value);
   }
   my @vals = $self->each_tag_value('evalue');
   return shift @vals;
}
seqbitsdescriptionprevnextTop
sub seqbits {
   my ($self,$value) = @_;
   if( defined $value ) {
       $self->add_tag_value('seqbits',$value);
   }
   my @vals = $self->each_tag_value('seqbits');
   return shift @vals;
}
seq_rangedescriptionprevnextTop
sub seq_range {
   my ($self,@args) = @_;

   $self->throw("You have accessed an old method. Please recode your script to the new bioperl HMMER module");
}
hmm_rangedescriptionprevnextTop
sub hmm_range {
   my ($self,@args) = @_;

   $self->throw("You have accessed an old method. Please recode your script to the new bioperl HMMER module");
}
General documentation
CONTACTTop
Ewan Birney, birney@ebi.ac.uk
CONTRIBUTORSTop
Jason Stajich, jason@bioperl.org
APPENDIXTop
The rest of the documentation details each of the object
methods. Internal methods are usually preceded with a _