diff variant_effect_predictor/Bio/EnsEMBL/IdMapping/TinyFeature.pm @ 0:21066c0abaf5 draft

Uploaded
author willmclaren
date Fri, 03 Aug 2012 10:04:48 -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/TinyFeature.pm	Fri Aug 03 10:04:48 2012 -0400
@@ -0,0 +1,213 @@
+=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::TinyFeature - lightweight feature object
+
+=head1 SYNOPSIS
+
+This object isn't instantiated. See objects which inherit from it
+(TinyGene, TinyTranscript, etc.) for examples.
+
+=head1 DESCRIPTION
+
+This is the base class for the lightweight feature objects used by the
+stable Id maping application. For performance reasons, these objects
+are instantiated using a new_fast() method. The internal implementation
+is an arrayref (rather than the more common hashref), which optimises
+memory usage.
+
+There are no adaptors to fetch TinyFeatures from the database. You
+rather use the normal feature adaptors and then create the TinyFeatures
+from the heavy objects you get. The memory saving will therefore mainly
+take effect when serialising and reloading these objects.
+
+Also note that TinyFeatures don't have a slice attached to them - all
+location information (where required) is stored on the feature object
+directly.
+
+=head1 METHODS
+
+  new_fast
+  id
+  stable_id
+  version
+  created_date
+  modified_date
+  to_string
+
+=cut
+
+package Bio::EnsEMBL::IdMapping::TinyFeature;
+
+# internal data structure (array indices):
+#
+#  0  dbID
+#  1  stable_id
+#  2  version
+#  3  created_date
+#  4  modified_date
+#
+# other instance variables differ by subclass implementation, so look there.
+
+
+use strict;
+use warnings;
+no warnings 'uninitialized';
+
+use Bio::EnsEMBL::Utils::Exception qw(throw warning);
+
+
+=head2 new_fast
+
+  Arg[1]      : Arrayref $array_ref - the arrayref to bless into the new object 
+  Description : Constructor.
+  Return type : Bio::EnsEMBL::IdMapping::TinyFeature implementing class
+  Exceptions  : none
+  Caller      : Bio::EnsEMBL::IdMapping::Cache
+  Status      : At Risk
+              : under development
+
+=cut
+
+sub new_fast {
+  my $class = shift;
+  my $array_ref = shift;
+  return bless $array_ref, $class;
+}
+
+
+=head2 id
+
+  Arg[1]      : (optional) Int - the feature's internal Id ("dbID")
+  Description : Getter/setter for the feature's internal Id.
+  Return type : Int
+  Exceptions  : none
+  Caller      : Bio::EnsEMBL::IdMapping::Cache
+  Status      : At Risk
+              : under development
+
+=cut
+
+sub id {
+  my $self = shift;
+  $self->[0] = shift if (@_);
+  return $self->[0];
+}
+
+
+=head2 stable_id
+
+  Arg[1]      : (optional) String - the feature's stable Id
+  Description : Getter/setter for the feature's stable Id.
+  Return type : String
+  Exceptions  : none
+  Caller      : Bio::EnsEMBL::IdMapping::Cache
+  Status      : At Risk
+              : under development
+
+=cut
+
+sub stable_id {
+  my $self = shift;
+  $self->[1] = shift if (@_);
+  return $self->[1];
+}
+
+
+=head2 version
+
+  Arg[1]      : (optional) Int - the feature's stable Id version
+  Description : Getter/setter for the feature's stable Id version.
+  Return type : Int
+  Exceptions  : none
+  Caller      : Bio::EnsEMBL::IdMapping::Cache
+  Status      : At Risk
+              : under development
+
+=cut
+
+sub version {
+  my $self = shift;
+  $self->[2] = shift if (@_);
+  return $self->[2];
+}
+
+
+=head2 created_date
+
+  Arg[1]      : (optional) String - the feature's stable Id creation date
+  Description : Getter/setter for the feature's stable Id creation date.
+  Return type : String
+  Exceptions  : none
+  Caller      : Bio::EnsEMBL::IdMapping::Cache
+  Status      : At Risk
+              : under development
+
+=cut
+
+sub created_date {
+  my $self = shift;
+  $self->[3] = shift if (@_);
+  return $self->[3];
+}
+
+
+=head2 modified_date
+
+  Arg[1]      : (optional) String - the feature's stable Id modification date
+  Description : Getter/setter for the feature's stable Id modification date.
+  Return type : String
+  Exceptions  : none
+  Caller      : Bio::EnsEMBL::IdMapping::Cache
+  Status      : At Risk
+              : under development
+
+=cut
+
+sub modified_date {
+  my $self = shift;
+  $self->[4] = shift if (@_);
+  return $self->[4];
+}
+
+
+=head2 to_string
+
+  Example     : print LOG "Created ", $f->to_string, "\n";
+  Description : Prints a string representation of the feature for debug
+                purposes.
+  Return type : String
+  Exceptions  : none
+  Caller      : general
+  Status      : At Risk
+              : under development
+
+=cut
+
+sub to_string {
+  my $self = shift;
+  return $self->id.':'.$self->stable_id.'.'.$self->version;
+}
+
+
+1;
+