diff variant_effect_predictor/Bio/EnsEMBL/SplicingEvent.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/SplicingEvent.pm	Thu Apr 11 02:01:53 2013 -0400
@@ -0,0 +1,149 @@
+
+=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::SlicingEvent - Object representing an alternative splicing event
+
+=head1 SYNOPSIS
+
+  my $ase =
+    Bio::EnsEMBL::SplicingEvent->new( -START   => 123,
+                                      -END     => 1045,
+                                      -STRAND  => 1,
+                                      -GENE_ID => $gene->dbID,
+                                      -SLICE   => $slice );
+
+  # set some additional attributes
+  $ase->name('ENSG00000000003-CNE-3');
+  $ase->type('CNE');
+
+=head1 DESCRIPTION
+
+A representation of an Alternative Splicing Event within the Ensembl system.
+
+=head1 METHODS
+
+=cut
+
+package Bio::EnsEMBL::SplicingEvent;
+
+use strict;
+
+use POSIX;
+use Bio::EnsEMBL::Feature;
+use Bio::EnsEMBL::Utils::Argument qw(rearrange);
+use Bio::EnsEMBL::Utils::Exception qw(throw warning deprecate);
+
+use vars qw(@ISA);
+@ISA = qw(Bio::EnsEMBL::Feature);
+
+## Add to gene get_all_splicing_events
+
+sub gene_id {
+  my ( $self, $value ) = @_;
+
+  if ( defined($value) ) {
+    $self->{'gene_id'} = $value;
+  }
+
+  return $self->{'gene_id'};
+}
+
+sub name {
+  my ( $self, $value ) = @_;
+
+  if ( defined($value) ) {
+    $self->{'name'} = $value;
+  }
+
+  return $self->{'name'};
+}
+
+sub type {
+  my ( $self, $value ) = @_;
+
+  if ( defined($value) ) {
+    $self->{'type'} = $value;
+  }
+
+  return $self->{'type'};
+}
+
+sub add_Feature {
+  my ( $self, $feature ) = @_;
+
+  if (    !ref($feature)
+       || !$feature->isa("Bio::EnsEMBL::SplicingEventFeature") )
+  {
+    throw("$feature is not a Bio::EnsEMBL::SplicingEventFeature!");
+  }
+
+  $self->{'_feature_array'} ||= [];
+
+  push( @{ $self->{'_feature_array'} }, $feature );
+}
+
+sub get_all_Features {
+  my ($self) = @_;
+
+  if ( !exists( $self->{'_feature_array'} ) ) {
+    if ( defined( $self->adaptor() ) ) {
+      my $fta =
+        $self->adaptor()->db()->get_SplicingEventFeatureAdaptor();
+      my $features = $fta->fetch_all_by_SplicingEvent($self);
+      $self->{'_feature_array'} = $features;
+    }
+  }
+
+  return $self->{'_feature_array'};
+}
+
+sub add_Pair {
+  my ( $self, $feature ) = @_;
+
+  if (    !ref($feature)
+       || !$feature->isa("Bio::EnsEMBL::SplicingEventPair") )
+  {
+    throw("$feature is not a Bio::EnsEMBL::SplicingEventPair!");
+  }
+
+  $self->{'_pair_array'} ||= [];
+
+  push( @{ $self->{'_pair_array'} }, $feature );
+}
+
+sub get_all_Pairs {
+  my ($self) = @_;
+
+  if ( !exists( $self->{'_pair_array'} ) ) {
+    if ( defined( $self->adaptor() ) ) {
+      my $pa =
+        $self->adaptor()->db()->get_SplicingTranscriptPairAdaptor();
+      my $pairs = $pa->fetch_all_by_SplicingEvent($self);
+      $self->{'_pair_array'} = $pairs;
+    }
+  }
+
+  return $self->{'_pair_array'};
+}
+
+1;