Raw content of Bio::EnsEMBL::PredictionExon
=head1 LICENSE
Copyright (c) 1999-2009 The European Bioinformatics Institute and
Genome Research Limited. All rights reserved.
This software is distributed under a modified Apache license.
For license details, please see
/info/about/code_licence.html
=head1 CONTACT
Please email comments or questions to the public Ensembl
developers list at .
Questions may also be sent to the Ensembl help desk at
.
=cut
=head1 NAME
Bio::EnsEMBL::PredictionExon - A class representing an Exon from an ab
initio prediction method
=head1 SYNOPSIS
$exon = new Bio::EnsEMBL::PredictionExon(
-START => 100,
-END => 200,
-STRAND => 1,
-SLICE => $slice,
-DBID => $dbID,
-P_VALUE => 23.5,
-SCORE => 99
);
# seq() returns a Bio::Seq
my $seq = $exon->seq->seq();
# peptide() only makes sense within transcript context
my $pep = $exon->peptide($transcript)->seq();
# Normal feature operations can be performed:
$exon = $exon->transform('clone');
$exon->move( $new_start, $new_end, $new_strand );
print $exon->slice->seq_region_name();
=head1 DESCRIPTION
This is a class which represents an prediction exon which is part of a
predcition transcript. See Bio::EnsEMBL:PredictionTranscript
=head1 METHODS
=cut
package Bio::EnsEMBL::PredictionExon;
use vars qw(@ISA);
use strict;
use Bio::EnsEMBL::Feature;
use Bio::EnsEMBL::Exon;
use Bio::EnsEMBL::Utils::Exception qw( warning throw deprecate );
use Bio::EnsEMBL::Utils::Argument qw( rearrange );
@ISA = qw(Bio::EnsEMBL::Exon);
=head2 new
Args : see SUPERCLASS Bio::EnsEMBL::Exon
Example : none
Description: create an Exon object
Returntype : Bio::EnsEMBL::PredictionExon
Exceptions : none
Caller : general
Status : Stable
=cut
sub new {
my $class = shift;
$class = ref $class || $class;
my $self = $class->SUPER::new( @_ );
my ( $p_value, $score ) =
rearrange( [ "P_VALUE", "SCORE" ], @_ );
$self->{'p_value'} = $p_value;
$self->{'score'} = $score;
return $self;
}
=head2 score
Arg [1] : string $newval (optional)
The new value to set the score attribute to
Example : $score = $obj->score()
Description: Getter/Setter for the score attribute
Returntype : string
Exceptions : none
Caller : general
Status : Stable
=cut
sub score{
my $self = shift;
$self->{'score'} = shift if(@_);
return $self->{'score'};
}
=head2 p_value
Arg [1] : string $newval (optional)
The new value to set the p_value attribute to
Example : $p_value = $obj->p_value()
Description: Getter/Setter for the p_value attribute
Returntype : string
Exceptions : none
Caller : general
Status : Stable
=cut
sub p_value{
my $self = shift;
$self->{'p_value'} = shift if(@_);
return $self->{'p_value'};
}
=head2 end_phase
Arg [1] : (optional) int $end_phase
Example : $end_phase = $feat->end_phase;
Description: Gets/Sets the end phase of the exon.
end_phase = number of bases from the last incomplete codon of
this exon.
Usually, end_phase = (phase + exon_length)%3
but end_phase could be -1 if the exon is half-coding and its 3
prime end is UTR.
Returntype : int
Exceptions : warning if end_phase is called without an argument and the
value is not set.
Caller : general
Status : Stable
=cut
sub end_phase {
my $self = shift;
if( @_ ) {
throw( "End_phase setting not supported" );
}
return ($self->phase() + $self->length()) % 3;
}
=head2 transform
Arg 1 : String $coordinate_system_name
Arg [2] : String $coordinate_system_version
Description: moves this exon to the given coordinate system. If this exon has
attached supporting evidence, they move as well.
Returntype : Bio::EnsEMBL::Exon
Exceptions : wrong parameters
Caller : general
Status : Stable
=cut
sub transform {
my $self = shift;
# catch for old style transform calls
if( !@_ || ( ref $_[0] && $_[0]->isa( "Bio::EnsEMBL::Slice" ))) {
throw( "transform needs coordinate systems details now," .
"please use transfer" );
}
my $new_exon = Bio::EnsEMBL::Feature::transform( $self, @_ );
return undef unless $new_exon;
#dont want to share the same sequence cache
delete $new_exon->{'_seq_cache'};
return $new_exon;
}
=head2 transfer
Arg [1] : Bio::EnsEMBL::Slice $destination_slice
Example : none
Description: Moves this Exon to given target slice coordinates. If Features
are attached they are moved as well. Returns a new exon.
Returntype : Bio::EnsEMBL::Gene
Exceptions : none
Caller : general
Status : Stable
=cut
sub transfer {
my $self = shift;
my $new_exon = Bio::EnsEMBL::Feature::transfer( $self, @_ );
return undef unless $new_exon;
#dont want to share the same sequence cache
delete $new_exon->{'_seq_cache'};
return $new_exon;
}
=head2 add_supporting_features
Description: For compatibility with Bio::EnsEMBL::Exon
Does nothing.
Returntype : none
Status : Stable
=cut
sub add_supporting_features { }
=head2 get_all_supporting_features
Description: For compatibility with Bio::EnsEMBL::Exon
Does nothing and returns empty list
Returntype : empty list.
Status : Stable
=cut
sub get_all_supporting_features { return []; }
=head2 find_supporting_evidence
Description: For compatibility with Bio::EnsEMBL::Exon
Does nothing.
Returntype : empty list.
Status : Stable
=cut
sub find_supporting_evidence { return []; }
1;