use stricts;
use warnings;
my $total_entry_non_barrel='';
my $aligns_non_barrel='';
my @split_aligns_non_barrel=();
my $separate_hit_non_barrel='';
my @split_hit_non_barrel=();
my $hit_line_non_barrel='';
my $hit_name_non_barrel='';
my $protein_non_barrel='';
my $stat_line_non_barrel='';
my @split_stats_non_barrel=();
my $score_non_barrel='';
my $conditional_evalue_non_barrel='';
my $env_start_non_barrel='';
my $env_end_non_barrel='';
my $i=0;
my $k=0;
$/="//\n";
while(<>)
{
$total_entry_non_barrel=$_;
if($total_entry_non_barrel=~/^Query:\s+(.*?)\s\[L=(\d+)\]/m)
{
$protein_non_barrel=$1;
}
if ($total_entry_non_barrel!~/No hits detected/)
{
if($total_entry_non_barrel=~/Domain annotation for each model:(.*)Internal pipeline statistics summary:/s)
{
$aligns_non_barrel=$1;
@split_aligns_non_barrel=split(">> ", $aligns_non_barrel);
for($i=0; $i<=$#split_aligns_non_barrel; $i++)
{
$separate_hit_non_barrel=$split_aligns_non_barrel[$i];
@split_hit_non_barrel=split(/\n/, $separate_hit_non_barrel);
$hit_line_non_barrel=$split_hit_non_barrel[0];
if($hit_line_non_barrel=~/^(.*?)\s+/)
{
$hit_name_non_barrel=$1;
}
#keep score, c-Evalue, env-start, env-end for each hit
for($k=3; $k<=$#split_hit_non_barrel; $k++)
{
$stat_line_non_barrel=$split_hit_non_barrel[$k];
@split_stats_non_barrel=split(/\s+/, $stat_line_non_barrel);
$score_non_barrel = $split_stats_non_barrel[3];
$conditional_evalue_non_barrel = $split_stats_non_barrel[5];
$env_start_non_barrel = $split_stats_non_barrel[13];
$env_end_non_barrel = $split_stats_non_barrel[14];
}
if($hit_name_non_barrel=~/^PF\d+/) #it is a PFAM-A hit, keep it if score >=TC
{
if($score_non_barrel>=$hash_pfamA_tc{$hit_name_non_barrel})
{
print $hit_name_non_barrel, "\t", $score_non_barrel, "\t", $conditional_evalue_non_barrel, "\t",$env_start_non_barrel , "\t", $env_end_non_barrel, "\n";
}
}
elsif($hit_name_non_barrel=~/^PB\d+/) #it is a PfamB hit, keep it if Evalue<=1e-6
{
if($conditional_evalue_non_barrel<=0.000001)
{
print $hit_name_non_barrel, "\t", $score_non_barrel, "\t", $conditional_evalue_non_barrel, "\t",$env_start_non_barrel , "\t", $env_end_non_barrel, "\n";
}
}
}
}
}
print "##\n";
}
$/="\n";
####
Use of uninitialized value $hit_line_non_barrel in pattern match (m//) at ttt.pl line 735
####
if($hit_line_non_barrel=~/^(.*?)\s+/)