Skip to content
Snippets Groups Projects
Commit 4dab48e0 authored by Ian Longden's avatar Ian Longden
Browse files

use methods in BaseParser now instead of local

parent 2f35ce4b
No related branches found
No related tags found
No related merge requests found
......@@ -7,7 +7,7 @@ use File::Basename;
use XrefParser::BaseParser;
use vars qw(@ISA);
@ISA = qw(BaseParser);
@ISA = qw(XrefParser::BaseParser);
my $xref_sth ;
my $dep_sth;
......@@ -36,30 +36,21 @@ sub run {
my $source_id = shift;
my $species_id = shift;
$xref_sth = BaseParser->dbi->prepare("INSERT INTO xref (accession,label,description,source_id,species_id) VALUES(?,?,?,?,?)");
$dep_sth = BaseParser->dbi->prepare("INSERT INTO dependent_xref VALUES(?,?,?,?)");
# my $mrk_swiss = "MRK_SwissProt_TrEMBL.rpt";
# my $mrk_ll = "MRK_LocusLink.rpt";
# my $dir = dirname($file);
if(!defined($source_id)){
$source_id = BaseParser->get_source_id_for_filename($file);
$source_id = XrefParser::BaseParser->get_source_id_for_filename($file);
print "source id is $source_id \n";
}
if(!defined($species_id)){
$species_id = BaseParser->get_species_id_for_filename($file);
$species_id = XrefParser::BaseParser->get_species_id_for_filename($file);
print "species id is $species_id \n";
}
my (%swiss) = BaseParser->get_valid_codes("uniprot",$species_id);
my (%refseq) = BaseParser->get_valid_codes("refseq",$species_id);
my (%swiss) = XrefParser::BaseParser->get_valid_codes("uniprot",$species_id);
my (%refseq) = XrefParser::BaseParser->get_valid_codes("refseq",$species_id);
print %swiss."\n";
my $count = 0;
my $mismatch = 0;
open(FILE,"<". $file) || die "could not open file $file";
while(my $line = <FILE>){
......@@ -67,46 +58,32 @@ sub run {
my ($key,$label,$sps) = (split("\t",$line))[0,1,6];
my @sp = split(/\s/,$sps);
foreach my $value (@sp){
# print $value."\n";
if(defined($value) and $value and defined($swiss{$value})){
add_to_xrefs($swiss{$value},$key,$label,$source_id,$species_id);
# print $key."\t".$value."\t".$label."\n";
XrefParser::BaseParser->add_to_xrefs($swiss{$value},$key,$label,"",$source_id,$species_id);
$count++;
}
elsif(defined($value) and $value and defined($refseq{$value})){
print STDERR "ARSE\t".$key."\t".$value."\t".$label."\n";
# print STDERR "ARSE\t".$key."\t".$value."\t".$label."\n";
$mismatch++;
}
}
}
close FILE;
print "$count xrefs succesfully loaded\n";
print "$mismatch xrefs failed to load\n";
}
sub get_xref{
my ($acc,$source) = @_;
my $dbi =BaseParser->dbi;
my $sql = "select xref_id from xref where accession = '".$acc."' and source_id = $source";
my $sth = $dbi->prepare($sql);
$sth->execute() || die $dbi->errstr;
if(my @row = $sth->fetchrow_array()) {
return $row[0];
}
return undef;
sub new {
my $self = {};
bless $self, "XrefParser::MGDParser";
return $self;
}
sub add_to_xrefs{
my ($master_xref,$mgi,$label,$source_id,$species_id) = @_;
my $dependent_id = get_xref($mgi, $source_id);
if(!defined($dependent_id)){
$xref_sth->execute($mgi,$label,"",$source_id,$species_id);
}
$dependent_id = get_xref($mgi, $source_id);
$dep_sth->execute($master_xref, $dependent_id, "", $source_id);
}
1;
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment