From 34d04ce1350bae22bfc33cd2f85ddd4107d6d2e3 Mon Sep 17 00:00:00 2001
From: Web Admin <w3adm@sanger.ac.uk>
Date: Thu, 11 Oct 2001 08:09:17 +0000
Subject: [PATCH] New adaptor - used in Virtual::StaticContig to utilize Lite
 database for some of the web calls - e.g.
 get_all_virtualgenes_startend_lite...

---
 modules/Bio/EnsEMBL/DBSQL/LiteAdaptor.pm | 85 ++++++++++++++++++++++++
 1 file changed, 85 insertions(+)
 create mode 100755 modules/Bio/EnsEMBL/DBSQL/LiteAdaptor.pm

diff --git a/modules/Bio/EnsEMBL/DBSQL/LiteAdaptor.pm b/modules/Bio/EnsEMBL/DBSQL/LiteAdaptor.pm
new file mode 100755
index 0000000000..cce7562102
--- /dev/null
+++ b/modules/Bio/EnsEMBL/DBSQL/LiteAdaptor.pm
@@ -0,0 +1,85 @@
+# EnsEMBL Gene reading writing adaptor for mySQL
+#
+# Copyright EMBL-EBI 2001
+#
+# Author: Arne Stabenau
+# based on 
+# Elia Stupkas Gene_Obj
+# 
+# Date : 20.02.2001
+#
+
+=head1 NAME
+
+Bio::EnsEMBL::DBSQL::LiteAdaptor - MySQL Database queries to generate and store gens.
+
+=head1 SYNOPSIS
+
+=head1 CONTACT
+
+  Arne Stabenau: stabenau@ebi.ac.uk
+  James Smith  : js5@sanger.ac.uk
+
+=head1 APPENDIX
+
+=cut
+
+
+package Bio::EnsEMBL::DBSQL::LiteAdaptor;
+
+use Bio::EnsEMBL::DBSQL::BaseAdaptor;
+use Bio::EnsEMBL::DBSQL::DBAdaptor;
+use vars '@ISA';
+
+@ISA = ( 'Bio::EnsEMBL::DBSQL::BaseAdaptor' );
+
+sub new {
+    my ($class,$dbobj) = @_;
+
+    my $self = {};
+    bless $self,$class;
+
+    if( !defined $dbobj || !ref $dbobj ) {
+        $self->throw("Don't have a db [$dbobj] for new adaptor");
+    }
+
+    $self->db($dbobj);
+
+    $self->{'_lite_db_name'} = $dbobj->{'_lite_db_name'};
+    return $self;
+}
+
+sub fetch_virtualgenes_start_end {
+    my ( $self, $chr, $vc_start, $vc_end ) =@_;
+    $_db_name = $self->{'_lite_db_name'};
+    print STDERR "DB NAME: $_db_name\n\n";
+    my $sth = $self->prepare(
+        "select g.gene, g.name, 
+                g.chr_name, g.gene_chrom_start, g.gene_chrom_end,
+                g.chrom_strand, gx.display_id, gx.db_name
+           from $_db_name.gene as g, $_db_name.gene_xref as gx
+          where g.gene = gx.gene and
+                g.chr_name = ? and g.gene_chrom_start <= ? and
+                g.gene_chrom_end >= ?"
+    );
+    $sth->execute( $chr, $vc_end, $vc_start );
+    my @genes;
+    while( my $row = $sth->fetchrow_arrayref() ) {
+        push @genes, {
+            'gene'      => $row->[0],
+            'stable_id' => $row->[1],
+            'chr_name'  => $row->[2],
+            'chr_start' => $row->[3]-$vc_start,
+            'chr_end'   => $row->[4]-$vc_start,
+            'strand'    => $row->[5],
+            'synonym'   => $row->[6],
+            'db'        => $row->[7]
+        };
+    }
+    return \@genes
+}
+                
+
+1;
+__END__
+
-- 
GitLab