From 351f862acb58105bbc3027123100ab201b7e2378 Mon Sep 17 00:00:00 2001
From: Arne Stabenau <stabenau@sanger.ac.uk>
Date: Tue, 19 Nov 2002 11:52:43 +0000
Subject: [PATCH] all genes were known bug fixed

---
 modules/Bio/EnsEMBL/DBSQL/DBEntryAdaptor.pm |  8 +++++--
 modules/Bio/EnsEMBL/Gene.pm                 | 17 +++++++++------
 modules/t/gene.t                            | 24 +++++++++++++++------
 3 files changed, 33 insertions(+), 16 deletions(-)

diff --git a/modules/Bio/EnsEMBL/DBSQL/DBEntryAdaptor.pm b/modules/Bio/EnsEMBL/DBSQL/DBEntryAdaptor.pm
index aa35ed4cfe..79104cd74d 100644
--- a/modules/Bio/EnsEMBL/DBSQL/DBEntryAdaptor.pm
+++ b/modules/Bio/EnsEMBL/DBSQL/DBEntryAdaptor.pm
@@ -442,7 +442,7 @@ sub _fetch_by_object_type {
   my $sth = $self->prepare("
     SELECT xref.xref_id, xref.dbprimary_acc, xref.display_label, xref.version,
            xref.description,
-           exDB.db_name, exDB.release, 
+           exDB.db_name, exDB.release, exDB.status, 
            oxr.object_xref_id, 
            es.synonym, 
            idt.query_identity, idt.target_identity
@@ -462,7 +462,7 @@ sub _fetch_by_object_type {
   
   while ( my $arrRef = $sth->fetchrow_arrayref() ) {
     my ( $refID, $dbprimaryId, $displayid, $version, 
-	 $desc, $dbname, $release, $objid, 
+	 $desc, $dbname, $release, $exDB_status, $objid, 
          $synonym, $queryid, $targetid ) = @$arrRef;
     
     my $exDB;
@@ -502,6 +502,10 @@ sub _fetch_by_object_type {
         $exDB->description( $desc );
       }
       
+      if( $exDB_status ) {
+	$exDB->status( $exDB_status );
+      }
+
       push( @out, $exDB );
     }                                   # if (!$seen{$refID})
 
diff --git a/modules/Bio/EnsEMBL/Gene.pm b/modules/Bio/EnsEMBL/Gene.pm
index 4189d8ba69..b8076380ca 100755
--- a/modules/Bio/EnsEMBL/Gene.pm
+++ b/modules/Bio/EnsEMBL/Gene.pm
@@ -288,15 +288,18 @@ sub source {
 
 sub is_known{
   my ($self) = @_;
-  my @array;
-  @array = $self->get_all_DBLinks();
-  if( scalar(@array) > 0 ) {
-    return 1;
+
+  for my $entry ( @{$self->get_all_DBLinks()} ) {
+    if( $entry->status eq "KNOWN" ) {
+      return 1;
+    }
   }
+
   foreach my $trans ( @{$self->get_all_Transcripts} ) {
-    @array = $trans->get_all_DBLinks();
-    if( scalar(@array) > 0 ) {
-      return 1;
+    for my $entry ( @{$trans->get_all_DBLinks()} ) {
+      if( $entry->status eq "KNOWN" ) {
+	return 1;
+      }
     }
   }
   
diff --git a/modules/t/gene.t b/modules/t/gene.t
index fab85816d7..c1beace343 100644
--- a/modules/t/gene.t
+++ b/modules/t/gene.t
@@ -4,10 +4,12 @@ use warnings;
 
 BEGIN { $| = 1;  
 	use Test;
-	plan tests => 22;
+	plan tests => 23;
 }
 
 use MultiTestDB;
+use TestUtils qw ( debug );
+
 use Bio::EnsEMBL::Gene;
 
 # switch on the debug prints
@@ -189,7 +191,7 @@ foreach my $trans( @{$gene_out->get_all_Transcripts()} ){
   my $pep = $trans->translate();
   debug( "Peptide: ".$pep->seq() );
 
-  if($pep->seq !~ /\*\./){
+  if($pep->seq !~ /\*./){
     $translate = 1;
   } else {
     $translate = 0;
@@ -211,17 +213,25 @@ debug( "Pep phase 1: $pep2" );
 
 ok( $pep1 ne $pep2 );
 
-
 $multi->restore();
 
+$slice = $db->get_SliceAdaptor()->fetch_by_chr_start_end("20", 30_252_000, 31_252_001 );
+
+my ( $known, $unknown );
 
-sub debug {
-  my $txt = shift;
-  if( $verbose ) {
-    print STDERR $txt,"\n";
+my $genes = $slice->get_all_Genes();
+for my $gene ( @$genes ) {
+  if( $gene->is_known() ) {
+    $known++;
+  } else {
+    $unknown++;
   }
 }
 
+debug( "known: $known Unknown: $unknown\n" );
+
+ok( $known==17 );
+
 
 
 
-- 
GitLab