[Bioperl-l] problem with bioperl on UNIX
Prachi Shah
prachi_shroff at yahoo.com
Thu Feb 6 10:44:31 EST 2003
Thanks Simon and Matthew for your tips. dos2unix did
not make a difference. I am using perl 5.6.0 with
bioperl 1.2, so its the latest. No proxy on the
machine and the strange thing is.....when I use LWP
useragent directly to connect to NCBI Entrez, it
works. But with Bio::DB::Query::GenBank it still gives
me the error:
Use of uninitialized value in concatenation (.) at
tryBioPerl.pl line 18.
COUNT
Can't use an undefined value as an ARRAY reference at
/home/pss11/Perl/bioperl-1.2/lib/site_perl/5.6.0/Bio/DB/Query/WebQuery.pm
line 204.
Any more ideas are very welcome...
Thanks,
Prachi.
# In case you need the code....see at the end.
--- "simon andrews (BI)" <simon.andrews at bbsrc.ac.uk>
wrote:
>
> > -----Original Message-----
> > From: Prachi Shah
> > Subject: [Bioperl-l] problem with bioperl on UNIX
> >
> > It works perfectly fine on the Win perl setup,
> > but when I use it on the UNIX system it gives me
> the
> > following error:
> >
>
> I just ran your code directly on our system, and it
> worked fine; not so much as a warning. This was
> using BioPerl 1.2 under Linux, Perl 5.6.0.
>
> It looks as though your query setup is going wrong.
> Your first error:
>
> > Use of uninitialized value in concatenation (.) at
> > tryBioPerl.pl line 18.
>
> ..comes from $count being undef, which means that
> the $query->count didn't return anything. The call
> to Bio::DB::Query must have worked though otherwise
> you'd have got a warning saying "can't call count on
> an undefined value", so your problem is that your
> query worked, but no hits were returned. There are
> a couple of potential reasons for this;
>
> 1) Genbank wasn't working properly when you tried
> it. Try it again and see if it works now!
>
> 2) Your network setup on your unix box isn't
> allowing you to connect to the genbank site
> properly. This is usually because your connection
> must pass through a proxy server to access the
> internet, and you haven't given Perl the details of
> this proxy. The easiest way to do this is to set
> the 'http_proxy' environment variable in your shell
> (or within your script using the %ENV hash).
>
> $ENV{'http_proxy'}='http://my.proxy.address:port';
>
> You might also want to try upgrading your BioPerl to
> the latest version in case you are hitting a problem
> with an older version.
>
> Hope this helps
>
> Simon.
###### code starts here ####
#! /usr/bin/perl -w
use lib qw(
/home/pss11/Perl/bioperl-1.2/lib/site_perl/5.6.0
/home/pss11/Perl/IO-String-1.02/lib/site_perl/5.6.0
/home/pss11/Perl/libwww-perl-5.69/lib/site_perl/5.6.0
/home/pss11/Perl/URI-1.23/lib/site_perl/5.6.0);
use IO::String;
use strict;
use Bio::DB::GenBank;
use Bio::DB::Query::GenBank;
my $query_string = 'Gallus gallus[organism]';
my $query = Bio::DB::Query::GenBank->new(
-db=>'protein', -query=>$query_string);
my $count = $query->count;
print "COUNT $count\n";
my @ids = $query->ids;
open(OUT,">/home/pss11/AutoBlast-GI-UNIX/queryout");
while(@ids)
{
my $prt = shift @ids;
print OUT "$prt \n";
}
close(OUT);
__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com
More information about the Bioperl-l
mailing list