From 1ed754dc15deb9ccc2eab68f80e4130e105c7fe7 Mon Sep 17 00:00:00 2001
From: Ian Longden <ianl@sanger.ac.uk>
Date: Tue, 29 Sep 2009 12:56:18 +0000
Subject: [PATCH] Remember to load dependents for the GO terms

---
 .../xref_mapping/XrefMapper/Interpro.pm       | 29 +++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/misc-scripts/xref_mapping/XrefMapper/Interpro.pm b/misc-scripts/xref_mapping/XrefMapper/Interpro.pm
index 68831350ee..6629427c53 100644
--- a/misc-scripts/xref_mapping/XrefMapper/Interpro.pm
+++ b/misc-scripts/xref_mapping/XrefMapper/Interpro.pm
@@ -52,6 +52,8 @@ sub process{
     $domain_to_translation{$domain} ||= [];
     push @{$domain_to_translation{$domain}}, $translation;
   }
+
+  my $dep_sth    = $self->xref->dbc->prepare("select dependent_xref_id, linkage_annotation from dependent_xref where master_xref_id = ?");
   
   # Get a list of interpro data, including dependent xrefs if avail
   $sth = $self->xref->dbc->prepare("
@@ -87,6 +89,33 @@ sub process{
 	  $add_go_xref_sth->execute($object_xref_id, $go_linkage );
 	  $goxref_count ++;
 	}
+
+
+
+	#
+	# Also add dependents of the xref and its etc...!!!
+	#
+	my @master_xref_ids;
+	push @master_xref_ids, $dx_xref_id;
+	while (my $new_master_id = pop(@master_xref_ids)){
+	  $dep_sth->execute($new_master_id);
+	  my $dep_xref_id;
+	  my $link;
+	  $dep_sth->bind_columns(\$dep_xref_id, \$link);
+	  while($dep_sth->fetch()){
+	    $add_object_xref_sth->execute($object_xref_id, $ensembl_id, 'Translation', $dep_xref_id, 'DEPENDENT', $new_master_id);	  
+	    if(!$add_object_xref_sth->err){
+	      push @master_xref_ids, $dep_xref_id;
+	      if($link){
+		$add_go_xref_sth->execute($object_xref_id, $link );
+	      }
+	    }
+	    $object_xref_id++;
+	  }
+	}
+
+
+
 	$object_xref_id++;
       }
     }
-- 
GitLab