Raw content of XrefParser::AedesGenBankParser
package XrefParser::AedesGenBankParser;
use strict;
use File::Basename;
use base qw( XrefParser::BaseParser );
#Aedes GenBank protein - because not yet in UniProt
#>EAT48991.1
#MGKSKAHRIKGLTGPKMSLGDQITEGRVSKKPKAPKIRLRAEEEEFVDSRTTKKILQQAR
#KQQAELNLLDDSFGPSLAESAAAASVGKRRHRLGDAASSDESDEEYREEADVDGQDFFDD
#IKINEEDERALEMFQNKDGVKTRTLADLIMDKITEKQTEIQTQFSDTGSLKMEEIDPRVR
sub run {
my $self = shift if (defined(caller(1)));
my $source_id = shift;
my $species_id = shift;
my $files = shift;
my $release_file = shift;
my $verbose = shift;
my $file = @{$files}[0];
my $cpt = 0 ;
next if (/^File:/); # skip header
my @xrefs;
local $/ = "\n>";
my $file_io = $self->get_filehandle($file);
if ( !defined $file_io ) {
print "Could not open $file\n";
return 1;
}
while ( $_ = $file_io->getline() ) {
my $xref;
my ($header, $sequence) = $_ =~ /^>?(.+?)\n([^>]*)/s or warn("Can't parse FASTA entry: $_\n");
#print "My header is -$header-\n" ;
#print "My sequence is -$sequence-\n" ;
if ($header eq "") {
$header = "Aedes_GenBank".$cpt ;
print STDERR "One sequence with a random name ... \n" if($verbose);
$cpt++ ;
}
# deconstruct header - just use first part
#my ($accession, $description) = split /\|/, $header; #if description
my $accession = $header; #if no description
# make sequence into one long string
$sequence =~ s/\n//g;
# build the xref object and store it
#print "ACCESSION & LABEL are $accession\n" ;
#print "SEQUENCE is $sequence\n" ;
#print "SOURCE_ID is $source_id\n" ;
#print "SPECIES_ID is $species_id\n" ;
#print "SEQUENCE_TYPE is peptide!\n";
#print "STATUS is experimental!\n" ;
$xref->{ACCESSION} = $accession;
$xref->{LABEL} = $accession;
#$xref->{DESCRIPTION} = $description;
$xref->{SEQUENCE} = $sequence;
$xref->{SOURCE_ID} = $source_id;
$xref->{SPECIES_ID} = $species_id;
$xref->{SEQUENCE_TYPE} = 'peptide';
$xref->{STATUS} = 'experimental';
push @xrefs, $xref;
}
$file_io->close();
print scalar(@xrefs) . " AedesGenBank xrefs succesfully parsed\n" if($verbose);
XrefParser::BaseParser->upload_xref_object_graphs(\@xrefs);
print "Done\n";
return 0;
}
1;