[Bioperl-l] problems with BLAST

Marc Logghe Marc.Logghe at devgen.com
Thu May 6 05:21:56 EDT 2004


You have to tell to get to the next report if there is one with $report->_parseHeader.
Have a look at the synopsis of  Bio::Tools::BPlite (block around your while loop and test for end of report at the end)
HTH,
Marc

> -----Original Message-----
> From: omid gulban [mailto:gulban at sickkids.ca]
> Sent: donderdag 6 mei 2004 0:53
> To: bioperl-l at bioperl.org
> Subject: [Bioperl-l] problems with BLAST
> 
> 
> Hello all,
> 
> I have a blast ouput that was generated via Blast2.28 it 
> contained results for two query sequences.
> I am having difficulties parsing the output: Here is what I wrote:
> 
> the problem is that I get parsed results for the first query 
> sequence and not for the other. I checked the input file and
> the results are there. Maybe I an not instructing it to go 
> the next query sequence?????
> 
> 
> **************************************************************
> *********************************************************
> 
> #!/usr/bin/perl -w
> 
> use lib 'E:/.cpan/Bioperl-1.2.3';
> use strict;
> use Bio::Tools::BPlite;
> use Bio::SimpleAlign;
> use Bio::AlignIO;
> use Bio::SeqIO;
> use Bio::Seq;
> 
> my $outputfile = '<C:\Documents and 
> Settings\me\Desktop\blastMendel\test_output.txt';
> open (BLAST_OUTPUT_FILE, "$outputfile") or die 
>   "Can't open $outputfile: [$!]\n";
> 
> open (PARSED_OUTPUT_FILE, ">>parsed_output.txt") or die
>    "Can't open\/create a file called [parsed_output.txt]\n";
> 
> my $blast_ouput_for_parsing = new Bio::Tools::BPlite
>          (-fh => \*BLAST_OUTPUT_FILE);
> 
> 
> print PARSED_OUTPUT_FILE '*'x60 , "\n";
> print PARSED_OUTPUT_FILE "Query Name: " , 
> $blast_ouput_for_parsing -> query , "\n";
> print PARSED_OUTPUT_FILE "Database Searched: " , 
> $blast_ouput_for_parsing -> database , "\n\n";
> print PARSED_OUTPUT_FILE '*'x60 , "\n";  
> #print PARSED_OUTPUT_FILE "The name of the subject is: ", 
> $sbjct->name , "\n";
> 
> while(my $sbjct = $blast_ouput_for_parsing -> nextSbjct) {  
> 
>     my $hsp = $sbjct -> nextHSP;
>     print PARSED_OUTPUT_FILE '-'x60 , "\n\n";
>     print PARSED_OUTPUT_FILE "Percentage: " , $hsp->percent  , "\n";
>     print PARSED_OUTPUT_FILE "Length: " , $hsp->length , "\n";
>     print PARSED_OUTPUT_FILE "Match: " , $hsp->match , "\n";   
>     print PARSED_OUTPUT_FILE "Positive: " , $hsp->positive , "\n\n";
>     print PARSED_OUTPUT_FILE "QueryStart: " , 
> $hsp->query->start , "\n";
>     print PARSED_OUTPUT_FILE "QueryEnd: " , $hsp->query->end , "\n";
>     print PARSED_OUTPUT_FILE "HitStart: " , $hsp->hit->start 
> , "\n";    
>     print PARSED_OUTPUT_FILE "HitEnd: " , $hsp->hit->end , "\n"; 
>     print PARSED_OUTPUT_FILE "QuerySeq:    " , $hsp->querySeq , "\n";
>     print PARSED_OUTPUT_FILE "homologySeq: " , 
> $hsp->homologySeq , "\n";
>     print PARSED_OUTPUT_FILE "sbjctSeq:    " , $hsp->sbjctSeq , "\n";
>    print PARSED_OUTPUT_FILE '-'x60 , "\n";
> }
> 
> 
> **************************************************************
> *********************************************************
> 
> 
> Any help you are able to provide is greatly appreciated.
> 
> Many thanks
> Omid
> 
> 
> 



More information about the Bioperl-l mailing list