[Bioperl-l] A couple Eutilities questions
Warren Gallin
wgallin at ualberta.ca
Fri Sep 28 02:51:12 UTC 2007
I've just started using Bio::DB::Eutilities and I have encountered
two things that seem like problems.
I am using the latest (retrieved Wednesday September 26, 2007) CVS
version, running in an Apple Xserver.
Problem 1: When I execute the following code:
#Create new EUTILS object for retrieving sets of entries, given an
array of accession numbers
my $gpeptfactory = Bio::DB::EUtilities -> new( -eutil => 'efetch',
-db => 'protein',
-rettype =>'genbank',
-id => \@pro_acc) ;
my $file = 'temp_hold.gb';
$gpeptfactory -> get_Response(-file => $file);
my $retr_seq = Bio::SeqIO->new( -file => $file,
-format => 'genbank');
I get the following warning, consistently:
Use of uninitialized value in concatenation (.) or string at /Library/
Perl/5.8.1/Bio/DB/GenericWebAgent.pm line 92.
Also, about half the time I get a crash with the following error
message:
------------- EXCEPTION: Bio::Root::Exception -------------
MSG: Response Error
Bad Gateway
STACK: Error::throw
STACK: Bio::Root::Root::throw /Library/Perl/5.8.1/Bio/Root/Root.pm:357
STACK: Bio::DB::GenericWebAgent::get_Response /Library/Perl/5.8.1/Bio/
DB/GenericWebAgent.pm:184
STACK: gb_update_v4.pl:118
-----------------------------------------------------------
The other half of the time the script runs fine through to the end.
I have no idea whether the crash is related to the warning or not. I
looked at the line where the warning is generated, and it appears to
be the "new" method for the GenericWebAgent.pm . I can't see how
the call to Eutilities is can be passing an undefined value through
to this method.
Problem #2:
When the code runs, I retrieve an incorrect record. I am retrieving
using accessions, and accession I51532 retrieves two records. One is
the record I am after, an ion channel protein, the other comes from a
patent application; the problem is that, although the accession
number for the unwanted record is AAB76204, the LOCUS entry in the
record is I51532.
So, is it possible that the efetch function is collecting on the
basis of LOCUS, not ACCESSION? I realize that the two are almost
always the same, but not apparently in this case.
Any advice and/or explanation is appreciated.
Warren Gallin
More information about the Bioperl-l
mailing list