diff variant_effect_predictor/Bio/EnsEMBL/AssemblyExceptionFeature.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/AssemblyExceptionFeature.pm	Thu Apr 11 02:01:53 2013 -0400
@@ -0,0 +1,186 @@
+=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::AssemblyExceptionFeature - A feature that represents an assembly exception
+
+=head1 SYNOPSIS
+
+  use Bio::EnsEMBL::AssemblyExceptionFeature;
+
+  $feature = Bio::EnsEMBL::AssemblyExceptionFeature->new(
+    -start   => 100,
+    -end     => 220,
+    -type    => 'HAP',
+    -slice   => $slice,
+    -adaptor => $adaptor
+  );
+
+=head1 DESCRIPTION
+
+Certain features, e.g. Haplotypes and PARs, are represented as
+"exceptions" to the normal assembly.  This class represents such
+features.
+
+=head1 METHODS
+
+=cut
+
+package Bio::EnsEMBL::AssemblyExceptionFeature;
+
+use strict;
+
+use vars qw(@ISA);
+
+use Bio::EnsEMBL::Feature;
+use Bio::EnsEMBL::Utils::Argument qw(rearrange);
+use Scalar::Util qw(weaken isweak);
+
+@ISA = qw(Bio::EnsEMBL::Feature);
+
+
+=head2 new
+
+  Arg [TYPE] : The type (e.g. HAP for haplotype, PAR for PAR)
+  Arg [...]  : Named arguments passed to superclass
+  Example    : $feature = Bio::EnsEMBL::AssemblyExceptionFeature->new
+                        (-start           => 1,
+                         -end             => 100,
+                         -slice           => $slice,
+                         -alternate_slice => $alt_slice,
+                         -adaptor         => $adaptor,
+                         -type            => 'HAP')
+  Description: Constructs a new Bio::EnsEMBL::Feature.  Generally subclasses
+               of this method are instantiated, rather than this class itself.
+  Returntype : Bio::EnsEMBL::Feature
+  Exceptions : Thrown on invalid -SLICE arguments
+  Caller     : general, subclass constructors
+  Status     : Stable
+
+=cut
+
+sub new {
+
+  my $caller = shift;
+
+  # allow this to be called as class or object method
+  my $class = ref($caller) || $caller;
+  my $self = $class->SUPER::new(@_);
+
+  my ($type, $alternate_slice) = rearrange(['TYPE', 'ALTERNATE_SLICE'],@_);
+  $self->{'type'} = $type;
+  $self->{'alternate_slice'} = $alternate_slice;
+
+  return $self;
+}
+
+=head2 new_fast
+
+  Arg [1]    : hashref to be blessed
+  Description: Construct a new Bio::EnsEMBL::Feature using the hashref.
+  Exceptions : none
+  Returntype : Bio::EnsEMBL::Feature
+  Caller     : general, subclass constructors
+  Status     : Stable
+
+=cut  
+
+sub new_fast {
+  my $class = shift;
+  my $hashref = shift;
+  my $self = bless $hashref, $class;
+  weaken($self->{adaptor})  if ( ! isweak($self->{adaptor}) );
+  return $self;
+}
+
+
+=head2 type
+
+  Arg [1]    : (optional) string $value
+  Example    : $type = $assembly_exception_feature->type();
+  Description: Getter/Setter for the type associated with this
+               feature.
+  Returntype : string
+  Exceptions : none
+  Caller     : general
+  Status     : Stable
+
+=cut
+
+sub type {
+
+  my $self = shift;
+
+  $self->{'type'} = shift if(@_);
+
+  return $self->{'type'};
+}
+
+
+=head2 alternate_slice
+
+  Arg [1]    : (optional) string $value
+  Example    : $alt_slice = $assembly_exception_feature->alternate_slice();
+  Description: Getter/Setter for the alternate slice associated with this feature.
+               The alternate slice represents the "other side" of the AssemblyExceptionFeature.
+  Returntype : Bio::EnsEMBL::Slice
+  Exceptions : none
+  Caller     : general
+  Status     : Stable
+
+=cut
+
+sub alternate_slice {
+
+  my $self = shift;
+
+  $self->{'alternate_slice'} = shift if(@_);
+
+  return $self->{'alternate_slice'};
+}
+
+
+
+=head2 display_id
+
+  Arg [1]    : none
+  Example    : print $aef->display_id();
+  Description: This method returns a string that is considered to be
+               the 'display' identifier.  For assembly exception features
+               this is the name of the alternate seqregion or '' if the 
+               alternate slice is not defined.
+  Returntype : string
+  Exceptions : none
+  Caller     : web drawing code
+  Status     : Stable
+
+=cut
+
+sub display_id {
+  my $self = shift;
+  my $slice = $self->{'alternate_slice'};
+  return '' if(!$slice);
+  return $slice->seq_region_name();
+}
+
+
+
+1;