[Bioperl-l] BLASTing with a seqio/seq object...

Sendu Bala bix at sendu.me.uk
Fri Dec 1 04:00:18 EST 2006


Samantha Thompson wrote:

You missed a step...


> use strict;
> use Bio::Perl;
> use Bio::Seq;
> use Bio::SeqIO;
> 
> use Bio::Tools::Run::RemoteBlast;
> use Bio::SearchIO;
> 
> #seq bit
> 
> #$seq_obj = Bio::Seq->new(-format => 'fasta');
> 
> my $seqio_obj = Bio::SeqIO->new(-file => 
> "/biol/people/mres/st537/MalEfasta.txt", -format => 'fasta');
> 
> my $seq_obj = $seqio_obj->next_seq;
> 
> 
> 
> #blast bit
> 
> my $remote_blast = Bio::Tools::Run::RemoteBlast->new (
>          -prog => 'blastp', -db => 'nr', -expect => '1e-15' );
> 
> my $blast_report = $remote_blast->submit_blast($seq_obj);

Go back to the Bptutorial:
http://www.bioperl.org/wiki/Bptutorial.pl#Running_BLAST_.28using_RemoteBlast.pm.29

And you'll see that submit_blast doesn't return a SearchIO object.

For a complete working example see the synopsis for RemoteBlast:
http://doc.bioperl.org/bioperl-live/Bio/Tools/Run/RemoteBlast.html


> #new part for SearchIO...
> 
> while( my $result = $blast_report->next_result ) {
>   while( my $hit = $result->next_hit ) {
>    while( my $hsp = $hit->next_hsp ) {
>     if( $hsp->length('total') > 100 ) {
>      if ( $hsp->percent_identity >= 75 ) {
>       print "Hit= ",       $hit->name,
>             ",Length=",     $hsp->length('total'),
>             ",Percent_id=", $hsp->percent_identity, "\n";
>      }
>     }
>    } 
>   }
> }


More information about the Bioperl-l mailing list