From 454cac5d3a91ea6546dd9ffcc8872ddf9a0e238f Mon Sep 17 00:00:00 2001
From: Ian Longden <ianl@sanger.ac.uk>
Date: Tue, 24 May 2011 14:30:13 +0000
Subject: [PATCH] add the synonyms

---
 .../xref_mapping/XrefParser/RGDParser.pm       | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/misc-scripts/xref_mapping/XrefParser/RGDParser.pm b/misc-scripts/xref_mapping/XrefParser/RGDParser.pm
index 03d8db730d..a35e5deef5 100644
--- a/misc-scripts/xref_mapping/XrefParser/RGDParser.pm
+++ b/misc-scripts/xref_mapping/XrefParser/RGDParser.pm
@@ -43,6 +43,7 @@ sub run {
     $species_id = XrefParser::BaseParser->get_species_id_for_filename($file);
   }
 
+  my $dbi = $self->dbi();
 
   my (%refseq) = %{XrefParser::BaseParser->get_valid_codes("refseq",$species_id)};
   
@@ -79,12 +80,19 @@ sub run {
   if($linearr[23] ne "GENBANK_NUCLEOTIDE"){
     die ("GENBANK_NUCLEOTIDE is not the twentysixth element in the header but ".$linearr[23]." is.\\n");
   }
+  if($linearr[29] ne "OLD_SYMBOL"){
+    die ("NAME is not the third element in the header\n$line\n");
+  }  
+
+  my $sql = "insert into synonym (xref_id, synonym) values (?, ?)";
+  my $add_syn_sth = $dbi->prepare($sql);    
   
   my $count= 0;
   my $mismatch = 0;
+  my $syn_count = 0;
   while ( $line = $rgd_io->getline() ) {
     chomp $line;
-    my ($rgd, $symbol, $name, $refseq) = (split (/\t/,$line))[0,1,2,23];
+    my ($rgd, $symbol, $name, $refseq,$old_name) = (split (/\t/,$line))[0,1,2,23,29];
     my @nucs = split(/\;/,$refseq);
     my $done = 0;
     my $failed_list ="";
@@ -94,8 +102,13 @@ sub run {
 	$xref=$refseq{$nuc} if defined($refseq{$nuc});
 	if(defined($xref)){
 	  $done = 1;
-	  XrefParser::BaseParser->add_to_xrefs($xref,$rgd,"",$symbol,$name,"",$source_id,$species_id);
+	  my $xref_id = XrefParser::BaseParser->add_to_xrefs($xref,$rgd,"",$symbol,$name,"",$source_id,$species_id);
 	  $count++;
+	  my @syns  = split(/\;/,$old_name);
+	  foreach my $syn(@syns){
+	    $add_syn_sth->execute($xref_id, $syn);
+	    $syn_count++;
+	  }
 	}
 	else{
 	  $failed_list .= " $nuc";
@@ -115,6 +128,7 @@ sub run {
 
   print "\t$count xrefs succesfully loaded and dependent on refseq\n" if($verbose);
   print "\t$mismatch xrefs added but with NO dependencies\n" if($verbose);
+  print "added $syn_count synonyms\n" if($verbose);
   return 0;
 }
 
-- 
GitLab