-
Ian Longden authorede2639a3d
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
UniProtParser.pm 17.77 KiB
# Parse UniProt (SwissProt & SPTrEMBL) files to create xrefs.
#
# Files actually contain both types of xref, distinguished by ID line;
#
# ID CYC_PIG Reviewed; 104 AA. Swissprot
# ID Q3ASY8_CHLCH Unreviewed; 36805 AA. SPTrEMBL
package XrefParser::UniProtParser;
use strict;
use POSIX qw(strftime);
use File::Basename;
use base qw( XrefParser::BaseParser );
my $verbose;
# --------------------------------------------------------------------------------
# Parse command line and run if being run directly
if (!defined(caller())) {
if (scalar(@ARGV) != 3) {
print STDERR "\nUsage: UniProtParser.pm file.SPC <source_id> <species_id>\n\n";
print STDERR scalar(@ARGV);
exit(1);
}
run($ARGV[0], -1);
}
# --------------------------------------------------------------------------------
sub run {
my $self = shift if (defined(caller(1)));
my $source_id = shift;
my $species_id = shift;
my $files = shift;
my $release_file = shift;
$verbose = shift;
my $file = @{$files}[0];
my $species_name;
my ( $sp_source_id, $sptr_source_id, $sp_release, $sptr_release );
if(!defined($species_id)){
($species_id, $species_name) = $self->get_species($file);
}
$sp_source_id =
$self->get_source_id_for_source_name('Uniprot/SWISSPROT',"sequence_mapped");
$sptr_source_id =
$self->get_source_id_for_source_name('Uniprot/SPTREMBL');
print "SwissProt source id for $file: $sp_source_id\n" if ($verbose);
print "SpTREMBL source id for $file: $sptr_source_id\n" if ($verbose);
my @xrefs =
$self->create_xrefs( $sp_source_id, $sptr_source_id, $species_id,
$file );