diff variant_effect_predictor/Bio/LiveSeq/Mutation.pm @ 0:2bc9b66ada89 draft default tip

Uploaded
author mahtabm
date Thu, 11 Apr 2013 06:29:17 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/variant_effect_predictor/Bio/LiveSeq/Mutation.pm	Thu Apr 11 06:29:17 2013 -0400
@@ -0,0 +1,414 @@
+# $Id: Mutation.pm,v 1.6 2002/10/22 07:38:34 lapp Exp $
+#
+# BioPerl module for Bio::LiveSeq::Mutation
+#
+# Cared for by Heikki Lehvaslaiho <heikki@ebi.ac.uk>
+#
+# Copyright Heikki Lehvaslaiho
+#
+# You may distribute this module under the same terms as perl itself
+
+# POD documentation - main docs before the code
+
+=head1 NAME
+
+Bio::LiveSeq::Mutation - Mutation event descriptor class
+
+=head1 SYNOPSIS
+
+  # full descrition of a point mutation
+  $mutation1a = Bio::LiveSeq::Mutation->new ( -seq => 'A',
+					      -seqori => 'T',
+					      -pos  => 100,
+					      -len => 1 # optional, defaults to length(seq)
+					     );
+
+  # minimal information for a point mutation
+  $mutation1b = Bio::LiveSeq::Mutation->new ( -seq => 'A',
+					      -pos  => 100
+					      );
+  # insertion
+  $mutation2 = Bio::LiveSeq::Mutation->new ( -seq => 'ATT',
+					     -pos  => 100,
+					     -len => 0
+					     );
+  # deletion
+  $mutation3 = Bio::LiveSeq::Mutation->new ( -seq => '',  # optional
+					     -seqori => 'TTG',  # optional
+					     -pos  => 100
+					     -len => 3
+					     );
+  # complex
+  $mutation4 = Bio::LiveSeq::Mutation->new ( -seq => 'CC', 
+					     -seqori => 'TTG',  # optional
+					     -pos  => 100
+					     -len => 3
+					     );
+
+
+=head1 DESCRIPTION
+
+This class describes a local mutation event using minimalistic
+description.  It is not necessary to know anything about the original
+sequence. You need to give the changed sequence, the position of the
+mutation in the (unidentified) reference sequence, and the length of
+the affected subsequence in the reference sequence. If the original
+allele sequence is given, the objects applying the mutation into the
+reference sequence (e.g. L<Bio::LiveSeq::Mutator>) might check for its
+validity.
+
+=head1 FEEDBACK
+
+=head2 Mailing Lists
+
+User feedback is an integral part of the evolution of this and other
+Bioperl modules. Send your comments and suggestions preferably to the 
+Bioperl mailing lists  Your participation is much appreciated.
+
+  bioperl-l@bioperl.org                         - General discussion
+  http://bio.perl.org/MailList.html             - About the mailing lists
+
+=head2 Reporting Bugs
+
+report bugs to the Bioperl bug tracking system to help us keep track
+ the bugs and their resolution.  Bug reports can be submitted via
+ email or the web:
+
+  bioperl-bugs@bio.perl.org
+  http://bugzilla.bioperl.org/
+
+=head1 AUTHOR - Heikki Lehvaslaiho
+
+Email:  heikki@ebi.ac.uk
+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::Mutation;
+use vars qw(@ISA);
+use strict;
+
+# Object preamble - inheritance
+
+use Bio::Root::Root;
+
+@ISA = qw( Bio::Root::Root );
+
+sub new {
+    my($class,@args) = @_;
+    my $self;
+    $self = {};
+    bless $self, $class;
+
+    my ($seq, $seqori, $pos, $len, $label) =
+	    $self->_rearrange([qw(SEQ
+				  SEQORI
+				  POS
+				  LEN
+				  )],
+			      @args);
+
+    $seq && $self->seq($seq);
+    $seqori && $self->seqori($seqori);
+    $pos && $self->pos($pos);
+    defined($len) && $self->len($len); # defined() added otherwise won't work for len==0
+    
+    return $self; # success - we hope!
+}
+
+
+=head2 seq
+
+ Title   : seq
+ Usage   : $obj->seq();
+ Function: 
+
+            Sets and returns the mutated sequence. No checking is done
+            to validate the symbols.
+
+ Example : 
+ Returns : string
+ Args    : integer
+
+=cut
+
+
+sub seq {
+    my ($self,$value) = @_;
+    if( defined $value) {
+	$self->{'seq'} = $value;
+    }
+    return $self->{'seq'};
+}
+
+
+=head2 seqori
+
+ Title   : seqori
+ Usage   : $obj->seqori();
+ Function: 
+
+            Sets and returns the original subsequence in the reference
+            sequence. No checking is done to validate the symbols.
+            Optional value.
+
+ Example : 
+ Returns : string
+ Args    : string
+
+=cut
+
+
+sub seqori {
+    my ($self,$value) = @_;
+    if( defined $value) {
+	$self->{'seqori'} = $value;
+    }
+    return $self->{'seqori'};
+}
+
+
+=head2 pos
+
+ Title   : pos
+ Usage   : $obj->pos();
+ Function: 
+
+            Sets and returns the position of the first element in the
+            sequence.
+
+ Example : 
+ Returns : string
+ Args    : integer
+
+=cut
+
+
+sub pos {
+    my ($self,$value) = @_;
+    if( defined $value) {
+	if ( $value !~ /^([+-])?\d+$/ ) {
+	    $self->throw("[$value] for pos has to be an integer\n");
+	} else {
+	    $self->{'pos'} = $value;
+	}
+    }
+    return $self->{'pos'};
+}
+
+=head2 len
+
+ Title   : len
+ Usage   : $obj->len();
+ Function: 
+
+            Sets and returns the len of the affected original allele
+            sequence.  If value is not set, defaults to the lenght of
+            the mutated sequence (seq).
+
+ Example : 
+ Returns : string
+ Args    : string
+
+=cut
+
+sub len {
+   my ($self,$value) = @_;
+   if ( defined $value) {
+       $self->{'len'} = $value;
+  }
+   if ( ! exists $self->{'len'} ) {
+       return length $self->{'seq'};
+   } 
+   return $self->{'len'};
+}
+
+=head2 label
+
+ Title   : label
+ Usage   : $obj->label();
+ Function: 
+
+            Sets and returns the label of the affected original allele
+            location. Label is a stable identifier whereas location
+            can be changed by mutations. Label comes from
+            l<Bio::LiveSeq::Gene>.
+
+ Example : 
+ Returns : string
+ Args    : string
+
+=cut
+
+sub label {
+   my ($self,$value) = @_;
+   if ( defined $value) {
+       $self->{'label'} = $value;
+   }
+   if ( ! exists $self->{'label'} ) {
+       return undef;
+   } 
+   return $self->{'label'};
+}
+
+
+=head2 transpos
+
+ Title   : transpos
+ Usage   : $obj->transpos();
+ Function: 
+
+            Sets and returns the transcript position of the mutation.
+            Set when associated with a reference sequence. Value
+            depends on reference molecule and the co-ordinate system
+            used.
+
+ Example : 
+ Returns : string
+ Args    : integer
+
+=cut
+
+
+sub transpos {
+    my ($self,$value) = @_;
+    if( defined $value) {
+	if ( $value !~ /^([+-])?\d+$/ ) {
+	    $self->throw("[$value] for transpos has to be an integer\n");
+	} else {
+	    $self->{'transpos'} = $value;
+	}
+    }
+    return $self->{'transpos'};
+}
+
+
+=head2 issue
+
+ Title   : issue
+ Usage   : $obj->issue();
+ Function: 
+
+            Sets and returns the position of the mutation in an array
+            of mutations to be issued. Set after the validity of the
+            mutation has been confirmed.
+
+ Example : 
+ Returns : string
+ Args    : integer
+
+=cut
+
+
+sub issue {
+    my ($self,$value) = @_;
+    if( defined $value) {
+	if ( $value !~ /^([+-])?\d+$/ ) {
+	    $self->throw("[$value] for issue has to be an integer\n");
+	} else {
+	    $self->{'issue'} = $value;
+	}
+    }
+    return $self->{'issue'};
+}
+
+
+=head2 prelabel
+
+ Title   : prelabel
+ Usage   : $obj->prelabel();
+ Function: 
+
+            Sets and returns the prelabel of the affected original allele
+            location. Prelabel is a stable identifier whereas location
+            can be changed by mutations. Prelabel comes from
+            l<Bio::LiveSeq::Gene>.
+
+ Example : 
+ Returns : string
+ Args    : string
+
+=cut
+
+sub prelabel {
+   my ($self,$value) = @_;
+   if ( defined $value) {
+       $self->{'prelabel'} = $value;
+   }
+   if ( ! exists $self->{'prelabel'} ) {
+       return undef;
+   } 
+   return $self->{'prelabel'};
+}
+
+
+=head2 postlabel
+
+ Title   : postlabel
+ Usage   : $obj->postlabel();
+ Function: 
+
+            Sets and returns the postlabel of the affected original allele
+            location. Postlabel is a stable identifier whereas location
+            can be changed by mutations. Postlabel comes from
+            l<Bio::LiveSeq::Gene>.
+
+ Example : 
+ Returns : string
+ Args    : string
+
+=cut
+
+sub postlabel {
+   my ($self,$value) = @_;
+   if ( defined $value) {
+       $self->{'postlabel'} = $value;
+   }
+   if ( ! exists $self->{'postlabel'} ) {
+       return undef;
+   } 
+   return $self->{'postlabel'};
+}
+
+
+=head2 lastlabel
+
+ Title   : lastlabel
+ Usage   : $obj->lastlabel();
+ Function: 
+
+            Sets and returns the lastlabel of the affected original allele
+            location. Lastlabel is a stable identifier whereas location
+            can be changed by mutations. Lastlabel comes from
+            l<Bio::LiveSeq::Gene>.
+
+ Example : 
+ Returns : string
+ Args    : string
+
+=cut
+
+sub lastlabel {
+   my ($self,$value) = @_;
+   if ( defined $value) {
+       $self->{'lastlabel'} = $value;
+   }
+   if ( ! exists $self->{'lastlabel'} ) {
+       return undef;
+   } 
+   return $self->{'lastlabel'};
+}
+
+1;