[Bioperl-l] Trouble using RemoteBlast.pm
Barry Moore
bmoore at genetics.utah.edu
Tue Jan 17 13:34:08 EST 2006
Nagesh-
Did you get this figured out? Your script works as is on my system.
You say temp.out is empty? What does you input sequence
(blastInput.txt) look like?
Barry
> -----Original Message-----
> From: bioperl-l-bounces at portal.open-bio.org [mailto:bioperl-l-
> bounces at portal.open-bio.org] On Behalf Of Hubert Prielinger
> Sent: Monday, January 16, 2006 2:54 PM
> To: Nagesh Chakka; bioperl-l at portal.open-bio.org
> Subject: Re: [Bioperl-l] Trouble using RemoteBlast.pm
>
> Nagesh Chakka wrote:
>
> >Hi All,
> >I was trying to setup a system to perform a remote blast on regular
> basis. I
> >thought this could be best achieved by using BioPerl module and came
> across
> >RemoteBlast.pm
> >I had modified the sample script "bp_remote_blast.pl" which takes a
file
> >containing single FASTA sequence as an input. Also I wanted the blast
> report
> >to be saved in a file for latter use and
> >modified the code as follows
> >I am using the latest version of Bioperl (1.5) on a Fedora platform.
>
>#######################################################################
> >print "$Bio::Root::Version::VERSION\n";
> >use Bio::Tools::Run::RemoteBlast;
> >use strict;
> >my $prog = 'blastp';
> >my $db = 'swissprot';
> >my $e_val= '1e-10';
> >
> >my @params = ( '-prog' => $prog,
> > '-data' => $db,
> > '-expect' => $e_val,
> > '-readmethod' => 'SearchIO' );
> >
> >my $factory = Bio::Tools::Run::RemoteBlast->new(@params);
> >
> >#change a paramter
> >$Bio::Tools::Run::RemoteBlast::HEADER{'ENTREZ_QUERY'} = 'Homo sapiens
> >[ORGN]';
> >
> >#remove a parameter
> >delete $Bio::Tools::Run::RemoteBlast::HEADER{'FILTER'};
> >
> >my $v = 1;
> >#$v is just to turn on and off the messages
> >
> >my $r = $factory->submit_blast('blastInput.txt');
> >
> >print STDERR "waiting..." if( $v > 0 );
> >while ( my @rids = $factory->each_rid )
> >{
> > foreach my $rid ( @rids )
> > {
> > my $rc = $factory->retrieve_blast($rid);
> > if( !ref($rc) )
> > {
> > if( $rc < 0 )
> > {
> > $factory->remove_rid($rid);
> > }
> > print STDERR "." if ( $v > 0 );
> > sleep 5;
> > }
> > else
> > {
> > print "RID $rid\n";
> > $factory->save_output('temp.out');
> > $factory->remove_rid($rid);
> > }
> > }
> >}
> >
>
>#######################################################################
##
> ########
> >
> >This script prints the RID and terminates immediately. Obviously the
> >output file created is empty as the program did not wait for getting
the
> >blast results from the RID.
> >Is there something I am doing wrong and what can I do for the program
to
> wait
> >until the results are ready to be printed to the output file. I could
not
> get
> >much information from the documentation and have no prior experience
with
> >Bioperl.
> >Thanks very much for your attention.
> >Regards
> >Nageshbi
> >_______________________________________________
> >Bioperl-l mailing list
> >Bioperl-l at portal.open-bio.org
> >http://portal.open-bio.org/mailman/listinfo/bioperl-l
> >
> >
> >
> >
> hi nagesh,
> try this, should work, I had the same problem:
>
> .......................
> .......................
>
> else
> {
> print "RID $rid\n";
> $factory->save_output('temp.out');
>
> my $checkinput = $factory->file;
> open(my $fh,"<$checkinput") or die $!;
> while(<$fh>){
> print;
> }
> close $fh;
>
>
> $factory->remove_rid($rid);
> }
> }
> }
>
> regards
> Hubert
>
> PS: are you using the composition based statistics parameter with your
> blast search?
> if yes, is it working?
>
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at portal.open-bio.org
> http://portal.open-bio.org/mailman/listinfo/bioperl-l
More information about the Bioperl-l
mailing list