From e416247e94a25f3e02125b44aa71a3bd037f281b 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 14:29:01 +0000
Subject: [PATCH] Allow the RefSeq parser to parse and set RefSeq release info.

---
 .../xref_mapping/XrefParser/RefSeqParser.pm   | 33 +++++++++++++++----
 1 file changed, 26 insertions(+), 7 deletions(-)

diff --git a/misc-scripts/xref_mapping/XrefParser/RefSeqParser.pm b/misc-scripts/xref_mapping/XrefParser/RefSeqParser.pm
index 5bd810b9e2..f2e7baf21a 100644
--- a/misc-scripts/xref_mapping/XrefParser/RefSeqParser.pm
+++ b/misc-scripts/xref_mapping/XrefParser/RefSeqParser.pm
@@ -31,17 +31,18 @@ sub run {
   my $source_id = shift;
   my $species_id = shift;
   my $file = shift;
+  my $release_file = shift;
 
-  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');
+  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; RefSeq_dna source ID = $dna_source_id\n";
 
-  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');
+  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; RefSeq_dna_predicted source ID = $pred_dna_source_id\n";
 
   if(!defined($species_id)){
-    $species_id = XrefParser::BaseParser->get_species_id_for_filename($file);
+    $species_id = $self->get_species_id_for_filename($file);
   }
 
   my $xrefs =
@@ -51,9 +52,27 @@ sub run {
   if(!defined($xrefs)){
     return 1; #error
   }
-  if(!defined(XrefParser::BaseParser->upload_xref_object_graphs($xrefs))){
+  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 );
+    }
+
   return 0; # successfull
 
 }
@@ -71,7 +90,7 @@ 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 $refseq_io = $self->get_filehandle($file);
 
-- 
GitLab