[Bioperl-l] Fwd: Problems with HPSTableWriter

Andy Nunberg anunberg@oriongenomics.com
Tue, 14 May 2002 13:55:25 -0500


>Date: Tue, 14 May 2002 11:01:13 -0500
>To: sac@bioperl.org
>From: Andy Nunberg <anunberg@oriongenomics.com>
>Subject: Problems with HPSTableWriter
>
>Steve,
>thanks for your reply.
>I tried the HSPTable writer with default columns(all) and I get all 0's for 
>results.
>When I specify columns I do get data, except for frame(query frame) and bits
>parsing a tblastx blast report using ncbi blast 2.02.12 (I am 
>calling frame,bits,score in columns). The score value printed is actually
the bit value
>I am also missing subject strand info on some but not all of the HSP's.
>
>Similarly when parsing a blastx report I am missing bits and score as well 
>as frame info.
>
>I tried using the HitWriter calling the same columns as your old table_tiled 
>in Bio::Tools::Blast.pm
>Here it looks good except I get no bits returned when parsing a TBLASTX
report.
>
>Is this fixable?
>Andy
>
>ps. Below is the script I used for HSPTable, its essentially the script 
>found in the bioperl/examples
>use strict;
>use lib '/u11/bioperl-1.0';
>
>use Bio::SearchIO;
>use Bio::SearchIO::Writer::HSPTableWriter;
>
># These are the columns that will be in the output table of BLAST results.
>my @columns = qw(
>		query_name
>		query_length
>         hit_name
>         hit_length
>         rank
>		expect
>		score
>		bits
>         frac_identical_query
>		frac_conserved_query
>         length_aln_query
>		length_aln_hit
>         gaps_query
>		gaps_hit
>		start_query
>		end_query
>		start_hit
>		end_hit
>         strand_query
>         strand_hit
>		frame
>		hit_description
>		);
>
>
>print STDERR "\nUsing SearchIO->new()\n";
>
># Note that all parameters for the $in, $out, and $writer objects are
optional.
># Default in = STDIN; Default out = STDOUT; Default writer = all columns 
># In this example, we're reading from STDIN and  writing to a STDOUT
>my $in     = Bio::SearchIO->new( -format => 'psiblast', -file => $ARGV[0] );
>my $writer = Bio::SearchIO::Writer::HSPTableWriter->new(-columns =>
\@columns);
>my $out    = Bio::SearchIO->new( -format => 'psiblast', 
>				-writer => $writer,
>				  );
>
>while ( my $result = $in->next_result() ) {
>  #printf STDERR "\nReport %d: $result\n", $in->report_count;
>  
>  if( $result->hits ) {
>    $out->write_result($result, ($in->report_count - 1 ? 0 : 1) );
>  }
>  else {
>    
>	print "Hitless Blast Report: $result\n";
>    #print STDERR ($result->no_hits_found ? "\n" : "(filtered)\n");
>  }
>  
>  ## For a simple progress monitor, uncomment this line:
>  #print STDERR "."; print STDERR "\n" if $in->report_count % 50 == 0;
>}
>
>printf STDERR "\n%d Blast report(s) processed.\n", $in->report_count;
>printf STDERR "Output sent to file: %s\n",  $out->file if $out->file;
>

*******************************************************************
Andy Nunberg, Ph.D
Computational Biologist
Orion Genomics, LLC 
(314) 615-6989
http://www.oriongenomics.com