diff variant_effect_predictor/Bio/EnsEMBL/PredictionExon.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/EnsEMBL/PredictionExon.pm	Thu Apr 11 02:01:53 2013 -0400
@@ -0,0 +1,266 @@
+=head1 LICENSE
+
+  Copyright (c) 1999-2012 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
+
+    http://www.ensembl.org/info/about/code_licence.html
+
+=head1 CONTACT
+
+  Please email comments or questions to the public Ensembl
+  developers list at <dev@ensembl.org>.
+
+  Questions may also be sent to the Ensembl help desk at
+  <helpdesk@ensembl.org>.
+
+=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" ) or $_[0]->isa( "Bio::EnsEMBL::LRGSlice" )))) {
+    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;