diff variant_effect_predictor/Bio/EnsEMBL/Funcgen/ArrayChip.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/Funcgen/ArrayChip.pm	Thu Apr 11 02:01:53 2013 -0400
@@ -0,0 +1,205 @@
+#
+# Ensembl module for Bio::EnsEMBL::Funcgen::ArrayChip
+#
+# You may distribute this module under the same terms as Perl itself
+
+=head1 LICENSE
+
+  Copyright (c) 1999-2011 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 <ensembl-dev@ebi.ac.uk>.
+
+  Questions may also be sent to the Ensembl help desk at
+  <helpdesk@ensembl.org>.
+
+
+=head1 NAME
+
+Bio::EnsEMBL::Funcgen::ArrayChip - A simple module to represent the concept/template of 
+a chip/slide within an array,  of which the physical manifestation is an ExperimentalChip.
+
+=head1 SYNOPSIS
+
+ use Bio::EnsEMBL::Funcgen::ArrayChip;
+
+ my $ec = Bio::EnsEMBL::Funcgen::ArrayChip->new(
+                    							 -ARRAY_ID  => $array->dbID(),
+					                    		 -NAME      => $desc,
+                                                 -DESIGN_ID => $design_id,
+							                   );
+
+#add more methods here?
+
+
+=head1 DESCRIPTION
+
+An ArrayChip object represent the concept of an array chip/slide withing a given array/chipset.
+The data for ArrayChips is stored in the array_chip table.
+
+
+=cut
+
+use strict;
+use warnings;
+
+
+package Bio::EnsEMBL::Funcgen::ArrayChip;
+
+
+use Bio::EnsEMBL::Utils::Argument qw( rearrange );
+use Bio::EnsEMBL::Utils::Exception qw( throw warning );
+use Bio::EnsEMBL::Funcgen::Storable;
+
+use vars qw(@ISA);
+@ISA = qw(Bio::EnsEMBL::Funcgen::Storable);
+
+
+=head2 new
+
+  Arg [-ARRAY_ID]  : int - the dbID of the parent array
+  Arg [-ARRAY]     : Bio::EnsEMBL::Funcgen::Array
+  Arg [-DESIGN_ID] : string - the unqiue deisng ID defined by the array vendor
+  Arg [-NAME]      : string - the name of the array chip
+
+
+  Example    : my $array_chip = Bio::EnsEMBL::Funcgen::ArrayChip->new(
+							 -ARRAY_ID  => $array->dbID(),
+							 -NAME      => $desc,
+                                                         -DESIGN_ID => $design_id,
+							 );								       );
+  Description: Creates a new Bio::EnsEMBL::Funcgen::ArrayChip object.
+  Returntype : Bio::EnsEMBL::Funcgen::ArrayChip
+  Exceptions : None ? should throw if mandaotry params not set
+  Caller     : General
+  Status     : Medium Risk
+
+=cut
+
+sub new {
+  my $caller = shift;
+
+  my $class = ref($caller) || $caller;
+  my $self = $class->SUPER::new(@_);
+
+  my ($array_id, $name, $design_id, $array)
+    = rearrange( ['ARRAY_ID', 'NAME', 'DESIGN_ID', 'ARRAY'], @_ );
+
+   
+  #Remove array_id so we can remove checking below?
+
+  throw("Must define a name($name) and design_id($design_id)") if(! $name || ! $design_id);
+
+
+  #Make these mutually exclusive to avoid checking
+  if($array_id && $array){
+	throw('Must provide either -array or -array_id but not both');
+  }
+
+  if(defined $array){
+	
+	if(!(ref($array) && $array->isa('Bio::EnsEMBL::Funcgen::Array'))){
+	  throw('array paramter must be a valid Bio::EnsEMBL::Funcgen::Array');
+	}
+	
+	$self->{'array'} = $array;
+  }
+
+
+
+  $self->array_id($array_id)  if defined $array_id;
+  $self->name($name);
+  $self->design_id($design_id);
+
+  return $self;
+}
+
+
+=head2 array_id
+
+  Arg [1]    : (optional) int - the parent array dbID
+  Example    : my $array_id = $array_chip->array_id();
+  Description: Getter, setter array_id attribute.
+  Returntype : int
+  Exceptions : None
+  Caller     : General
+  Status     : At Risk
+
+=cut
+
+sub array_id {
+  my $self = shift;
+  $self->{'array_id'} = shift if @_;
+  return $self->{'array_id'};
+}
+
+=head2 name
+
+  Arg [1]    : (optional) string - the array chip name
+  Example    : my $ac_name = $array_chip->name();
+  Description: Getter, setter for the name attribute
+  Returntype : string
+  Exceptions : None
+  Caller     : General
+  Status     : Medium Risk
+
+=cut
+
+sub name {
+  my $self = shift;
+  $self->{'name'} = shift if @_;
+  return $self->{'name'};
+}
+
+=head2 design_id
+
+  Arg [1]    : (optional) string - the array_chip unique design id as deinfed by the array vendor
+  Example    : my $design_id = $array_chip->design_id();
+  Description: Getter, setter for the design_id attribute
+  Returntype : string
+  Exceptions : None
+  Caller     : General
+  Status     : At Risk
+
+=cut
+
+sub design_id {
+  my $self = shift;
+  $self->{'design_id'} = shift if @_; 
+  return $self->{'design_id'};
+}
+
+
+=head2 get_Array
+
+  Example    : my $array = $array_chip->get_array();
+  Description: Getter for the array attribute
+  Returntype : Bio::EnsEMBL::Funcgen::Array
+  Exceptions : None
+  Caller     : General
+  Status     : At Risk
+
+=cut
+
+sub get_Array {
+  my $self = shift;
+
+  if(! defined $self->{'array'}){
+    $self->{'array'} = $self->adaptor->db->get_ArrayAdaptor()->fetch_by_dbID($self->array_id());
+  }
+
+  return $self->{'array'};
+}
+
+
+
+1;
+