[Bioperl-l] Re: [Bioperl-guts-l] Notification: incoming/974

Hilmar Lapp hlapp@gmx.net
Sat, 09 Jun 2001 12:29:14 -0700


bioperl-bugs@bioperl.org wrote:
> 
> JitterBug notification
> 
> 
> Full_Name: Saurabh Patel
> Module: BPlite.pm
> Version: bioperl-live
> PerlVer: 5.6.0
> OS: Linux
> Submission from: (NULL) (146.203.4.204)
> 
> If the resulting E value of a sequence is very low, BPlite will return a value
> that sometimes is not interpreted as a number.
> 
> My code:
> 
>   while ( my $sbjct=$BPlite_report->nextSbjct) {
>         while (my $hsp=$sbjct->nextHSP) {
>                 if ($hsp->P < 0.01) {
>                         my $name = $sbjct->name;
>                         $name =~ s/(^.*?pdb\|.*?)\|(.*)/$1/;
>                         print $name, "\n";
>                         print $hsp->ss, "\n";
>                         }
>                 }
> I expect this code to print out only when the e value is less than 0.01,
> but when I parse a blast report of a sequence has an exact match in the pdb, I
> get an error:
> 
> Argument "e-108" isn't numeric in numeric lt (<) at ./vt2.pl line 32, <GEN4>
> line 78.g
> 

Have you checked what $hsp->P() really returns?

	perl -e '$x = "e-108"; if($x < 0.01) { print "cool\n"; } else {
print "uncool\n"; }'

prints "cool" on my system (perl 5.005003). I think this is a
known parsing bug, but I'm not sure.

	Hilmar
-- 
-----------------------------------------------------------------
Hilmar Lapp                              email: hilmarl@yahoo.com
GNF, San Diego, Ca. 92122                phone: +1 858 812 1757
-----------------------------------------------------------------