AcePerl

 view release on metacpan or  search on metacpan

Ace/Sequence/Homol.pm  view on Meta::CPAN

# Ace::Sequence::Homol is just like Ace::Object, but has start() and end() methods
package Ace::Sequence::Homol;

use vars '@ISA';
@ISA = 'Ace::Object';


# this was a mistake!
# use overload '""' => 'asString';

# *stop = \&end;

sub new_homol {
  my ($pack,$tclass,$tname,$db,$start,$end) = @_;
  return unless my $obj = $db->class->new($tclass,$tname,$db,1);
  @$obj{'start','end'} = ($start,$end);
  return bless $obj,$pack;
}

sub start  {  return $_[0]->{'start'};  }

sub end    {  return $_[0]->{'end'};    }

sub stop   {  return $_[0]->{'end'};    }

# sub _clone {
#     my $self = shift;
#     my $pack = ref($self);
#     return $pack->new($self->db,$self->class,$self->name,$self->start,$self->end);
# }

#sub asString { 
#  my $n = $_[0]->name;
#  "$n/$_[0]->{'start'}-$_[0]->{'end'}";
#}

1;

=head1 NAME

Ace::Sequence::Homol - Temporary Sequence Homology Class

=head1 SYNOPSIS

    # Get all similarity features from an Ace::Sequence
    @homol = $seq->features('Similarity');

    # sort by score
    @sorted = sort { $a->score <=> $b->score } @homol;

    # the last one has the highest score
    $best = $sorted[$#sorted];

    # fetch its associated Ace::Sequence::Homol
    $homol = $best->target;

    # print out the sequence name, DNA, start and end
    print $homol->name,' ',$homol->start,'-',$homol->end,"\n";
    print $homol->asDNA;

=head1 DESCRIPTION

I<Ace::Sequence::Homol> is a subclass of L<Ace::Object> (B<not>
L<Ace::Sequence>) which is specialized for returning information about
a DNA or protein homology.  This is a temporary placeholder for a more
sophisticated homology class which will include support for
alignments.

=head1 OBJECT CREATION

You will not ordinarily create an I<Ace::Sequence::Homol> object
directly.  Instead, objects will be created in response to an info()
or group() method call on a similarity feature in an
I<Ace::Sequence::Feature> object.  If you wish to create an
I<Ace::Sequence::Homol> object directly, please consult the source
code for the I<new()> method.



( run in 1.672 second using v1.01-cache-2.11-cpan-99c4e6809bf )