[Bioperl-l] Parsing Blast output for nohit sequences

Chervitz, Steve Steve_Chervitz@affymetrix.com
Wed, 7 Nov 2001 13:50:49 -0800


FYI, this problem has been fixed in the new version of Bio::Tools::Blast
that I'm working on.

Steve

> -----Original Message-----
> From: Marc Logghe [mailto:Marc.Logghe@devgen.com]
> Sent: Sunday, November 04, 2001 11:19 PM
> To: 'Sammons, Scott'
> Cc: 'bioperl-l@bioperl.org'
> Subject: RE: [Bioperl-l] Parsing Blast output for nohit sequences
> 
> 
> Hi,
> I had the same problem a while ago, at least when using 
> Bio::Tools::Blast.
> You should try Bio::Tools::BPLite, this 'no hits' bug appears 
> not to show up
> there.
> Hope this helps,
> Marc
> 
> > -----Original Message-----
> > From: Sammons, Scott [mailto:zno6@cdc.gov]
> > Sent: Wednesday, October 31, 2001 6:04 PM
> > To: 'bioperl-l@bioperl.org'
> > Subject: [Bioperl-l] Parsing Blast output for nohit sequences
> > 
> > 
> > Greetings:
> > 
> > I am a relatively new bioperler.  I am trying to parse a 
> > large batch of
> > blast
> > searches and build a fasta file of the subjects that have no 
> > hits.  The code
> > 
> > below works fine when I want to do something with the hits.  
> > But by the time
> > 
> > process_blast gets to the data, the nohits are already parsed 
> > out.  I can't 
> > seem to get to the blast parse while the nohits are still 
> > there. Any help
> > would 
> > be appreciated.
> > 
> > -Scott Sammons
> > Centers for Disease Control and Prevention
> > 1600 Clifton Rd, NE
> > MS G36
> > Atlanta, GA 30333
> > 404-639-3560 (Voice)
> > 404-639-1331 (FAX)
> > ssammons@cdc.gov
> > 
> > ==============
> > use Bio::Index::Fasta;
> > use Bio::SeqIO;
> > use Bio::Tools::Blast qw(:obj);
> > 
> > my ($inx, $seqobj, $outputfile, $blastobj, $params);
> > 
> > # parse blast output and create a fasta file from subject 
> > sequences with
> > nohits
> > # First, we create a index from the fasta file that was used 
> > to create the
> > blast output
> > # call this with  cat blastoutfile | nohit_blast2fasta.pl fastafile
> > 
> > sub process_blast {
> >         my $hit;
> >         my $blast_object = shift;
> >         if ($blast_object->num_hits('total') == 0) {
> >                 $seqobj = $inx->fetch($blast_object->name);
> >                 printf ">%s %s\n",$seqobj->display_id,$seqobj->desc;
> >                 printf "%s\n", $seqobj->seq;
> >         }
> >         $blast_object->destroy;
> > }
> > 
> > $inx = Bio::Index::Fasta->new(
> >         -filename => "/tmp/t$$.idx",
> >         -write_flag => 1);
> > $inx->make_index(@ARGV);
> > 
> > $Blast->parse(  -parse => 1,
> >                 -exec_func => \&process_blast,
> >                 );
> >                 
> > _______________________________________________
> > Bioperl-l mailing list
> > Bioperl-l@bioperl.org
> > http://bioperl.org/mailman/listinfo/bioperl-l
> > 
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l@bioperl.org
> http://bioperl.org/mailman/listinfo/bioperl-l
>