diff variant_effect_predictor/Bio/Expression/FeatureGroup.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/Expression/FeatureGroup.pm	Thu Apr 11 02:01:53 2013 -0400
@@ -0,0 +1,287 @@
+# $Id: FeatureGroup.pm,v 1.1.2.2 2003/09/17 09:19:21 allenday Exp $
+# BioPerl module for Bio::Expression::FeatureGroup
+#
+# Copyright Allen Day <allenday@ucla.edu>, Stanley Nelson <snelson@ucla.edu>
+# Human Genetics, UCLA Medical School, University of California, Los Angeles
+
+# POD documentation - main docs before the code
+
+=head1 NAME
+
+Bio::Expression::FeatureGroup - a set of DNA/RNA features.  ISA
+Bio::Expression::FeatureI
+
+=head1 SYNOPSIS
+
+#
+
+=head1 DESCRIPTION
+
+A set of DNA/RNA features.
+
+=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 one
+of the Bioperl mailing lists.  Your participation is much appreciated.
+
+  bioperl-l@bioperl.org            - General discussion
+  http://bioperl.org/MailList.shtml - 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
+
+Allen Day E<lt>allenday@ucla.eduE<gt>
+
+=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::Expression::FeatureGroup;
+
+use strict;
+
+use base qw(Bio::Root::Root Bio::Expression::FeatureI);
+use vars qw($DEBUG);
+
+=head2 new
+
+ Title   : new
+ Usage   : $featuregroup = Bio::Expression::FeatureGroup->new(%args);
+ Function: create a new featuregroup object
+ Returns : a Bio::Expression::FeatureGroup object
+ Args    : an optional hash of parameters to be used in initialization:
+           -id    --  the featuregroup ID
+           -type  --  the featuregroup type
+
+=cut
+
+sub new {
+  my($class,@args) = @_;
+  my $self = bless {}, $class;
+  $self->_initialize(@args);
+  return $self;
+}
+
+=head2 _initialize
+
+ Title   : _initialize
+ Usage   : $featuregroup->_initialize(@args);
+ Function: initialize the featuregroup object
+ Returns : nothing
+ Args    : @args
+
+=cut
+
+sub _initialize{
+  my ($self,@args) = @_;
+  my %param = @args;
+
+  $self->type($param{-type});
+  $self->id($param{-id}    );
+
+  $self->SUPER::_initialize(@args);
+  $DEBUG = 1 if( ! defined $DEBUG && $self->verbose > 0);
+}
+
+=head2 type
+
+ Title   : type
+ Usage   : $featuregroup->type($optional_arg);
+ Function: get/set the type of the featuregroup
+ Comments: this is probably going to be a string like
+           "quality control", "mismatch blah blah", etc.
+ Returns : the featuregroup type
+ Args    : a new value for the featuregroup type
+
+=cut
+
+sub type {
+  my $self = shift;
+  $self->{type} = shift if @_;
+  return $self->{type};
+}
+
+=head2 id
+
+ Title   : id
+ Usage   : $featuregroup->id($optional_arg);
+ Function: get/set the id of the featuregroup
+ Returns : the featuregroup id
+ Args    : a new value for the featuregroup id
+
+=cut
+
+sub id {
+  my $self = shift;
+  $self->{id} = shift if @_;
+  return $self->{id};
+}
+
+
+=head2 standard_deviation
+
+ Title   : standard_deviation
+ Usage   : $featuregroup->standard_deviation($optional_arg);
+ Function: get/set the standard deviation of the featuregroup value
+ Returns : the featuregroup standard deviation
+ Args    : a new value for the featuregroup standard deviation
+ Notes   : this method does no calculation, it merely holds a value
+
+=cut
+
+sub standard_deviation {
+  my $self = shift;
+  $self->{standard_deviation} = shift if @_;
+  return $self->{standard_deviation};
+}
+
+=head2 quantitation
+
+ Title   : quantitation
+ Usage   : $featuregroup->quantitation($optional_arg);
+ Function: get/set the quantitation of the featuregroup
+ Returns : the featuregroup's quantitated value
+ Args    : a new value for the featuregroup's quantitated value
+ Notes   : this method does no calculation, it merely holds a value
+
+=cut
+
+sub quantitation {
+  my $self = shift;
+  $self->{quantitation} = shift if @_;
+  return $self->{quantitation};
+}
+
+=head2 quantitation_units
+
+ Title   : quantitation_units
+ Usage   : $featuregroup->quantitation_units($optional_arg);
+ Function: get/set the quantitation units of the featuregroup
+ Returns : the featuregroup's quantitated value units
+ Args    : a new value for the featuregroup's quantitated value units
+
+=cut
+
+sub quantitation_units {
+  my $self = shift;
+  $self->{quantitation_units} = shift if @_;
+  return $self->{quantitation_units};
+}
+
+=head2 presence
+
+ Title   : presence
+ Usage   : $featuregroup->presence($optional_arg);
+ Function: get/set the presence call of the featuregroup
+ Returns : the featuregroup's presence call
+ Args    : a new value for the featuregroup's presence call
+
+=cut
+
+sub presence {
+  my $self = shift;
+  $self->{presence} = shift if @_;
+  return $self->{presence};
+}
+
+=head2 add_feature
+
+ Title   : add_feature
+ Usage   : $feature_copy = $featuregroup->add_feature($feature);
+ Function: add a feature to the featuregroup
+ Returns : see this_feature()
+ Args    : a Bio::Expression::FeatureI compliant object
+
+=cut
+
+sub add_feature {
+  my($self,@args) = @_;
+  foreach my $feature (@args){
+	$self->throw('Features must be Bio::Expression::FeatureI compliant') unless $feature->isa('Bio::Expression::FeatureI');
+    push @{$self->{features}}, $feature;
+  }
+
+  return $self->{features} ? $self->{features}->[-1] : undef;
+}
+
+=head2 this_feature
+
+ Title   : this_feature
+ Usage   : $feature = $featuregroup->this_feature
+ Function: access the last feature added to the featuregroup
+ Returns : the last feature added to the featuregroup
+ Args    : none
+
+=cut
+
+sub this_feature {
+  my $self = shift;
+  return $self->{features} ? $self->{features}->[-1] : undef;
+}
+
+=head2 each_feature
+
+ Title   : each_feature
+ Usage   : @features = $featuregroup->each_feature
+ Function: returns a list of Bio::Expression::FeatureI compliant
+           objects
+ Returns : a list of objects
+ Args    : none
+
+=cut
+
+sub each_feature {
+  my $self = shift;
+  return @{$self->{features}} if defined($self->{features});
+  return ();
+}
+
+=head2 each_feature_quantitation
+
+ Title   : each_feature_quantitation
+ Usage   : @featurequantitions = $featuregroup->each_feature_quantitation;
+ Function: returns an list of quantitations of the features in the featuregroup
+ Returns : a list of numeric values
+ Args    : none
+
+=cut
+
+sub each_feature_quantitation {
+  my $self = shift;
+  my @values = ();
+  push @values, $_->value foreach $self->each_feature;
+  return @values;
+}
+
+=head2 is_qc
+
+ Title   : is_qc
+ Usage   : $is_quality_control = $featuregroup->is_qc
+ Function: get/set whether or not the featuregroup is used for quality control purposes
+ Returns : a boolean (equivalent)
+ Args    : a new value
+
+=cut
+
+sub is_qc {
+  my $self = shift;
+  $self->{is_qc} = shift if defined @_;
+  return $self->{is_qc};
+}
+
+1;