[Bioperl-l] RE:Segmentation fault

stephan rosecker stephan.rosecker at ish.de
Mon Apr 12 11:55:20 EDT 2004

 > If $result->query_name() is indeed the right call to make in
 > the inner loop (according to the Bio::SearchIO documentation,
 > $result is an object with the Bio::Search::Hit::HitI interface,
 > which from what I can see contains no query_name() method), then
 > I would suggest that you try your program with a newer version
 > of Perl.  I believe the latest version is 5.8.3.

like i wrote a'm not a perl guru so please correct me.
$result is a "pointer" to my current seq object.
($result = $in->next_result)
$hit is a "pointer" to my current hit object.
(my $hit = $result->next_hit)
So "$result->query_name" has to be visible inside my while-loop.
(I want only the seq object that contains hit's)

old code:
while( my $result = $in->next_result )
                 while( my $hit = $result->next_hit )
                         print $result->query_name."\n";

After i read your mail i rewrote the code and
it shoud be more conform... but also sementation fault:-( .

new code:

use Bio::Search::Result::HMMERResult;
     my $result = new Bio::Search::Result::HMMERResult
     ( -hmm_name => 'pfam',
           -sequence_file => 'uniprot_sprot.dat',
                 -hits => \@hits);
# I'm not realy understand the args here -
# pfam for hmmpfam ?
# -sequence_file = source hmmpfam file ?

     use Bio::SearchIO;
         my $in = new Bio::SearchIO(-format => 'hmmer',
                 -file   => 'uniprot_sprot_hmmer.out');
      while( my $result = $in->next_result ) {
           $result->num_hits(), " hits\n";
                if ($result->num_hits()>0)
                      {print $result->query_name."\n";}


More information about the Bioperl-l mailing list