Thanks! In the end I did write my own script; I would prefer to use the perl package for the sake of code consistency.
I'm using Bio::SearchIO to parse HMMER3 output.
I am able get the significance of each sequence (which is located in the table on top of the output) with $hit->significance. I can also get the c-Evalue by using $hsp->significance. However, the more informative number would be the i-Evalue (from the domain table) or best 1 domain Evalue (from the top table).
Is there a method to get either of the two e-values? I could not find anything in the documentation.
1 answer
After looking at the code, I don't think you can get the i-Evalue from Bio::SearchIO::hmmer3. It is parsed from the table but it is never set and I don't see a method to get that value. You may want to ask the bioperl listserv to make sure because the authors will be able to provide a definitive answer.
If you really want both and don't have time for a code fix, what I would do is just write a script to parse it myself. Here is an example:
use strict;
use warnings;
while (<>) {
chomp;
next if /^\#/;
my ($target_name, $accession, $query_name, $accession_q, $E_value_full,
$score_full, $bias_full, $E_value_best, $score_best, $bias_best,
$exp, $reg, $clu, $ov, $env, $dom, $rev, $inc, $description_of_target) = split;
# do something with $E_value_full and $E_value_best ...
}
Log in to answer this question.