[Bioperl-l] How to parse bl2seq report?

Paulo Almeida paulo.david at netvisao.pt
Tue Apr 20 05:03:55 EDT 2004

Try enclosing the assignment of $blast_report in an 'if':

if (my $blast_report=$factory->bl2seq($input1, $input2)){
	while $blast_report->next_feature{
	print hsp->score;

-Paulo Almeida

szhan at uoguelph.ca wrote:

>Hello, Bioperl experts:
>I want to parse an array of pairwise protein sequences alingments with BLAST 
>bl2seq (standlone) in a loop. When there is no any "subject" (hit) in a bl2seq 
>report, the program halted. Could you please help me catch the error and 
>continue the loop?
>Your help will be highly appreciated!
>The partial code like this:
>@lucsarr is array of protein sequence objects
>for(my $k=0; $k<=$#lucsarr; $k++){
>   for(my $l=$k+1; $l<=$#lucsarr; $l++){
>      if($k<$l && $l<=$#lucsarr){
>            my $input1= $lucsarr[$k]; # take translated protein as an object
>            my $input2= $lucsarr[$l];
>            # create local factory object
>            my $factory = Bio::Tools::Run::StandAloneBlast->new('outfile' 
>=> 'bl2seq.out');
>            my $prgm='blastp'; # set parameter p for blastp
>            $factory->p($prgm);
>             # call executale bl2seq 
>             my $blast_report=$factory->bl2seq($input1, $input2);
>             # retrieve the outputs from blast_report output file: bl2seq.out
>             $blast_report->sbjctName;  
>            $blast_report->sbjctLength;
>print "Score\tBits\tID_percent\tE_value\tMatch\tPositive\tLength\n";
>            while(my $hsp = $blast_report->next_feature) {# get all 
>               print   $hsp->score, "\t";
>               print   $hsp->bits, "\t";
>               print   $hsp->percent, "\t";         
>               print   $hsp->P, "\t";
>               print   $hsp->match, "\t";
>               print   $hsp->positive, "\t";
>               print   $hsp->length, "\n";
>            }
>      }
>   }
>The output messages as follows:
>Score   Bits    ID_percent      E_value Match   Positive        Length
>Can't call method "nextHSP" on unblessed reference at 
>/BPbl2seq.pm line 236, <GEN2> line 36.
>Again thank you in advance!

More information about the Bioperl-l mailing list