[Bioperl-l] Is it possible to parse BLAST output using IO:String?

Ryan Golhar golharam at umdnj.edu
Mon Oct 30 15:11:51 EST 2006


I'm trying to parse some blast output w/o actually creating the output
file.  Instead, I'm capturing the output in a variable and would like to
use IO::String to represent the file:

	$_ = `megablast -d somedatabase -i somesequence -D 2`;
	my $blast_file = new IO::String($_);
	my $searchio = new Bio::SearchIO(-format => 'blast', -fh =>
$blast_file);
	my $results = $searchio->next_result;
	my $hit = $results->next_hit;
	if (! defined($hit)) {
		warn "No BLAST hit for $accession on chr $chr for
Seq/$orth_id/$organism\n\n";
		return;
	}

Now, when Bio::SearchIO tries to read the output line by line, instead
it reads the entire output as 1 line.

If I provide the output in a file and use:

	my $searchio = new Bio::SearchIO(-format => 'blast', -file =>
'/tmp/somefile.blast');

This works...so is it possible to use IO::String to provide
Bio::SearchIO with BLAST output?  

Ryan



More information about the Bioperl-l mailing list