From 0ce70064e461a2c852bf2377be31265f1dde4899 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20Kusalananda=20K=C3=A4h=C3=A4ri?=
 <ak4@sanger.ac.uk>
Date: Wed, 7 Mar 2007 15:49:54 +0000
Subject: [PATCH] Do RefSeq release info thing in RefSeqGPFFParser as well...

---
 .../XrefParser/RefSeqGPFFParser.pm            | 79 +++++++++++++------
 1 file changed, 56 insertions(+), 23 deletions(-)

diff --git a/misc-scripts/xref_mapping/XrefParser/RefSeqGPFFParser.pm b/misc-scripts/xref_mapping/XrefParser/RefSeqGPFFParser.pm
index e5e13aad26..71dcfe510d 100644
--- a/misc-scripts/xref_mapping/XrefParser/RefSeqGPFFParser.pm
+++ b/misc-scripts/xref_mapping/XrefParser/RefSeqGPFFParser.pm
@@ -31,32 +31,65 @@ sub run {
   my $source_id = shift;
   my $species_id = shift;
   my $file = shift;
+  my $release_file = shift;
 
   if ($source_id < 1) {
-    $source_id =  XrefParser::BaseParser->get_source_id_for_filename(basename($file));
+    $source_id =  $self->get_source_id_for_filename(basename($file));
   }
   if(!defined($species_id)){
-    $species_id = XrefParser::BaseParser->get_species_id_for_filename($file);
+    $species_id = $self->get_species_id_for_filename($file);
   }
 
-  my $peptide_source_id = XrefParser::BaseParser->get_source_id_for_source_name('RefSeq_peptide');
-  my $dna_source_id = XrefParser::BaseParser->get_source_id_for_source_name('RefSeq_dna');
-  print "RefSeq_peptide source ID = $peptide_source_id; RefSeq_dna source ID = $dna_source_id\n";
+    my $peptide_source_id =
+      $self->get_source_id_for_source_name('RefSeq_peptide');
+    my $dna_source_id =
+      $self->get_source_id_for_source_name('RefSeq_dna');
+
+    print "RefSeq_peptide source ID = $peptide_source_id\n";
+    print "RefSeq_dna source ID = $dna_source_id\n";
+
+    my $pred_peptide_source_id =
+      $self->get_source_id_for_source_name('RefSeq_peptide_predicted');
+    my $pred_dna_source_id =
+      $self->get_source_id_for_source_name('RefSeq_dna_predicted');
+
+    print "RefSeq_peptide_predicted source ID = "
+      . "$pred_peptide_source_id\n";
+    print "RefSeq_dna_predicted source ID = $pred_dna_source_id\n";
+
+    my $xrefs =
+      $self->create_xrefs( $peptide_source_id, $dna_source_id,
+        $pred_peptide_source_id, $pred_dna_source_id, $file,
+        $species_id );
+
+    if ( !defined($xrefs) ) {
+        return 1;    #error
+    }
+    if ( !defined( $self->upload_xref_object_graphs($xrefs) ) ) {
+        return 1;    # error
+    }
+
+    if ( defined $release_file ) {
+        # Parse and set release info.
+        my $release_io = $self->get_filehandle($release_file);
+        local $/ = "\n*";
+        my $release = $release_io->getline();
+        $release_io->close();
+
+        $release =~ s/\s{2,}/ /g;
+        $release =~ s/.*(NCBI Reference Sequence.*) Distribution.*/$1/s;
+        # Put a comma after the release number to make it more readable.
+        $release =~ s/Release (\d+)/Release $1,/;
+
+        print "RefSeq release: '$release'\n";
+
+        $self->set_release( $source_id,              $release );
+        $self->set_release( $peptide_source_id,      $release );
+        $self->set_release( $dna_source_id,          $release );
+        $self->set_release( $pred_peptide_source_id, $release );
+        $self->set_release( $pred_dna_source_id,     $release );
+    }
 
-  my $pred_peptide_source_id = XrefParser::BaseParser->get_source_id_for_source_name('RefSeq_peptide_predicted');
-  my $pred_dna_source_id = XrefParser::BaseParser->get_source_id_for_source_name('RefSeq_dna_predicted');
-  print "RefSeq_peptide_predicted source ID = $pred_peptide_source_id; RefSeq_dna_predicted source ID = $pred_dna_source_id\n";
-
-  my $xrefs =
-    $self->create_xrefs( $peptide_source_id, $dna_source_id,
-      $pred_peptide_source_id, $pred_dna_source_id, $file, $species_id );
-
-  if(!defined($xrefs)){
-    return 1; #error
-  }
-  if(!defined(XrefParser::BaseParser->upload_xref_object_graphs($xrefs))){
-    return 1; # error
-  }
   return 0; # successful
 }
 
@@ -73,12 +106,12 @@ sub create_xrefs {
   my ( $peptide_source_id, $dna_source_id, $pred_peptide_source_id,
       $pred_dna_source_id, $file, $species_id ) = @_;
 
-  my %name2species_id =  XrefParser::BaseParser->name2species_id();
+  my %name2species_id =  $self->name2species_id();
 
-  my %dependent_sources =  XrefParser::BaseParser->get_dependent_xref_sources();
+  my %dependent_sources =  $self->get_dependent_xref_sources();
 
-#  my (%genemap) = %{XrefParser::BaseParser->get_valid_codes("mim_gene",$species_id)};
-#  my (%morbidmap) = %{XrefParser::BaseParser->get_valid_codes("mim_morbid",$species_id)};
+#  my (%genemap) = %{$self->get_valid_codes("mim_gene",$species_id)};
+#  my (%morbidmap) = %{$self->get_valid_codes("mim_morbid",$species_id)};
 
   my $refseq_io = $self->get_filehandle($file);
 
-- 
GitLab