diff variant_effect_predictor/Bio/EnsEMBL/Variation/StructuralVariationAnnotation.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/Variation/StructuralVariationAnnotation.pm	Thu Apr 11 02:01:53 2013 -0400
@@ -0,0 +1,389 @@
+=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
+
+# Ensembl module for Bio::EnsEMBL::Variation::StructuralVariationAnnotation
+#
+# Copyright (c) 2011 Ensembl
+#
+
+
+=head1 NAME
+
+Bio::EnsEMBL::Variation::StructuralVariationAnnotation - Annotations for a structural variant (sample and phenotype annotations).
+
+=head1 SYNOPSIS
+	
+	$study = $study_adaptor->fetch_by_name('nstd37');
+
+	$sva = Bio::EnsEMBL::Variation::StructuralVariationAnnotation->new
+        (-sample_name => 'ISCA_ID_5554',
+				 -clinical_significance => 'Not tested',
+				 -study => $study);
+	...
+	
+	$sva->structural_variation->variation_name(),":", $sva->sample_name();			
+
+=head1 DESCRIPTION
+
+This is a class representing the annotation of a structural variant
+from the ensembl-variation database. The actual structural variant information is
+represented by an associated Bio::EnsEMBL::Variation::StructuralVariation object. 
+
+=head1 METHODS
+
+=cut
+
+use strict;
+use warnings;
+
+package Bio::EnsEMBL::Variation::StructuralVariationAnnotation;
+
+use Bio::EnsEMBL::Utils::Exception qw(throw warning);
+use Bio::EnsEMBL::Utils::Argument  qw(rearrange);
+use Bio::EnsEMBL::Variation::BaseStructuralVariation;
+use Bio::EnsEMBL::Storable;
+use Bio::EnsEMBL::Utils::Exception qw(deprecate);
+
+use vars qw(@ISA);
+
+@ISA = qw(Bio::EnsEMBL::Storable);
+
+=head2 new
+
+  Arg [-dbID] :
+    int - unique internal identifier for variation_annotation
+	
+	Arg [-ADAPTOR] :
+    Bio::EnsEMBL::Variation::DBSQL::StructuralVariationAnnotationAdaptor
+    Adaptor which provides database connectivity for this StructuralVariationAnnotation object
+	
+	Arg [-_PHENOTYPE_ID] :
+    int _ the internal id of the phenotype	
+  
+	Arg [-PHENOTYPE_DESCRIPTION] :
+    string - description of the phenotype
+  
+	Arg [-SAMPLE_NAME] :
+    string - name of the associated sample
+	
+	Arg [-STRAIN_NAME] :
+    string - name of the associated strain
+  
+	Arg [-CLINICAL_SIGNIFICANCE] :
+    string - clinical annotation for this structural variant.
+	
+	Arg [-STUDY] :
+    object ref - the study object describing where the annotated variation comes from.	
+  
+	Arg [_STRUCTURAL_VARIATION_ID] :
+    int _ the internal id of the structural variant object associated with this
+    identifier. TUsing this identifier the structural variant may be lazy-loaded from 
+		the database on demand.
+	
+  Example    :
+		$study = $study_adaptor->fetch_by_name('nstd37');
+
+	  $sva = Bio::EnsEMBL::Variation::StructuralVariationAnnotation->new
+          (-sample_name => 'ISCA_ID_5554',
+				   -strain_name => 'ISCA',
+				   -clinical_significance => 'Not tested',
+				   -study => $study);
+
+  Description: Constructor. Instantiates a new StructuralVariationAnnotation object.
+  Returntype : Bio::EnsEMBL::Variation::StructuralVariationAnnotation
+  Exceptions : none
+  Caller     : general
+  Status     : At Risk
+
+=cut
+
+sub new {
+  my $caller = shift;
+  my $class = ref($caller) || $caller;
+  my $self = $class->SUPER::new(@_);
+
+  my ($dbID,$adaptor,$phenotype_id,$phenotype_description,$structural_variation_id,$sample_name,
+			$strain_name,$clinical_significance,$study) =
+    rearrange([qw(dbID ADAPTOR _PHENOTYPE_ID PHENOTYPE_DESCRIPTION _STRUCTURAL_VARIATION_ID 
+		              SAMPLE_NAME STRAIN_NAME CLINICAL_SIGNIFICANCE STUDY)],@_); 
+
+  $self->{'dbID'}                     = $dbID;
+  $self->{'adaptor'}                  = $adaptor;
+  $self->{'_phenotype_id'}            = $phenotype_id;
+  $self->{'phenotype_description'}    = $phenotype_description;
+  $self->{'_structural_variation_id'} = $structural_variation_id;
+  $self->{'sample_name'}              = $sample_name;
+  $self->{'strain_name'}              = $strain_name;
+  $self->{'clinical_significance'}    = $clinical_significance;
+  $self->{'study'}                    = $study;
+  return $self;
+}
+
+
+
+sub new_fast {
+  my $class = shift;
+  my $hashref = shift;
+  return bless $hashref, $class;
+}
+
+
+=head2 structural_variation
+
+  Arg [1]    : (optional) Bio::EnsEMBL::Variation::StructuralVariation or 
+	             Bio::EnsEMBL::Variation::SupportingStructuralVariation $structural_variation
+  Example    : $sv = $svf->structural_variation();
+  Description: Getter/Setter for the structural variant associated with this feature.
+               If not set, and this StructuralVariationFeature has an associated adaptor
+               an attempt will be made to lazy-load the structural variation from the
+               database.
+  Returntype : Bio::EnsEMBL::Variation::StructuralVariation or Bio::EnsEMBL::Variation::SupportingStructuralVariation
+  Exceptions : throw on incorrect argument
+  Caller     : general
+  Status     : Stable
+
+=cut
+
+sub structural_variation {
+  my $self = shift;
+
+  if(@_) {
+    if(!ref($_[0]) || (!$_[0]->isa('Bio::EnsEMBL::Variation::StructuralVariation') &&
+		                   !$_[0]->isa('Bio::EnsEMBL::Variation::SupportingStructuralVariation')
+		)) {
+      throw("Bio::EnsEMBL::Variation::StructuralVariation or Bio::EnsEMBL::Variation::SupportingStructuralVariation argument expected");
+    }
+    $self->{'_structural_variation_id'} = shift;
+  }
+  elsif(!defined($self->{'structural_variation'}) && $self->{'adaptor'} &&
+         defined($self->{'_structural_variation_id'})) {
+    # lazy-load from database on demand
+		my $sva = $self->{'adaptor'}->db()->get_StructuralVariationAdaptor();
+		$self->{'structural_variation'} = $sva->fetch_by_dbID($self->{'_structural_variation_id'});
+		if (!defined($self->{'structural_variation'})) {
+			$sva = $self->{'adaptor'}->db()->get_SupportingStructuralVariationAdaptor();
+			$self->{'structural_variation'} = $sva->fetch_by_dbID($self->{'_structural_variation_id'});
+		}
+  }
+
+  return $self->{'structural_variation'};
+}
+
+
+=head2 study
+
+  Arg [1]    : Bio::EnsEMBL::Variation::Study (optional)
+  Example    : $study = $sv->study()
+  Description: Getter/Setter for the study object
+  Returntype : Bio::EnsEMBL::Variation::Study
+  Exceptions : none
+  Caller     : general
+  Status     : At Risk
+
+=cut
+
+sub study {
+  my $self = shift;
+  return $self->{'study'} = shift if(@_);
+  return $self->{'study'};
+}
+
+
+=head2 study_type  
+
+  Arg [1]    : string study_type (optional)               
+               The new value to set the study_type attribute to  
+  Example    : $study_type = $obj->study_type()  
+  Description: Getter/Setter for the study_type attribute.  
+  Returntype : string  
+  Exceptions : none  
+  Caller     : general  
+  Status     : At Risk
+
+=cut
+
+sub study_type{  
+  my $self = shift;  
+  return $self->{'study'}->type = shift if(@_);  
+  return $self->{'study'}->type;
+}
+
+
+=head2 study_name
+
+  Arg [1]    : string $study_name (optional)
+               The new value to set the study_name attribute to
+  Example    : $study = $sva->study_name()
+  Description: Getter/Setter for the study_name attribute
+  Returntype : string
+  Exceptions : none
+  Caller     : general
+  Status     : At Risk
+
+=cut
+
+sub study_name{
+  my $self = shift;
+  return $self->{'study'}->name = shift if(@_);
+  return $self->{'study'}->name;
+}
+
+
+=head2 study_description
+
+  Arg [1]    : string $study_description (optional)
+               The new value to set the study_description attribute to
+  Example    : $study_description = $obj->study_description()
+  Description: Getter/Setter for the study_description attribute
+  Returntype : string
+  Exceptions : none
+  Caller     : general
+  Status     : At Risk
+
+=cut
+
+sub study_description{
+  my $self = shift;
+  return $self->{'study'}->description = shift if(@_);
+  return $self->{'study'}->description;
+}
+
+
+=head2 external_reference
+
+  Arg [1]    : string $newval (optional)
+               The new value to set the external reference attribute to
+  Example    : $external_reference = $obj->external_reference()
+  Description: Getter/Setter for the external reference attribute.  This is the
+               pubmed/id or project name associated with this study.
+  Returntype : string
+  Exceptions : none
+  Caller     : general
+  Status     : At Risk
+
+=cut
+
+sub external_reference{
+  my $self = shift;
+  return $self->{'study'}->external_reference = shift if(@_);
+  return $self->{'study'}->external_reference;
+}
+
+
+=head2 study_url
+
+  Arg [1]    : string $newval (optional)
+               The new value to set the study_url attribute to
+  Example    : $url = $obj->study_url()
+  Description: Getter/Setter for the study_url attribute. This is the link to the website where the data are stored.
+  Returntype : string
+  Exceptions : none
+  Caller     : general
+  Status     : At Risk
+
+=cut
+
+sub study_url{
+  my $self = shift;
+  return $self->{'study'}->url = shift if(@_);
+  return $self->{'study'}->url;
+}
+
+
+=head2 sample_name
+
+  Arg [1]    : string sample_name (optional)
+               The new value to set the sample attribute to
+  Example    : $sample_name = $obj->sample_name()
+  Description: Getter/Setter for the sample attribute.
+  Returntype : string
+  Exceptions : none
+  Caller     : general
+  Status     : At Risk
+
+=cut
+
+sub sample_name {
+  my $self = shift;
+  return $self->{'sample_name'} = shift if(@_);
+  return $self->{'sample_name'};
+}
+
+
+=head2 strain_name
+
+  Arg [1]    : string strain_name (optional)
+               The new value to set the strain attribute to
+  Example    : $strain_name = $obj->strain_name()
+  Description: Getter/Setter for the strain attribute.
+  Returntype : string
+  Exceptions : none
+  Caller     : general
+  Status     : At Risk
+
+=cut
+
+sub strain_name {
+  my $self = shift;
+  return $self->{'strain_name'} = shift if(@_);
+  return $self->{'strain_name'};
+}
+
+
+=head2 phenotype_description
+
+  Arg [1]    : string phenotype_description (optional)
+               The new value to set the phenotype_description attribute to
+  Example    : $phenotype_description = $obj->phenotype_description()
+  Description: Getter/Setter for the phenotype_description attribute.
+  Returntype : string
+  Exceptions : none
+  Caller     : general
+  Status     : At Risk
+
+=cut
+
+sub phenotype_description{
+  my $self = shift;
+  return $self->{'phenotype_description'} = shift if(@_);
+  return $self->{'phenotype_description'};
+}
+
+
+=head2 clinical_significance
+
+  Arg [1]    : string clinical_significance (optional)
+               The new value to set the clinical significance attribute to
+  Example    : $clinical_significance = $obj->clinical_significance()
+  Description: Getter/Setter for the clinical significance attribute.
+  Returntype : string
+  Exceptions : none
+  Caller     : general
+  Status     : At Risk
+
+=cut
+
+sub clinical_significance {
+  my $self = shift;
+  return $self->{'clinical_significance'} = shift if(@_);
+  return $self->{'clinical_significance'};
+}
+
+1;