[Bioperl-l] Retrieve results for an RID
Jason Stajich
jason at cgt.duhs.duke.edu
Mon Jul 26 16:29:24 EDT 2004
On Mon, 26 Jul 2004, Nurcan Mete wrote:
> I get the results properly from NCBI blast using the
> same rid.
>
>
> Though I may be wrong, I guess $rc<0 is not always in
> case of error.
Perhaps. You'll have to look at the logic of the module I don't remember
what are all the cases which trigger -1. It is up to you if you want to
remove the RID when rc < 0 I guess.
>
> What I had realized was:
> Sometimes it takes so long to get the results, and get
> $rc = -1.
> Then I save the RID and try later. both Blast at NCBI
> website and my program
> returns no result at that time.
>
So a timeout I guess. I dunno.
>
> I try again later, after a sufficent time (15-20
> minutes) has passed, then I get the results
> properly from NCBI blast.
> and my
> $factory->retrieve_blast($rid);
> function returns Bio::SearchIO, indicating success.
>
>
> Nurcan Mete.
>
>
>
>
> --- Jason Stajich <jason at cgt.duhs.duke.edu> wrote:
> > ohh - so you're not inventing your own blast + RID
> > system. That is what I
> > took from your 1st mail.
> >
> > What happens when you paste that RID into the box @
> > NCBI?
> >
> > see below also
> > On Mon, 26 Jul 2004, Nurcan Mete wrote:
> >
> > > No, I don't think I am trying to add something to
> > > standard Blast output.
> > >
> > > I use standard Bio::Perl 'blast_sequence' function
> > to
> > > blast my sequences.
> > > In the loop section, I have one small
> > modification: I
> > > insert into database the request ID of the blast
> > that
> > > has failed to be completed by the time.
> > >
> > > LOOP :
> > > while( my @rids = $factory->each_rid) {
> > > foreach my $rid ( @rids ) {
> > > my $rc = $factory->retrieve_blast($rid);
> > > if( !ref($rc) ) {
> > > if( $rc < 0 ) {
> > >
> > > # INSERT INTO TEMP_TABLE
> > > # (request_id) VALUES('$rid')
> >
> > These RIDs are removed because they failed. If $rc
> > < 0 there was an
> > error. You should not be inserting these into your
> > database.
> >
> > If you'd rather just insert all the RIDs into your
> > db initially rather
> > than doing this loop in the first place if what you
> > want to do is then
> > retreive them later anyways.
> >
> > >
> > > $factory->remove_rid($rid);
> > > }
> > > if( $verbose ) {
> > > print STDERR ".";
> > > }
> > > sleep 10;
> > > } else {
> > > $result = $rc->next_result();
> > > $factory->remove_rid($rid);
> > > last LOOP;
> > > }
> > > }
> > > }
> > >
> > >
> > > Then, later (ie. at midnight), I want to retrive
> > > blast results giving this stored RID.
> > > very simply, I use the same function code to
> > achieve
> > > so:
> > >
> > >
> > >
> >
> ----------------------------------------------------------
> > > my @params = ( '-prog' => $prog,
> > > '-expect' => $e_val,
> > > '-readmethod' => 'SearchIO' );
> > >
> > >
> > > my $factory =
> > > Bio::Tools::Run::RemoteBlast->new(@params);
> > >
> > > my $rc = $factory->retrieve_blast($rid);
> > >
> > >
> >
> ----------------------------------------------------------
> > >
> > > $rid: request ID stored in the database
> > >
> > > I omit the following parts of original code:
> > >
> > > my $r = $factory->submit_blast($seq);
> > >
> > > while( my @rids = $factory->each_rid) {
> > > foreach my $rid ( @rids ) {
> > >
> > >
> > >
> > >
> > > so may the problem be with this omission?
> >
> > No that is all fine I guess. Just get rid of the
> > perl part and see what
> > the RID value gives you when you post it on the NCBI
> > site.
> > >
> > >
> > > I hope these details are more explanative.
> > >
> > > Thank you.
> > >
> > >
> > >
> > >
> > >
> > > --- Jason Stajich <jason at cgt.duhs.duke.edu> wrote:
> > > > Hmm - As I said in the perlmonks post you need
> > to
> > > > give more information,
> > > > i.e. a copy of the report which is failing. Is
> > your
> > > > webscript adding
> > > > things to the report which are not part of the
> > > > standard BLAST output, etc.
> > > >
> > > > -j
> > > > On Fri, 23 Jul 2004, Nurcan Mete wrote:
> > > >
> > > > >
> > > > > I want to add some functionality to my
> > website,
> > > > that
> > > > > is similar to "Retrieve results for an RID" of
> > > > NCBI
> > > > > blast.
> > > > > In other words i am trying to retrieve blast
> > > > results
> > > > > using a particular rid.
> > > > >
> > > > >
> > > > > following is the code:
> > > > >
> > > > >
> > > >
> > ----------------------------------------------------
> > > > >
> > > > > my @params = ( '-prog' => 'blastn',
> > > > > '-expect' => 1,
> > > > > '-readmethod' => 'SearchIO' );
> > > > >
> > > > >
> > > > > my $factory =
> > > > > Bio::Tools::Run::RemoteBlast->new(@params);
> > > > >
> > > > > my $rc = $factory->retrieve_blast($rid);
> > > > >
> > > > >
> > > >
> > ----------------------------------------------------
> > > > >
> > > > > $rid is a legitimate request ID that is passed
> > as
> > > > > parameter to the function.
> > > > > retrieve_blast function returns
> > > > > Bio::SearchIO::blast=HASH(0x2c9bf8), that
> > > > indicates
> > > > > the success.
> > > > >
> > > > > but $rc->next_result() function fails and I
> > get
> > > > the
> > > > > following error.
> > > > >
> > > > >
> > > > > ------------- EXCEPTION -------------
> > > > > MSG: no data for midline genome
> > > > > STACK Bio::SearchIO::blast::next_result
> > > > >
> > > >
> > >
> >
> /usr/perl5/site_perl/5.6.1/Bio/SearchIO/blast.pm:1151
> > > > > STACK main::test_blast
> > > > > /var/apache/cgi-bin/user/blast.pl:578
> > > > > STACK toplevel
> > > > /var/apache/cgi-bin/user/blast.cgi:65
> > > > >
> > > > > --------------------------------------
> > > > >
> > > > > How can I do this.
> > > > >
> > > > > Thanks.
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > __________________________________
> > > > > Do you Yahoo!?
> > > > > Yahoo! Mail - You care about security. So do
> > we.
> > > > > http://promotions.yahoo.com/new_mail
> > > > >
> > _______________________________________________
> > > > > Bioperl-l mailing list
> > > > > Bioperl-l at portal.open-bio.org
> > > > >
> > > >
> > >
> >
> http://portal.open-bio.org/mailman/listinfo/bioperl-l
> >
> === message truncated ===
>
>
>
>
> __________________________________
> Do you Yahoo!?
> New and Improved Yahoo! Mail - Send 10MB messages!
> http://promotions.yahoo.com/new_mail
>
--
Jason Stajich
Duke University
jason at cgt.mc.duke.edu
More information about the Bioperl-l
mailing list