[Bioperl-l] Bio::SearchIO::Writer::HTMLResultWriter problem
    simona bazzocchi 
    simona_bazzocchi at yahoo.it
       
    Thu Oct 25 03:46:53 UTC 2007
    
    
  
Hi all, 
I'd like to parse my blast file to outuput in a html file filtering on percent identity, (75% identical or better). So I've just copied and pasted to create my perl file.
I launched this command:
perl searchIO.pl blast_file.txt
But it returned this error: "t
Bareword found where operator expected at searchIO.pl line 26, near "->length E"
        (Missing operator before E?)
syntax error at searchIO.pl line 26, near "->length E"
syntax error at searchIO.pl line 30, near "<gt"
Execution of searchIO.pl aborted due to compilation errors."
Here below you can find searchIO.pl
thanks
#!/usr/bin/perl
use Bio::SearchIO;
use Bio::SearchIO::Writer::HTMLResultWriter;
my $in = new Bio::SearchIO(-format => 'blast',
                             -file   => shift @ARGV);
my $writer = new Bio::SearchIO::Writer::HTMLResultWriter();
my $out = new Bio::SearchIO(-writer => $writer);
$out->write_result($in->next_result);
# to filter your output
my $MinLength = 100; # need a variable with scope outside the method
sub hsp_filter { 
      my $hsp = shift;
      return 1 if $hsp->length('total') > $MinLength;
  }
sub result_filter { 
      my $result = shift;
      return $hsp->num_hits > 0;
  }
  sub hit_filter { 
      my $hit = shift;
      return $hit->length E<gt> 100; # test if length of the hit sequence
                                     # long enough    
  }
  my $writer = new Bio::SearchIO::Writer::TextResultWriter(
       -filters => { 'HIT' =E<gt> \&hit_filter }  
      );
my $out = new Bio::SearchIO(-writer => $writer);
$out->write_result($in->next_result);
# can also set the filter via the writer object
$writer->filter('RESULT', \&result_filter);
 		
---------------------------------
Yahoo! Mail: gratis 1GB per i messaggi, antispam, antivirus, POP3
    
    
More information about the Bioperl-l
mailing list