diff variant_effect_predictor/Bio/EnsEMBL/DBSQL/UnconventionalTranscriptAssociationAdaptor.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/DBSQL/UnconventionalTranscriptAssociationAdaptor.pm	Thu Apr 11 02:01:53 2013 -0400
@@ -0,0 +1,239 @@
+=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
+
+=head1 NAME
+
+Bio::EnsEMBL::DBSQL::UnconventionalTranscriptAssociationAdaptor
+
+=head1 SYNOPSIS
+
+  $utaa = $registry->get_adaptor( 'Human', 'Core',
+    'UnconventionalTranscriptAssociation' );
+
+  my $uta = $utaa->fetch_all_by_type('antisense');
+
+=head1 DESCRIPTION
+
+This is an adaptor for the retrieval and storage of
+UnconventionalTranscriptAssociation objects from the database.  Most of
+the implementation is in the superclass BaseFeatureAdaptor.
+
+=head1 METHODS
+
+=cut
+
+package Bio::EnsEMBL::DBSQL::UnconventionalTranscriptAssociationAdaptor;
+
+use strict;
+use Bio::EnsEMBL::DBSQL::BaseAdaptor;
+use Bio::EnsEMBL::UnconventionalTranscriptAssociation;
+
+use vars qw(@ISA);
+
+@ISA = qw(Bio::EnsEMBL::DBSQL::BaseAdaptor);
+
+
+
+
+=head2 fetch_all_by_interaction_type
+
+  Arg [1]    : String type
+               the type of associations to obtain
+  Example    : $utas = $utaa->fetch_all_by_type('antisense');
+  Description: Obtains all unconventional transcript associations that
+               have a particular interaction type.
+               NOTE:  In a multi-species database, this method will
+               return all the entries matching the search criteria, not
+               just the ones associated with the current species.
+  Returntype : listREF of Bio::EnsEMBL::UnconventionalTranscriptAssociations
+  Exceptions : none
+  Caller     : general
+  Status     : At Risk
+             : under development
+
+=cut
+
+sub fetch_all_by_interaction_type {
+
+  my( $self, $type) = @_;
+
+  my $sth = $self->prepare("SELECT transcript_id, gene_id, interaction_type " .
+			   "FROM unconventional_transcript_association " .
+			   "WHERE interaction_type = ?");
+
+  $sth->bind_param(1, $type, SQL_VARCHAR);
+  $sth->execute();
+
+  my $results = $self->_objs_from_sth($sth);
+
+  $sth->finish();
+
+  return $results;
+
+}
+
+
+=head2 fetch_all_by_gene
+
+  Arg [1]    : String gene the gene of associations to obtain
+  Arg [2]    : (optional) An interaction type; if set, only associations of this type will be returned.
+  Example    : $utas = $utaa->fetch_all_by_gene($gene, 'antisense');
+  Description: Obtains all unconventional transcript associations that involve
+               a particular gene.
+  Returntype : listREF of Bio::EnsEMBL::UnconventionalTranscriptAssociations
+  Exceptions : none
+  Caller     : general
+  Status     : At Risk
+             : under development
+
+=cut
+
+sub fetch_all_by_gene {
+
+  my( $self, $gene, $type) = @_;
+
+  if(!ref($gene) || !$gene->isa('Bio::EnsEMBL::Gene')) {
+    throw('$gene must be a Bio::EnsEMBL::Gene');
+  }
+
+  my $sql = "SELECT transcript_id, gene_id, interaction_type FROM unconventional_transcript_association WHERE gene_id = ?";
+  $sql .= " AND interaction_type = ?" if ($type);
+
+  my $sth = $self->prepare($sql);
+
+  $sth->bind_param(1, $gene->dbID(), SQL_INTEGER);
+  $sth->bind_param(2, $type, SQL_VARCHAR) if ($type);
+
+  $sth->execute();
+
+  my $results = $self->_objs_from_sth($sth);
+
+  $sth->finish();
+
+  return $results;
+
+}
+
+
+=head2 fetch_all_by_transcript
+
+  Arg [1]    : String transcript the transcript of associations to obtain
+  Arg [2]    : (optional) An interaction type; if set, only associations of this type will be returned.
+  Example    : $utas = $utaa->fetch_all_by_transcript($transcript, 'antisense');
+  Description: Obtains all unconventional transcript associations that involve
+               a particular transcript.
+  Returntype : listREF of Bio::EnsEMBL::UnconventionalTranscriptAssociations
+  Exceptions : none
+  Caller     : general
+  Status     : At Risk
+             : under development
+
+=cut
+
+sub fetch_all_by_transcript {
+
+  my( $self, $transcript, $type) = @_;
+
+  if(!ref($transcript) || !$transcript->isa('Bio::EnsEMBL::Transcript')) {
+    throw('$transcript must be a Bio::EnsEMBL::Transcript');
+  }
+
+  my $sql = "SELECT transcript_id, gene_id, interaction_type FROM unconventional_transcript_association WHERE transcript_id = ?";
+  $sql .= " AND interaction_type = ?" if ($type);
+
+  my $sth = $self->prepare($sql);
+
+  $sth->bind_param(1, $transcript->dbID(), SQL_INTEGER);
+  $sth->bind_param(2, $type, SQL_VARCHAR) if ($type);
+
+  $sth->execute();
+
+  my $results = $self->_objs_from_sth($sth);
+
+  $sth->finish();
+
+  return $results;
+
+}
+
+
+=head2 store
+
+  Arg [1]    : Bio::EnsEMBL::UnconventionalTranscriptAssociation
+               the unconventional transcript association to store in the database
+  Example    : $utaa_adaptor->store($uta);
+  Description: stores unconventional transcript associations in the database
+  Returntype : none
+  Exceptions :
+  Caller     : general
+  Status     : At Risk
+             : under development
+
+=cut
+
+sub store {
+
+  my( $self, $uta ) = @_;
+
+  if(!ref($uta) || !$uta->isa('Bio::EnsEMBL::UnconventionalTranscriptAssociation')) {
+    throw('$uta must be a Bio::EnsEMBL::UnconventionalTranscriptAssociation');
+  }
+
+  my $sth = $self->prepare(qq {INSERT into unconventional_transcript_association
+			       (transcript_id, gene_id, interaction_type) VALUES (?,?,?)});
+
+  $sth->bind_param(1, $uta->transcript()->dbID(), SQL_INTEGER);
+  $sth->bind_param(2, $uta->gene()->dbID,         SQL_INTEGER);
+  $sth->bind_param(3, $uta->interaction_type(),   SQL_VARCHAR);
+
+  $sth->execute();
+
+}
+
+
+
+sub _objs_from_sth {
+
+  my ($self, $sth) = @_;
+
+  my $transcript_adaptor = $self->db()->get_TranscriptAdaptor();
+  my $gene_adaptor = $self->db()->get_GeneAdaptor();
+
+  my ($gene_id, $transcript_id, $type);
+  $sth->bind_columns(\$transcript_id, \$gene_id, \$type);
+
+  my @results;
+
+  while($sth->fetch()) {
+
+    my $gene = $gene_adaptor->fetch_by_dbID($gene_id);
+    my $transcript = $transcript_adaptor->fetch_by_dbID($transcript_id);
+
+    my $obj = Bio::EnsEMBL::UnconventionalTranscriptAssociation->new($transcript, $gene, $type);
+    push @results, $obj;
+
+  }
+
+  return \@results;
+}
+
+1;
+
+