[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
-----------------------------------------------------------------