diff variant_effect_predictor/Bio/EnsEMBL/Variation/VariationAnnotation.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/VariationAnnotation.pm	Thu Apr 11 02:01:53 2013 -0400
@@ -0,0 +1,476 @@
+=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::VariationAnnotation
+#
+# Copyright (c) 2004 Ensembl
+#
+
+
+=head1 NAME
+
+Bio::EnsEMBL::Variation::VariationAnnotation - A genotype phenotype annotation for a nucleotide variation.
+
+=head1 SYNOPSIS
+
+    # Variation Annotation is associated with a variation object
+    $va = Bio::EnsEMBL::Variation::VariationAnnotation->new
+       (_variation_id   => 8,
+        -phenotype_name     => 'BD',
+        -phenotype_description => 'Bipolar Disorder',,
+        -associated_gene => 'HHEX',
+        -associated_variant_risk_allele => 'rs13266634-C',
+        -variation_names => 'rs13266634',
+        -risk_allele_freq_in_controls => '0.3',
+        -p_value  => '6.00E-08',
+        -variation => $v);
+
+    ...
+
+    print $va->phenotype_name(),'-',$va->phenotype_description,"\n";
+    print "From source ",$va->source_name,'-',$va->study_name,"\n";
+    print " With study_type ", $va->study_type(),"\n";
+
+    ...
+    # Get the Variation object which this annotation represents
+    # If not already retrieved from the DB, this will be
+    # transparently lazy-loaded
+    my $v = $va->variation();
+
+=head1 DESCRIPTION
+
+This is a class representing the genotype-phenotype annotation of a variation
+from the ensembl-variation database.  The actual variation information is
+represented by an associated Bio::EnsEMBL::Variation::Variation object. 
+
+=head1 METHODS
+
+=cut
+
+use strict;
+use warnings;
+
+package Bio::EnsEMBL::Variation::VariationAnnotation;
+
+use Bio::EnsEMBL::Utils::Exception qw(throw warning);
+use Bio::EnsEMBL::Utils::Argument  qw(rearrange);
+use Bio::EnsEMBL::Variation::Variation;
+use Bio::EnsEMBL::Storable;
+
+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::VariationAnnotationAdaptor
+  Arg [-PHENOTYPE_NAME] :
+    string - name of the phenotype
+  Arg [-PHENOTYPE_DESCRIPTION] :
+    string - description of the phenotype
+  Arg [-VARIATION_NAMES] :
+    string - name of the associated variations
+  Arg [-VARIATION] :
+    int - the variation object associated with this annotation.
+  Arg [_VARIATION_ID] :
+    int _ the internal id of the variation object associated with this
+    identifier. This may be provided instead of a variation object so that
+    the variation may be lazy-loaded from the database on demand.
+  Arg [-ASSOCIATED_GENE] :
+    string - the gene names associated with this annotation/variant.
+  Arg [-ASSOCIATED_VARIANT_RISK_ALLELE] :
+    string - the variants-risk alleles associated with this annotation.
+  Arg [-RISK_ALLELE_FREQ_IN_CONTROLS] :
+    string - the risk allele frequency in controls associated with this annotation.
+  Arg [-P_VALUE] :
+    string - the p_value associated with this annotation.
+  Arg [-STUDY] :
+    object ref - the study object describing where the annotated variation comes from
+	
+  Example    :
+    $va = Bio::EnsEMBL::Variation::VariationAnnotation->new
+       (-phenotype_name => 'BD',
+        -phenotype_description => 'Bipolar Disorder',
+        -variation_names => 'rs123',
+        _variation_id => 10,
+        -associated_gene => 'HHEX',
+        -associated_variant_risk_allele => 'rs13266634-C',
+        -risk_allele_freq_in_controls => '0.3',
+        -p_value  => '6.00E-08',
+        -variation => $v);
+
+  Description: Constructor. Instantiates a new VariationAnnotation object.
+  Returntype : Bio::EnsEMBL::Variation::VariationAnnotation
+  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_name,$phenotype_description,$variation_id,$variation_names,
+			$variation,$associated_gene,$associated_variant_risk_allele,$risk_allele_freq_in_controls,$p_value,
+			$study) =
+    rearrange([qw(dbID ADAPTOR _PHENOTYPE_ID PHENOTYPE_NAME PHENOTYPE_DESCRIPTION
+                  VARIATION_ID VARIATION_NAMES VARIATION ASSOCIATED_GENE ASSOCIATED_VARIANT_RISK_ALLELE
+		          		RISK_ALLELE_FREQ_IN_CONTROLS P_VALUE STUDY)],@_); 
+
+  $self->{'dbID'} = $dbID;
+  $self->{'adaptor'}    = $adaptor;
+  $self->{'_phenotype_id'} = $phenotype_id;
+  $self->{'phenotype_name'}   = $phenotype_name;
+  $self->{'phenotype_description'}  = $phenotype_description;
+  $self->{'variation'}        = $variation;
+  $self->{'_variation_id'}    = $variation_id;
+  $self->{'variation_names'}   = $variation_names;
+  $self->{'associated_gene'} = $associated_gene;
+  $self->{'associated_variant_risk_allele'} = $associated_variant_risk_allele;
+  $self->{'risk_allele_freq_in_controls'} = $risk_allele_freq_in_controls;
+  $self->{'p_value'} = $p_value;
+  $self->{'study'} => $study,
+  return $self;
+}
+
+
+
+sub new_fast {
+  my $class = shift;
+  my $hashref = shift;
+  return bless $hashref, $class;
+}
+
+
+=head2 phenotype_name
+
+  Arg [1]    : string phenotype_name (optional)
+               The new value to set the phenotype_name attribute to
+  Example    : $phenotype_name = $obj->phenotype_name()
+  Description: Getter/Setter for the phenotype_name attribute.
+  Returntype : string
+  Exceptions : none
+  Caller     : general
+  Status     : Stable
+
+=cut
+
+sub phenotype_name{
+  my $self = shift;
+  return $self->{'phenotype_name'} = shift if(@_);
+  return $self->{'phenotype_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 source_name
+
+  Arg [1]    : string source_name (optional)
+               The new value to set the source_name attribute to
+  Example    : $source_name = $obj->source_name()
+  Description: Getter/Setter for the source_name attribute.
+  Returntype : string
+  Exceptions : none
+  Caller     : general
+  Status     : At Risk
+
+=cut
+
+sub source_name{
+  my $self = shift;
+  return $self->{'study'}->source = shift if(@_);
+  return $self->{'study'}->source;
+}
+
+=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 variation
+
+  Arg [1]    : (optional) Bio::EnsEMBL::Variation::Variation $variation
+  Example    : $v = $va->variation();
+  Description: Getter/Setter for the variation associated with this annotation.
+               If not set, and this VariationAnnotation has an associated adaptor
+               an attempt will be made to lazy-load the variation from the
+               database.
+  Returntype : Bio::EnsEMBL::Variation::Variation
+  Exceptions : throw on incorrect argument
+  Caller     : general
+  Status     : Stable
+
+=cut
+
+sub variation {
+  my $self = shift;
+
+  if(@_) {
+    if(!ref($_[0]) || !$_[0]->isa('Bio::EnsEMBL::Variation::Variation')) {
+      throw("Bio::EnsEMBL::Variation::Variation argument expected");
+    }
+    $self->{'variation'} = shift;
+  }
+  elsif(!defined($self->{'variation'}) && $self->{'adaptor'} &&
+        defined($self->{'_variation_id'})) {
+    # lazy-load from database on demand
+    my $va = $self->{'adaptor'}->db()->get_VariationAdaptor();
+    $self->{'variation'} = $va->fetch_by_dbID($self->{'_variation_id'});
+  }
+
+  return $self->{'variation'};
+}
+
+=head2 variation_names
+
+  Arg [1]    : string $newval (optional)
+               The new value to set the variation_names attribute to
+  Example    : $variation_names = $obj->variation_names()
+  Description: Getter/Setter for the variation_names attribute.  This is the
+               names of the variation associated with this study.
+  Returntype : string
+  Exceptions : none
+  Caller     : general
+  Status     : At Risk
+
+=cut
+
+sub variation_names{
+  my $self = shift;
+  return $self->{'variation_names'} = shift if(@_);
+  return $self->{'variation_names'};
+}
+
+
+=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 associated_studies
+  Example    : $name = $obj->associate_studies()
+  Description: Getter/Setter for the associated_studies attribute 
+	            (e.g. EGA studies can be associated to NHGRI studies). 
+  Returntype : reference to list of Bio::EnsEMBL::Variation::Study
+  Exceptions : none
+  Caller     : general
+  Status     : At Risk
+
+=cut
+
+sub associated_studies{
+  my $self = shift;
+	return $self->{'study'}->associated_studies;
+}
+
+
+=head2 associated_gene
+
+  Arg [1]    : string $newval (optional)
+               The new value to set the associated_gene attribute to
+  Example    : $associated_gene = $obj->associated_gene()
+  Description: Getter/Setter for the associated_gene attribute.  This is the
+               gene names associated with this study.
+  Returntype : string
+  Exceptions : none
+  Caller     : general
+  Status     : At Risk
+
+=cut
+
+sub associated_gene{
+  my $self = shift;
+  return $self->{'associated_gene'} = shift if(@_);
+  return $self->{'associated_gene'};
+}
+
+=head2 associated_variant_risk_allele
+
+  Arg [1]    : string $newval (optional)
+               The new value to set the associated_variant_risk_allele attribute to
+  Example    : $associated_variant_risk_allele = $obj->associated_variant_risk_allele()
+  Description: Getter/Setter for the associated_variant_risk_allele attribute.  This is the
+               associated_variant_risk_allele associated with this study.
+  Returntype : string
+  Exceptions : none
+  Caller     : general
+  Status     : At Risk
+
+=cut
+
+sub associated_variant_risk_allele{
+  my $self = shift;
+  return $self->{'associated_variant_risk_allele'} = shift if(@_);
+  return $self->{'associated_variant_risk_allele'};
+}
+
+=head2 risk_allele_freq_in_controls
+
+  Arg [1]    : string $newval (optional)
+               The new value to set the risk_allele_freq_in_controls attribute to
+  Example    : $risk_allele_freq_in_controls = $obj->risk_allele_freq_in_controls()
+  Description: Getter/Setter for the risk_allele_freq_in_controls attribute.  This is the
+               risk_allele_freq_in_controls associated with this study.
+  Returntype : string
+  Exceptions : none
+  Caller     : general
+  Status     : At Risk
+
+=cut
+
+sub risk_allele_freq_in_controls{
+  my $self = shift;
+  return $self->{'risk_allele_freq_in_controls'} = shift if(@_);
+  return $self->{'risk_allele_freq_in_controls'};
+}
+
+=head2 p_value
+
+  Arg [1]    : string $newval (optional)
+               The new value to set the p_value attribute to
+  Example    : $p_value = $obj->p_value()
+  Description: Getter/Setter for the p_value attribute.  This is the
+               p_value associated with this study.
+  Returntype : string
+  Exceptions : none
+  Caller     : general
+  Status     : At Risk
+
+=cut
+
+sub p_value{
+  my $self = shift;
+  return $self->{'p_value'} = shift if(@_);
+  return $self->{'p_value'};
+}
+1;