diff variant_effect_predictor/Bio/LiveSeq/DNA.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/LiveSeq/DNA.pm	Thu Apr 11 02:01:53 2013 -0400
@@ -0,0 +1,117 @@
+# $Id: DNA.pm,v 1.9 2001/10/22 08:22:51 heikki Exp $
+#
+# bioperl module for Bio::LiveSeq::DNA
+#
+# Cared for by Joseph Insana <insana@ebi.ac.uk> <jinsana@gmx.net>
+#
+# Copyright Joseph Insana
+#
+# You may distribute this module under the same terms as perl itself
+#
+# POD documentation - main docs before the code
+
+=head1 NAME
+
+Bio::LiveSeq::DNA - DNA object for LiveSeq
+
+=head1 SYNOPSIS
+
+  # documentation needed
+
+=head1 DESCRIPTION
+
+This holds the DNA sequence (or the RNA in the case of cDNA entries)
+and is accessed by exons, genes, transcripts... objects
+
+=head1 AUTHOR - Joseph A.L. Insana
+
+Email:  Insana@ebi.ac.uk, jinsana@gmx.net
+
+Address: 
+
+     EMBL Outstation, European Bioinformatics Institute
+     Wellcome Trust Genome Campus, Hinxton
+     Cambs. CB10 1SD, United Kingdom 
+
+=head1 APPENDIX
+
+The rest of the documentation details each of the object
+methods. Internal methods are usually preceded with a _
+
+=cut
+
+# Let the code begin...
+
+package Bio::LiveSeq::DNA;
+$VERSION=1.4;
+
+# Version history:
+# Mon Mar 20 19:21:22 GMT 2000 v.1.0 begun
+# Tue Mar 21 14:20:30 GMT 2000 v.1.1 new() is now here, not inherited
+# Wed Mar 22 19:43:20 GMT 2000 v.1.2 length override
+# Thu Jun 22 20:02:39 BST 2000 v 1.3 valid() from SeqI now moved here, as override
+# Wed Mar 28 17:01:59 BST 2001 v 1.4 changed croaks into throw
+
+use strict;
+use vars qw($VERSION @ISA);
+use Bio::LiveSeq::SeqI 3.2; # uses SeqI, inherits from it
+@ISA=qw(Bio::LiveSeq::SeqI);
+
+=head2 new
+
+  Title   : new
+  Usage   : $dna = Bio::LiveSeq::DNA->new(-seq => "atcgaccaatggacctca",
+					  -offset => 3 );
+
+  Function: generates a new Bio::LiveSeq::DNA
+  Returns : reference to a new object of class DNA
+  Errorcode -1
+  Args    : a string
+        AND an optional offset to create nucleotide labels (default is 1, i.e.
+            starting the count of labels from "1") -> do not bother using it ->
+            it could be used by alternative loaders !EMBL format
+  NOTE    : strand of DNA is set to 1 by default
+
+=cut
+
+sub new {
+  my ($thing, %args) = @_;
+  my $class = ref($thing) || $thing;
+  my (%empty,$obj);
+
+  if ($args{-seq}) {
+    $obj = $thing->string2chain($args{-seq},$args{-offset}); # inherited from ChainI
+    $obj = bless $obj, $class;
+  } else {
+    $obj=\%empty;
+    $obj = bless $obj, $class;
+    $obj->throw("$class not initialized properly");
+  }
+
+  $obj->{'alphabet'}='dna'; # set alphabet default
+  $obj->{'strand'}=1; # set strand default = 1
+  $obj->{'seq'}=$obj; # set seq field to itself
+
+  return $obj;
+}
+
+# START method
+# it has to be redefined here because default from SeqI accesses field "start"
+sub start {
+  my $self = shift;
+  return $self->{'begin'}; # the chain's start is called begin
+}
+
+# it is overridden to provide faster output
+sub length {
+  my $self=shift;
+  return $self->chain_length();
+}
+
+# it is overridden to provide MUCH faster output
+sub valid {
+  my $self=shift(@_);
+  return $self->label_exists(@_);
+}
+
+1;