diff variant_effect_predictor/Bio/EnsEMBL/IdMapping/TinyTranscript.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/IdMapping/TinyTranscript.pm	Thu Apr 11 02:01:53 2013 -0400
@@ -0,0 +1,299 @@
+=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::IdMapping::TinyTranscript - lightweight transcript object
+
+=head1 SYNOPSIS
+
+  # fetch a transcript from the db and create a lightweight
+  # transcript object from it
+  my $tr = $transcript_adaptor->fetch_by_stable_id('ENST000345437');
+  my $lightweight_tr =
+    Bio::EnsEMBL::IdMapping::TinyTranscript->new_fast( [
+      $tr->dbID,          $tr->stable_id,
+      $tr->version,       $tr->created_date,
+      $tr->modified_date, $tr->start,
+      $tr->end,           $tr->strand,
+      $tr->length,        md5_hex( $tr->spliced_seq ),
+      ( $tr->is_known ? 1 : 0 ),
+    ] );
+
+=head1 DESCRIPTION
+
+This is a lightweight transcript object for the stable Id mapping. See
+the documentation in TinyFeature for general considerations about its
+design.
+
+=head1 METHODS
+
+  start
+  end
+  strand
+  length
+  seq_md5_sum
+  is_known
+  add_Translation
+  translation
+  add_Exon
+  get_all_Exons
+
+=cut
+
+package Bio::EnsEMBL::IdMapping::TinyTranscript;
+
+# internal data structure (array indices):
+#
+#  0-4 see TinyFeature
+#  5  start
+#  6  end
+#  7  strand
+#  8  length
+#  9  seq_md5_sum
+# 10  is_known
+# 11  translation
+# 12  [exons]
+# 13  biotype
+
+
+use strict;
+use warnings;
+no warnings 'uninitialized';
+
+use Bio::EnsEMBL::IdMapping::TinyFeature;
+our @ISA = qw(Bio::EnsEMBL::IdMapping::TinyFeature);
+
+use Bio::EnsEMBL::Utils::Exception qw(throw warning);
+
+
+=head2 start
+
+  Arg[1]      : (optional) Int - the transcript's start coordinate
+  Description : Getter/setter for the transcript's start coordinate.
+  Return type : Int
+  Exceptions  : none
+  Caller      : general
+  Status      : At Risk
+              : under development
+
+=cut
+
+sub start {
+  my $self = shift;
+  $self->[5] = shift if (@_);
+  return $self->[5];
+}
+
+
+=head2 end
+
+  Arg[1]      : (optional) Int - the transcript's end coordinate
+  Description : Getter/setter for the transcript's end coordinate.
+  Return type : Int
+  Exceptions  : none
+  Caller      : general
+  Status      : At Risk
+              : under development
+
+=cut
+
+sub end {
+  my $self = shift;
+  $self->[6] = shift if (@_);
+  return $self->[6];
+}
+
+
+=head2 strand
+
+  Arg[1]      : (optional) Int - the transcript's strand
+  Description : Getter/setter for the transcript's strand.
+  Return type : Int
+  Exceptions  : none
+  Caller      : general
+  Status      : At Risk
+              : under development
+
+=cut
+
+sub strand {
+  my $self = shift;
+  $self->[7] = shift if (@_);
+  return $self->[7];
+}
+
+
+=head2 length
+
+  Arg[1]      : (optional) Int - the transcript's length
+  Description : Getter/setter for the transcript's length. Note that this is
+                *not* the distance between start and end, but rather the sum of
+                the lengths of all exons.
+  Return type : Int
+  Exceptions  : none
+  Caller      : general
+  Status      : At Risk
+              : under development
+
+=cut
+
+sub length {
+  my $self = shift;
+  $self->[8] = shift if (@_);
+  return $self->[8];
+}
+
+
+=head2 seq_md5_sum
+
+  Arg[1]      : (optional) String - the md5 digest of the transcript's sequence
+  Description : Getter/setter for the md5 digest of the transcript's sequence.
+                Note that when used as a setter, you are expected to pass a
+                digest, not the raw sequence (i.e. the digest is not created for
+                you).
+  Return type : String
+  Exceptions  : none
+  Caller      : general
+  Status      : At Risk
+              : under development
+
+=cut
+
+sub seq_md5_sum {
+  my $self = shift;
+  $self->[9] = shift if (@_);
+  return $self->[9];
+}
+
+
+=head2 is_known
+
+  Arg[1]      : (optional) Boolean - the transcript's "known" status
+  Description : Getter/setter for the transcript's "known" status.
+  Return type : Boolean
+  Exceptions  : none
+  Caller      : general
+  Status      : At Risk
+              : under development
+
+=cut
+
+sub is_known {
+  my $self = shift;
+  $self->[10] = shift if (@_);
+  return $self->[10];
+}
+
+
+=head2 add_Translation
+
+  Arg[1]      : Bio::EnsEMBL::IdMapping::TinyTranslation $tl - the translation
+                to add
+  Example     : $tiny_transcript->add_Translation($tiny_translation);
+  Description : Adds a translation to this transcript.
+  Return type : none
+  Exceptions  : thrown on wrong or missing argument
+  Caller      : general
+  Status      : At Risk
+              : under development
+
+=cut
+
+sub add_Translation {
+  my $self = shift;
+  my $tl = shift;
+
+  unless ($tl && $tl->isa('Bio::EnsEMBL::IdMapping::TinyTranslation')) {
+    throw('Need a Bio::EnsEMBL::IdMapping::TinyTranslation.');
+  }
+
+  $self->[11] = $tl;
+}
+
+
+=head2  translation
+
+  Description : Getter for the transcript's translation.
+  Return type : Bio::EnsEMBL::IdMapping::TinyTranslation
+  Exceptions  : none
+  Caller      : general
+  Status      : At Risk
+              : under development
+
+=cut
+
+sub translation {
+  return $_[0]->[11];
+}
+
+
+=head2 add_Exon
+
+  Arg[1]      : Bio::EnsEMBL::IdMapping::TinyExon $exon - the exon to add
+  Example     : $tiny_transcript->add_Exon($tiny_exon);
+  Description : Adds an exon to this transcript.
+  Return type : none
+  Exceptions  : thrown on wrong or missing argument
+  Caller      : general
+  Status      : At Risk
+              : under development
+
+=cut
+
+sub add_Exon {
+  my $self = shift;
+  my $exon = shift;
+
+  unless ($exon && $exon->isa('Bio::EnsEMBL::IdMapping::TinyExon')) {
+    throw('Need a Bio::EnsEMBL::IdMapping::TinyExon.');
+  }
+
+  push @{ $self->[12] }, $exon;
+}
+
+
+=head2 get_all_Exons
+
+  Example     : foreach my $exon (@{ $tiny_transcript->get_all_Exons }) {
+                  # do something with exon
+                }
+  Description : Returns all exons attached to that transcript.
+  Return type : Arrayref of Bio::EnsEMBL::IdMapping::TinyExon objects
+  Exceptions  : none
+  Caller      : general
+  Status      : At Risk
+              : under development
+
+=cut
+
+sub get_all_Exons {
+  return $_[0]->[12] || [];
+}
+
+sub biotype {
+  my $self = shift;
+  $self->[13] = shift if (@_);
+  return $self->[13];
+}
+
+
+1;
+