# [Bioperl-l] OK for aa seq but not a na seq on RemoteBlast.pmversion 1.28

Chris Fields cjfields at uiuc.edu
Wed Feb 15 15:17:27 EST 2006

This looks like a genuine bug and may be something that changed in BLASTN
text output; I'm getting it here, too.  Running verbose shows that text
output is returned, so, from that and from the stack trace it looks like
another error in text parsing in Bio::SearchIO::blast.  Bio::SearchIO::blast
line 1172 throws a conditional exception.

I'm adding this to bug 1934 in bugzilla (reference to your email and this
response) for now.  I'll try messing around with it when I can; I'm really
busy this week.  I'll also forward this to Roger Hall.

Christopher Fields
Postdoctoral Researcher - Switzer Lab
Dept. of Biochemistry
University of Illinois Urbana-Champaign

> -----Original Message-----
> From: bioperl-l-bounces at lists.open-bio.org [mailto:bioperl-l-
> bounces at lists.open-bio.org] On Behalf Of Guojun Yang
> Sent: Wednesday, February 15, 2006 1:40 PM
> To: Chris Fields; bioperl-l at lists.open-bio.org
> Subject: [Bioperl-l] OK for aa seq but not a na seq on
> RemoteBlast.pmversion 1.28
>
> Hi, Chris,
> Finally the remoteblast test script works for the amino.fa query. but when
> I try a nucleic acid sequence (see below), Error occurs:
> "
> waiting........
> ------------- EXCEPTION  -------------
> MSG: no data for midline  Features flanking this part of subject sequence:
> STACK Bio::SearchIO::blast::next_result
> /usr/lib/perl5/site_perl/5.8.3/Bio/Searc
> hIO/blast.pm:1172
> STACK toplevel remoteblast_test:40
> "
> The query sequence is:
> CTCCCTCCGTCTCAAAATATTTGACGCCGTTGACTTTTTACTAAAAATGTTTGACCGTTC
> GTCTTATTTAAAAAATTTAAGTAATTATTAATTCTTTTCCTATCATTTGATTTATTGTTA
> AATATATTTTTATGTATACATATAGTTTTACATATTTCACAAAAAATTTTGAATAAGACG
> AACGGTCAAATATGTTTTAAAAAGTCAACGGTGTCAAACATTTAGAAACGGAGGGAG
>
> The script (basically same as the remoteblast test, I only changed
> database to 'nr' and program to 'blastn' and filename to 'ost3'):
> #!/usr/bin/perl
>
> use Bio::SeqIO;
> use Bio::Seq;
> use Bio::Tools::Run::RemoteBlast;
> use Bio::SearchIO;
> use strict;
> my \$prog='blastn';
> my \$db='nr';
> my \$e_val=1e-10;
> my @params=( -prog=>\$prog,
> 	-data=>\$db,
> 	-expect=>\$e_val,
> my \$factory=Bio::Tools::Run::RemoteBlast->new(@params);
>
> my \$v = 1;
>
> my \$str = Bio::SeqIO->new(-file=>'ost3' , -format => 'fasta' );
>
> while (my \$input = \$str->next_seq()){
>   #Blast a sequence against a database:
>   #Alternatively, you could  pass in a file with many
>   #sequences rather than loop through sequence one at a time
>   #Remove the loop starting 'while (my \$input = \$str->next_seq())'
>   #and swap the two lines below for an example of that.
>   my \$r = \$factory->submit_blast(\$input);
>   #my \$r = \$factory->submit_blast('amino.fa');
>   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 {
>         my \$result = \$rc->next_result();
>         #save the output
>         my \$filename = \$result->query_name()."\.out";
>         \$factory->save_output(\$filename);
>         \$factory->remove_rid(\$rid);
>         print "\nQuery Name: ", \$result->query_name(), "\n";
>         while ( my \$hit = \$result->next_hit ) {
>           next unless ( \$v > 0);
>           print "\thit name is ", \$hit->name, "\n";
>           while( my \$hsp = \$hit->next_hsp ) {
>             print "\t\tscore is ", \$hsp->score, "\n";
>           }
>         }
>       }
>     }
>   }
> }
>
>
> Do you think there might still be something in the NCBI output format?
>
> Thank you,
> Guojun
>
>
>
>
> Guojun Yang
> Department of Plant Biology
> University of Georgia
> Tel: 706-542-1857
> Fax: 706-542-1805
> http://www.arches.uga.edu/~guojun
>
>
>
> ----- Original Message -----
> From: Chris Fields [mailto:cjfields at uiuc.edu]
> To: gyang at plantbio.uga.edu, bioperl-l at lists.open-bio.org
> Subject: FW: [Bioperl-l] more on RemoteBlast.pm version 1.2
>
>
> > Sorry, forgot to add that I didn't see the regex issue that you
> mentioned.
> > It could be a perl-related issue.  Try the fixes I mentioned and see
> what
> > happens.
> > > Christopher Fields
> > Postdoctoral Researcher - Switzer Lab
> > Dept. of Biochemistry
> > University of Illinois Urbana-Champaign
> > > > > -----Original Message-----
> > > From: Chris Fields [mailto:cjfields at uiuc.edu]
> > > Sent: Tuesday, February 14, 2006 12:36 PM
> > > To: 'gyang at plantbio.uga.edu'
> > > Subject: RE: [Bioperl-l] more on RemoteBlast.pm version 1.2
> > > > > It's a good habit to always add single quotes around words.  The
> perl
> > > interpreter may think a single bare word is a subroutine or perlfunc
> > > called with no args so will try to find a subroutine named blastp().
> My
> > > debugger actually gives the error that the bare word blastp may
> conflict
> > > with a future reserved word.  Like you said, 'use strict' will point
> that
> > > out.
> > > > > As for the regex, it should match all the blast programs at NCBI
> (blastp,
> > > blastn, blastx, tblastn, tblastx) and is built-in to make sure nothing
> > > else passes through.
> > > > > So, if you are using the script below, there are several errors.
> The bare
> > > words for \$prog and \$db need quotes, and the flags for you @params
> array
> > > don't have a dash before them.  I get this after adding quotes but
> before
> > > adding the dashes to @params:
> > > > > C:\Perl\Scripts>test_blast.pl
> > > > > ------------- EXCEPTION: Bio::Root::Exception -------------
> > > MSG:
> > > STACK: Error::throw
> > > STACK: Bio::Root::Root::throw C:\Perl\src\bioperl\bioperl-
> > > live/Bio/Root/Root.pm:328
> > > STACK: Bio::Tools::Run::RemoteBlast::submit_parameter
> > > C:\Perl\src\bioperl\bioperl-live/Bio/Tools/Run/RemoteBlast.pm:325
> > > STACK: Bio::Tools::Run::RemoteBlast::new C:\Perl\src\bioperl\bioperl-
> > > live/Bio/Tools/Run/RemoteBlast.pm:256
> > > STACK: C:\Perl\Scripts\test_blast.pl:15
> > > -----------------------------------------------------------
> > > > > The last line indicates a problem with this line:
> > > > > my \$factory=Bio::Tools::Run::RemoteBlast->new(@params);
> > > > > Changing the @params to this:
> > > > > my @params=( -prog=>\$prog,
> > > 	-data=>\$db,
> > > 	-expect=>\$e_val,
> > > > > fixes it, and I get output as expected.
> > > > > Christopher Fields
> > > Postdoctoral Researcher - Switzer Lab
> > > Dept. of Biochemistry
> > > University of Illinois Urbana-Champaign
> > > > > > > > -----Original Message-----
> > > > From: Guojun Yang [mailto:gyang at plantbio.uga.edu]
> > > > Sent: Tuesday, February 14, 2006 11:48 AM
> > > > To: Chris Fields; bioperl-l at lists.open-bio.org
> > > > Subject: RE: [Bioperl-l] more on RemoteBlast.pm version 1.2
> > > >
> > > > Hi, Chris,
> > > > When I tried with the perldoc script, It did not work either. First
> it
> > > > says \$prog can not be bare word if I "use strict". I added quotes on
> the
> > > > words, then it says the value for \$prog does not match expression
> > > > t?blast[pnx]. Rejecting. STACK ...RemoteBlast.pm 325 and 256.  The
> > > script
> > > > is shown below. Why is the expression "t?blast[pnx]"?
> > > >
> > > > #!/usr/bin/perl
> > > >
> > > > use Bio::SeqIO;
> > > > use Bio::Seq;
> > > > use Bio::Tools::Run::RemoteBlast;
> > > > use Bio::SearchIO;
> > > >
> > > >
> > > > my \$prog=blastp;
> > > > my \$db=swissprot;
> > > > my \$e_val=1e-10;
> > > > my @params=( prog=>\$prog,
> > > > 	data=>\$db,
> > > > 	expect=>\$e_val,
> > > > my \$factory=Bio::Tools::Run::RemoteBlast->new(@params);
> > > >
> > > > my \$v = 1;
> > > >
> > > > my \$str = Bio::SeqIO->new(-file=>'amino.fa' , -format => 'fasta' );
> > > >
> > > > while (my \$input = \$str->next_seq()){
> > > >   #Blast a sequence against a database:
> > > >   #Alternatively, you could  pass in a file with many
> > > >   #sequences rather than loop through sequence one at a time
> > > >   #Remove the loop starting 'while (my \$input = \$str->next_seq())'
> > > >   #and swap the two lines below for an example of that.
> > > >   my \$r = \$factory->submit_blast(\$input);
> > > >   #my \$r = \$factory->submit_blast('amino.fa');
> > > >   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 {
> > > >         my \$result = \$rc->next_result();
> > > >         #save the output
> > > >         my \$filename = \$result->query_name()."\.out";
> > > >         \$factory->save_output(\$filename);
> > > >         \$factory->remove_rid(\$rid);
> > > >         print "\nQuery Name: ", \$result->query_name(), "\n";
> > > >         while ( my \$hit = \$result->next_hit ) {
> > > >           next unless ( \$v > 0);
> > > >           print "\thit name is ", \$hit->name, "\n";
> > > >           while( my \$hsp = \$hit->next_hsp ) {
> > > >             print "\t\tscore is ", \$hsp->score, "\n";
> > > >           }
> > > >         }
> > > >       }
> > > >     }
> > > >   }
> > > > }
> > > >
> > > > Thank you for your help!
> > > >
> > > >
> > > > Guojun
> > > > Department of Plant Biology
> > > > University of Georgia
> > > >
> > > > ----- Original Message -----
> > > > From: Chris Fields [mailto:cjfields at uiuc.edu]
> > > > To: gyang at plantbio.uga.edu
> > > > Subject: RE: [Bioperl-l] more on RemoteBlast.pm version 1.28
> > > >
> > > >
> > > > > Try two things:
> > > > > > 1)  Use a much simpler script, like the one in 'perldoc
> > > > > Bio::Tools::Run::RemoteBlast'.  If this fixes it, there's
> something
> > > > wrong
> > > > > with the logic in your subroutine:
> > > > > > my \$v = 1;
> > > > > > my \$str = Bio::SeqIO->new(-file=>'amino.fa' , -format => 'fasta'
> );
> > > > > > while (my \$input = \$str->next_seq()){
> > > > >   #Blast a sequence against a database:
> > > > >   #Alternatively, you could  pass in a file with many
> > > > >   #sequences rather than loop through sequence one at a time
> > > > >   #Remove the loop starting 'while (my \$input = \$str->next_seq())'
> > > > >   #and swap the two lines below for an example of that.
> > > > >   my \$r = \$factory->submit_blast(\$input);
> > > > >   #my \$r = \$factory->submit_blast('amino.fa');
> > > > >   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 {
> > > > >         my \$result = \$rc->next_result();
> > > > >         #save the output
> > > > >         my \$filename = \$result->query_name()."\.out";
> > > > >         \$factory->save_output(\$filename);
> > > > >         \$factory->remove_rid(\$rid);
> > > > >         print "\nQuery Name: ", \$result->query_name(), "\n";
> > > > >         while ( my \$hit = \$result->next_hit ) {
> > > > >           next unless ( \$v > 0);
> > > > >           print "\thit name is ", \$hit->name, "\n";
> > > > >           while( my \$hsp = \$hit->next_hsp ) {
> > > > >             print "\t\tscore is ", \$hsp->score, "\n";
> > > > >           }
> > > > >         }
> > > > >       }
> > > > >     }
> > > > >   }
> > > > > }
> > > > > > 2) Try the RemoteBlast from Bugzilla and see if that works.  It
> > > really
> > > > > shouldn't make that much of a difference, but I noticed that the
> CVS
> > > > > RemoteBlast (1.28) was changed in Dec 2005, after bioperl-1.5.1
> was
> > > > > released; the Bugzilla version is based off CVS.
> > > > > > Christopher Fields
> > > > > Postdoctoral Researcher - Switzer Lab
> > > > > Dept. of Biochemistry
> > > > > University of Illinois Urbana-Champaign
> > > > > > > -----Original Message-----
> > > > > > From: bioperl-l-bounces at lists.open-bio.org [mailto:bioperl-l-
> > > > > > bounces at lists.open-bio.org] On Behalf Of Guojun Yang
> > > > > > Sent: Monday, February 13, 2006 3:00 PM
> > > > > > To: bioperl-l at lists.open-bio.org
> > > > > > Subject: Re: [Bioperl-l] more on RemoteBlast.pm version 1.28
> > > > > > > > Thanks, Chris,
> > > > > > I installed version 1.5.1 and replaced the blast.pm file with
> the
> > > one
> > > > from
> > > > > > your bug report. The running version is 1.5 when I use the
> command
> > > you
> > > > > > sent me. But when I tried the script, it doesn't change much. My
> > > > > > remoteblast code (portion) is here:
> > > > > > > > sub search {
> > > > > > local
> > > > > > local \$Bio::Tools::Run::RemoteBlast::HEADER{'WORD_SIZE'}=7;
> > > > > > local
> > > > > > local
> > > > > >
> > > > > > 'no';
> > > > > > local \$Bio::Tools::Run::RemoteBlast::HEADER{'GAPCOSTS'}='3 1';
> > > > > > my \$query = Bio::Seq -> new ( -seq=>"\$_[0]",
> > > > > > 			      -id=>"query",
> > > > > > 			      -desc=>"new seq");
> > > > > > my \$len=\$query->length();
> > > > > > @db=('nr','htgs','wgs');
> > > > > > foreach my \$db (@db) {
> > > > > > my \$factory = Bio::Tools::Run::RemoteBlast->new('-prog'
> =>'blastn',
> > > > > > 						'-data' =>"\$db",
> > > > > >
> > '-expect'=>"\$E_value");
> > > > > > > > > > my \$blast_report = \$factory->submit_blast(\$query);
> > > > > > > > my @rids = \$factory->each_rid();
> > > > > > foreach my \$rid ( @rids ) {
> > > > > >     print STDERR "\$rid\n";
> > > > > > }
> > > > > > # RID = Remote Blast ID (e.g: 1017772174-16400-6638)
> > > > > > print STDERR "waiting...";
> > > > > > sleep 60;
> > > > > > > > foreach my \$rid ( @rids ) {
> > > > > >     my \$rc = \$factory->retrieve_blast(\$rid);
> > > > > >     while (!ref(\$rc) ) {
> > > > > > 	if( \$rc < 0 ) {
> > > > > > # retrieve_blast returns -1 on error
> > > > > > 	    \$factory->remove_rid(\$rid);
> > > > > > 	    print "Error!\n";
> > > > > > 	    send_error(\$email,\$function,\$seqname,\$queryname[\$ST]);
> > > > > > 	    die "Can't retrieve \$rid";
> > > > > > 	} if (\$rc==0) { # retrieve_blast returns 0 on 'job not
> > > finished'
> > > > > > 	    sleep 60;
> > > > > > 	    \$rc = \$factory->retrieve_blast(\$rid);
> > > > > > 	}
> > > > > >     }
> > > > > >     if (ref(\$rc)) {
> > > > > > 	print STDERR "Done.\n";
> > > > > > 	 while( my \$result = \$rc->next_result) {
> > > > > > 	    while( my \$hit = \$result->next_hit()) {
> > > > > > 	    	\$hit_name=\$hit->name;
> > > > > > 		\$hit_name =~ /\S+[|](\S+)[.]\d+[|].*/;
> > > > > > 		\$name=\$1;
> > > > > > 		@left_plus_start=();
> > > > > > 		@left_plus_end=();
> > > > > > 		@left_minus_start=();
> > > > > > 		@left_minus_end=();
> > > > > > 		@right_plus_start=();
> > > > > > 		@right_plus_end=();
> > > > > > 		@right_minus_start=();
> > > > > > 		@right_minus_end=();
> > > > > > > > 		if (!(\$name =~ /^[a-zA-Z][a-zA-Z]\_\d{6}/i))
{
> > > > > > 		while( my \$hsp = \$hit->next_hsp()) {
> > > > > > ......
> > > > > > > > It was working quite well before around October laster year,
> but
> > > > it has
> > > > > > stopped since then, When a submission is sent via a webpage, the
> cgi
> > > > > > starts to work and use a memory of ~20 Mb. Then it hangs there,
> > > > finally
> > > > > > the expected email is received but without real results although
> it
> > > > does
> > > > > > contain something from other parts of the script. Apparently the
> > > > search
> > > > > > sub did not return anything (I know there is something should be
> > > > > > returned.). Is it also possible the format of the NCBI output
> for
> > > each
> > > > > > result has changed?
> > > > > > Thank you,
> > > > > > Guojun
> > > > > > > > > > Department of Plant Biology
> > > > > > University of Georgia
> > > > > > > > > > > > ----- Original Message -----
> > > > > > From: Chris Fields [mailto:cjfields at uiuc.edu]
> > > > > > To: gyang at plantbio.uga.edu, bioperl-l at lists.open-bio.org
> > > > > > Subject: RE: [Bioperl-l] more on RemoteBlast.pm version 1.28
> > > > > > > > > > > How do you know two versions are installed (i.e. how
> are
> > > you
> > > > checking
> > > > > > the
> > > > > > > version)?  Do you see have two complete bioperl distributions
> (in
> > > > two
> > > > > > > separate directories) or are you looking in modules?  Here's
> the
> > > way
> > > > to
> > > > > > > check the version (from the FAQ):
> > > > > > > > perl -MBio::Root::Version -e 'print
> > > > \$Bio::Root::Version::VERSION,"\n"'
> > > > > > > > If you have two full bioperl distributions on your computer,
> > > > normally
> > > > > > only
> > > > > > > one will be in use unless you have explicitly set the
> environment
> > > > > > variable
> > > > > > > PERL5LIB.  The PERL5LIB  directories will be searched first
> before
> > > > your
> > > > > > > normal perl directory list (@INC) is searched.  You MAY get
> some
> > > > mixing
> > > > > > > then, but only if perl can't find a particular module in the
> path
> > > > > > designated
> > > > > > > in PERL5LIB; then it will progress through the directories
> listed
> > > in
> > > > > > @INC.
> > > > > > > This may happen if a module is unique to a particular release,
> but
> > > > > > shouldn't
> > > > > > > happen for the majority of modules, including RemoteBlast.
> You
> > > can
> > > > > > check
> > > > > > > what @INC and PERL5LIB are set to by using 'perl -V'.  @INC
> will
> > > > differ
> > > > > > > depending on your OS, perl build, etc.
> > > > > > > > Regardless, if you follow the directions for installing
> bioperl
> > > > for
> > > > > > your
> > > > > > > system ('perl Makefile.PL', 'make', 'make test', 'make
> install',
> > > > unless
> > > > > > you
> > > > > > > explicitly change the installation directory when using 'perl
> > > > > > Makefile.PL'),
> > > > > > > then 'uninstalling' Bioperl shouldn't be a problem as it will
> > > > install
> > > > > > the
> > > > > > > Bioperl distribution you downloaded over the old version in
> @INC.
> > > > See
> > > > > > this
> > > > > > > page:
> > > > > > > > http://bioperl.open-bio.org/SRC/bioperl-live/INSTALL
> > > > > > > > for more details.
> > > > > > > > Christopher Fields
> > > > > > > Postdoctoral Researcher - Switzer Lab
> > > > > > > Dept. of Biochemistry
> > > > > > > University of Illinois Urbana-Champaign
> > > > > > > > > > -----Original Message-----
> > > > > > > > From: bioperl-l-bounces at lists.open-bio.org [mailto:bioperl-
> l-
> > > > > > > > bounces at lists.open-bio.org] On Behalf Of Guojun Yang
> > > > > > > > Sent: Monday, February 13, 2006 12:32 PM
> > > > > > > > To: bioperl-l at lists.open-bio.org
> > > > > > > > Subject: [Bioperl-l] more on RemoteBlast.pm version 1.28
> > > > > > > > > > Hi, Chris,
> > > > > > > > I do have different versions of bioperl on my Linux machine
> > > (1.4.
> > > > and
> > > > > > > > 1.5.0), this may be the problem. Should I just install
> bioperl-
> > > > 1.5.1
> > > > > > or I
> > > > > > > > need to uninstall and remove the previous versions. I could
> not
> > > > find
> > > > > > any
> > > > > > > > hint on uninstalling bioperl on linux. Could you please give
> me
> > > > some
> > > > > > > > suggestion?
> > > > > > > > Thanks,
> > > > > > > > Guojun
> > > > > > > > > > Department of Plant Biology
> > > > > > > > University of Georgia
> > > > > > > >       _____
> > > > > > > > > >   From: Chris Fields [mailto:cjfields at uiuc.edu]
> > > > > > > > To: gyang at plantbio.uga.edu, bioperl-l at lists.open-bio.org
> > > > > > > > Sent: Mon, 13 Feb 2006 11:45:14 -0500
> > > > > > > > Subject: RE: [Bioperl-l] more question regarding
> RemoteBlast.pm
> > > > > > version
> > > > > > > > 1.28
> > > > > > > > > > > > > > If you're using RemoteBlast 1.28, then you've
> likely
> > > > > > updated from CVS
> > > > > > > > which isn't the latest fix.
> > > > > > > > > > Make sure that you check the following:
> > > > > > > > > > 1) Always post to the mailing list:
> > > > > > > >
> http://www.bioperl.org/wiki/HOWTO:Beginners#Getting_Assistance .
> > > > > > > > > > 2) You must have the complete bioperl-1.5.1 or bioperl-
> live
> > > > (CVS)
> > > > > > > > installed first.  Perform a clean installation; do not
> > > > only
> > > > > > > > Bio::SearchIO::blast and Bio::Tools::Run::RemoteBlast, as we
> > > can't
> > > > > > > > guarantee that mixing modules from old and new distributions
> > > (1.4
> > > > and
> > > > > > > > 1.5.1, for instance) will work.  A bioperl-1.5.1 or bioperl-
> live
> > > > > > > > installation will allow text output from BLAST v.2.2.12 to
> be
> > > > saved
> > > > > > and
> > > > > > > > parsed; it will not parse the newest BLAST text output from
> NCBI
> > > > > > (v2.2.13)
> > > > > > > > but it should still save it. I believe as long as
> next_results()
> > > > isn't
> > > > > > > > called, it will work.
> > > > > > > > > > 3) The bug fixes for the above issue with parsing BLAST
> > > 2.2.13
> > > > > > text output
> > > > > > > > are NOT in CVS; they haven't been cleared and checked in by
> > > Roger
> > > > Hall
> > > > > > > > (who's now taking care of RemoteBlast) and the powers that
> be
> > > > (Jason
> > > > > > or
> > > > > > > > whomever is in charge of Bio::SearchIO).  They can be found
> in
> > > > > > Bugzilla:
> > > > > > > > > > http://bugzilla.bioperl.org/show_bug.cgi?id=1934
> > > > > > > > http://bugzilla.bioperl.org/show_bug.cgi?id=1935
> > > > > > > > > > The fix in RemoteBlast in Bugzilla (#1935) is to allow
> the
> > > > option
> > > > > > of
> > > > > > > > saving XML output, so isn't necessary if you don't plan on
> using
> > > > this
> > > > > > > > option.  And, remember, they haven't been committed yet to
> CVS,
> > > > which
> > > > > > > > means that the final version will change to refle the new
> > > version.
> > > > > > > > > > > > Christopher Fields
> > > > > > > > Postdoctoral Researcher - Switzer Lab
> > > > > > > > Dept. of Biochemistry
> > > > > > > > University of Illinois Urbana-Champaign
> > > > > > > > > > > >     _____
> > > > > > > > > > > > From: Guojun Yang [mailto:gyang at plantbio.uga.edu]
> > > > > > > > Sent: Monday, February 13, 2006 9:26 AM
> > > > > > > > To: Chris Fields
> > > > > > > > Subject: RE: [Bioperl-l] more question regarding
> RemoteBlast.pm
> > > > > > version
> > > > > > > > 1.28
> > > > > > > > > > > > Hi, Chris
> > > > > > > > > > Thanks for your suggestion, however, it doesn't seem to
> work
> > > > for
> > > > > > my cgi
> > > > > > > > even after I replace both blast.pm and RemoteBlast.pm. I
> didn't
> > > > even
> > > > > > get
> > > > > > > > any RID. Is there any suggestion?
> > > > > > > > > > > > > > Guojun
> > > > > > > > > > > > Guojun Yang
> > > > > > > > Department of Plant Biology
> > > > > > > > University of Georgia
> > > > > > > > Tel: 706-542-1857
> > > > > > > > Fax: 706-542-1805
> > > > > > > > http://www.arches.uga.edu/~guojun
> > > > > > > >     _____
> > > > > > > > > > > > From: Chris Fields [mailto:cjfields at uiuc.edu]
> > > > > > > > To: gyang at plantbio.uga.edu, bioperl-l at bioperl.org
> > > > > > > > Sent: Fri, 03 Feb 2006 16:07:29 -0500
> > > > > > > > Subject: RE: [Bioperl-l] more question regarding
> RemoteBlast.pm
> > > > > > version
> > > > > > > > 1.28
> > > > > > > > > > I would say give the new code a try, but realize that it
> > > > hasn't
> > > > > > been
> > > > > > > > checked
> > > > > > > > in (like I said below). I will try going over the modified
> > > > > > > > Bio::SearchIO::blast again this weekend to see if there is
> > > > anything I
> > > > > > > > might
> > > > > > > > have missed. The changed order in the header of BLAST text
> > > output
> > > > has
> > > > > > me a
> > > > > > > > bit worried that it might not catch everything, but it at
> least
> > > > > > doesn't
> > > > > > > > hang
> > > > > > > > in the while() loop I described in the bug report below (bug
> > > > #1934)
> > > > > > and
> > > > > > > > seems to process everything fine.
> > > > > > > > > > If you want more stability in the code, you might
> consider
> > > > > > changing over
> > > > > > > > to
> > > > > > > > XML output and parsing with Bio::SearchIO::blastxml. There
> are
> > > > some
> > > > > > > > changes
> > > > > > > > in Bio::Tools::Run::RemoteBlast (bug #1935) that accommodate
> > > > saving
> > > > > > XML
> > > > > > > > output, but I believe it parses everything regardless. If
> you
> > > look
> > > > > > back
> > > > > > > > the
> > > > > > > > last month or so there has been a bit of discussion here
> > > it.
> > > > > > Jason
> > > > > > > > describes a bit on how to set up RemoteBlast for XML:
> > > > > > > > > > http://bioperl.org/news/2005/11/06/getting-blastxml-
> using-
> > > > > > remoteblast/
> > > > > > > > > > Christopher Fields
> > > > > > > > Postdoctoral Researcher - Switzer Lab
> > > > > > > > Dept. of Biochemistry
> > > > > > > > University of Illinois Urbana-Champaign
> > > > > > > > > > > -----Original Message-----
> > > > > > > > > From: bioperl-l-bounces at lists.open-bio.org
> [mailto:bioperl-l-
> > > > > > > > > bounces at lists.open-bio.org] On Behalf Of Guojun Yang
> > > > > > > > > Sent: Friday, February 03, 2006 1:45 PM
> > > > > > > > > To: bioperl-l at bioperl.org
> > > > > > > > > Subject: [Bioperl-l] more question regarding
> RemoteBlast.pm
> > > > version
> > > > > > 1.28
> > > > > > > > >
> > > > > > > > > Hi, Everybody,
> > > > > > > > > I see this post and am wondering if this is the reason for
> the
> > > > > > > > > malfunctionning of my webserver. We set up a webserver
> named
> > > > MAK,
> > > > > > for
> > > > > > > > MITE
> > > > > > > > > sequence analysis. It was working very well until around
> > > > November
> > > > > > 2005,
> > > > > > > > > when it stopped returning any result (the site is fine and
> > > seems
> > > > to
> > > > > > be
> > > > > > > > > doing sth after submission). In the CGI script, I used
> > > > remoteblast
> > > > > > (that
> > > > > > > > > work was done in 2003) to do searches. I currently do not
> have
> > > > > > > > > the server because I moved. Quite several people sent
> emails
> > > to
> > > > us
> > > > > > about
> > > > > > > > > its malfunctioning. Is there any suggestion on fixing the
> > > > problem?
> > > > > > > > Should
> > > > > > > > > I simplily ask the remoteblast.pm be replaced with the new
> > > > version?
> > > > > > > > > Thanks a lot,
> > > > > > > > > Guojun
> > > > > > > > >
> > > > > > > > > Department of Plant Biology
> > > > > > > > > University of Georgia
> > > > > > > > > Tel: 706-542-1857
> > > > > > > > > Fax: 706-542-1805
> > > > > > > > > http://www.arches.uga.edu/~guojun
> > > > > > > > > _____
> > > > > > > > >
> > > > > > > > > From: Chris Fields [mailto:cjfields at uiuc.edu]
> > > > > > > > > To: 'Nagesh Chakka' [mailto:nagesh.chakka at anu.edu.au],
> 'Huang
> > > > Jian'
> > > > > > > > > [mailto:hjian at kuicr.kyoto-u.ac.jp], 'bioperl-l'
> > > [mailto:bioperl-
> > > > > > > > > l at bioperl.org]
> > > > > > > > > Sent: Fri, 03 Feb 2006 10:45:23 -0500
> > > > > > > > > Subject: Re: [Bioperl-l] RemoteBlast.pm version 1.28
> > > > > > > > >
> > > > > > > > > Like Nagesh says, try the latest RemoteBlast from bioperl-
> live
> > > > CVS.
> > > > > > It
> > > > > > > > > will
> > > > > > > > > work for saving text output. However, it will not parse
> > > anything
> > > > > > using
> > > > > > > > > next_result (it will likely hang) and will not save XML
> > > format.
> > > > See
> > > > > > > > these
> > > > > > > > > bugs:
> > > > > > > > >
> > > > > > > > > http://bugzilla.bioperl.org/show_bug.cgi?id=1934
> > > > > > > > > http://bugzilla.bioperl.org/show_bug.cgi?id=1935
> > > > > > > > >
> > > > > > > > > for explanations and possible fixes (changes to
> RemoteBlast
> > > and
> > > > > > > > > Bio::SearchIO::blast). Note that these haven't been
> checked in
> > > > yet
> > > > > > so
> > > > > > > > are
> > > > > > > > > still not included in bioperl-live; they may be further
> > > modified
> > > > > > before
> > > > > > > > > committing to CVS. If you're not worried about XML, you
> could
> > > > just
> > > > > > try
> > > > > > > > the
> > > > > > > > > first fix, which is a change to SearchIO::blast.
> > > > > > > > >
> > > > > > > > > Nagesh, I remember you posting to the list a month ago
> using a
> > > > > > script
> > > > > > > > > which
> > > > > > > > > had problems; the script you used saves the output but
> doesn't
> > > > > > actually
> > > > > > > > > parse it (i.e. you don't use next_result() to go through
> the
> > > > data).
> > > > > > Is
> > > > > > > > the
> > > > > > > > > version of BLAST in your text output 2.2.12 or 2.2.13?
> Have
> > > you
> > > > > > tried
> > > > > > > > > parsing the output using "-readmethod => SearchIO" or "-
> > > > > > =>
> > > > > > > > > blast"
> > > > > > > > > using your version of RemoteBlast and method
> next_result()?
> > > Like
> > > > > > below
> > > > > > > > > (from
> > > > > > > > > perldoc):
> > > > > > > > >
> > > > > > > > > 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 { # parsing
> > > > > > > > > starts here
> > > > > > > > > my \$result = \$rc->next_result(); # it should hang
> > > > > > > > > here
> > > > > > > > > #save the output
> > > > > > > > > my \$filename = \$result->query_name()."\.out";
> > > > > > > > > \$factory->save_output(\$filename);
> > > > > > > > > \$factory->remove_rid(\$rid);
> > > > > > > > > print "\nQuery Name: ", \$result->query_name(), "\n";
> > > > > > > > > while ( my \$hit = \$result->next_hit ) {
> > > > > > > > > next unless ( \$v > 0);
> > > > > > > > > print "\thit name is ", \$hit->name, "\n";
> > > > > > > > > while( my \$hsp = \$hit->next_hsp ) {
> > > > > > > > > print "\t\tscore is ", \$hsp->score, "\n";
> > > > > > > > > }
> > > > > > > > > }
> > > > > > > > > }
> > > > > > > > > }
> > > > > > > > > }
> > > > > > > > > }
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > My script hanged if I used next_result() in any way prior
> to
> > > the
> > > > > > fixes.
> > > > > > > > I
> > > > > > > > > want to see how many others are having the same issues
> with
> > > > parsing
> > > > > > > > using
> > > > > > > > > the CVS version of bioperl-live.
> > > > > > > > >
> > > > > > > > > Christopher Fields
> > > > > > > > > Postdoctoral Researcher - Switzer Lab
> > > > > > > > > Dept. of Biochemistry
> > > > > > > > > University of Illinois Urbana-Champaign
> > > > > > > > >
> > > > > > > > > > -----Original Message-----
> > > > > > > > > > From: bioperl-l-bounces at lists.open-bio.org
> [mailto:bioperl-
> > > l-
> > > > > > > > > > bounces at lists.open-bio.org] On Behalf Of Nagesh Chakka
> > > > > > > > > > Sent: Thursday, February 02, 2006 7:24 PM
> > > > > > > > > > To: Huang Jian; bioperl-l
> > > > > > > > > > Subject: Re: [Bioperl-l] RemoteBlast.pm version 1.28
> > > > > > > > > >
> > > > > > > > > > Hi Huang,
> > > > > > > > > > Thanks for the message. The older version of
> RemoteBlast.pm
> > > > works
> > > > > > on
> > > > > > > > the
> > > > > > > > > > logic of checking the temporary file size to determine
> > > whether
> > > > the
> > > > > > > > Blast
> > > > > > > > > > results are ready. This condition is not getting
> satisfied
> > > may
> > > > be
> > > > > > due
> > > > > > > > to
> > > > > > > > > > some changes brought about by NCBI. I had this problem
> > > > recently
> > > > > > and
> > > > > > > > > > figured out that the solution was to use the latest
> version
> > > > which
> > > > > > has
> > > > > > > > > > this problem fixed (does not use file size logic any
> more)
> > > > which
> > > > > > is
> > > > > > > > not
> > > > > > > > > > yet included in the BioPerl package.
> > > > > > > > > > Cheers
> > > > > > > > > > Nagesh
> > > > > > > > > >
> > > > > > > > > > Huang Jian wrote:
> > > > > > > > > >
> > > > > > > > > > > Dear Nagesh,
> > > > > > > > > > >
> > > > > > > > > > > I have replaced my old RemoteBlast.pm (v 1.17) with v
> 1.28
> > > > you
> > > > > > send
> > > > > > > > > > > me. Now it works perfectly!!!
> > > > > > > > > > >
> > > > > > > > > > > Thank you!!
> > > > > > > > > > >
> > > > > > > > > > > Huang
> > > > > > > > > > >
> > > > > > > > > > > ----- Original Message ----- From: "Nagesh Chakka"
> > > > > > > > > > > <nagesh.chakka at anu.edu.au>
> > > > > > > > > > > To: "Huang Jian" <hjian at kuicr.kyoto-u.ac.jp>;
> "bioperl-l"
> > > > > > > > > > > <bioperl-l at bioperl.org>
> > > > > > > > > > > Sent: Friday, February 03, 2006 7:48 AM
> > > > > > > > > > > Subject: Re: [Bioperl-l] Sorry, failure in post on the
> > > net,
> > > > so
> > > > > > still
> > > > > > > > > > > via email
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >> Hi Huang,
> > > > > > > > > > >> I see that you are submitting a sequence for a remote
> > > blast
> > > > > > search.
> > > > > > > > > Can
> > > > > > > > > > >> you check if the RemoteBlast.pm being used is v 1.28
> > > > > > (2005/12/09).
> > > > > > > > If
> > > > > > > > > > >> not I have attached it with this email, try to
> replace it
> > > > with
> > > > > > the
> > > > > > > > > old
> > > > > > > > > > >> one which has a bug.
> > > > > > > > > > >> Let me know if it works.
> > > > > > > > > > >> Nagesh
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > _______________________________________________
> > > > > > > > > > Bioperl-l mailing list
> > > > > > > > > > Bioperl-l at lists.open-bio.org
> > > > > > > > > > http://lists.open-bio.org/mailman/listinfo/bioperl-l
> > > > > > > > >
> > > > > > > > > _______________________________________________
> > > > > > > > > Bioperl-l mailing list
> > > > > > > > > Bioperl-l at lists.open-bio.org
> > > > > > > > > http://lists.open-bio.org/mailman/listinfo/bioperl-l
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > _______________________________________________
> > > > > > > > > Bioperl-l mailing list
> > > > > > > > > Bioperl-l at lists.open-bio.org
> > > > > > > > > http://lists.open-bio.org/mailman/listinfo/bioperl-l
> > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > _______________________________________________
> > > > > > > > Bioperl-l mailing list
> > > > > > > > Bioperl-l at lists.open-bio.org
> > > > > > > > http://lists.open-bio.org/mailman/listinfo/bioperl-l
> > > > > > > >
> > > > > > > > _______________________________________________
> > > > > > Bioperl-l mailing list
> > > > > > Bioperl-l at lists.open-bio.org
> > > > > > http://lists.open-bio.org/mailman/listinfo/bioperl-l
> > > > > >
> > >
>
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/bioperl-l