#!/usr/bin/perl -w

use strict;
use warnings;

my %LGAS; # key pdb_template, value LGA_S
my %seqid; 
my %Ncover;  
my %Nali;  
my %Ntarg;  
my %rmsd;  

my $outfile="templates_grep";

print "for i in `ls -d ./T0* `; do grep 'SUMMARY(LGA' \$i/*.res; done >$outfile\n";
system ("for i in `ls -d ./T0* `; do grep 'SUMMARY(LGA' \$i/*.res; done >$outfile");

#sleep (5);
#print "Start parsing\n";

open IN, "$outfile" || die "Cannot open input file $!";
open OUT, ">$outfile.25" || die "Cannot open input file $!";
printf OUT "target    templ\tcover\tseqid\trmsd\tNtarg\tNeqv\tLGAS\n";	

while(<IN>){
	chomp;
	my @tokens = split /\s+/;
# ./T0768/2o6qA.T0768.pdb.res:SUMMARY(LGA)  270  143    4.0     98    2.30    14.29     53.145     4.090
	my ($dot, $targ, $rest) = split /\//, $tokens[0];
	my ($templ, $junk) = split /\./, $rest;
	print "=$targ, $templ\n";
	$LGAS{$targ}{$templ} = $tokens[7];
	$seqid{$targ}{$templ} = $tokens[6];
	$Ncover{$targ}{$templ} = $tokens[4]/$tokens[2]*100;
	$Nali{$targ}{$templ} = $tokens[4];
	$rmsd{$targ}{$templ} = $tokens[5];
	$Ntarg{$targ} = $tokens[2];
}
close(IN);
#sort templates according to value LGA_S

my $LGAmax; 
my $seqmax; 
my $covermax;
my $star="";

foreach my $tg (sort keys %LGAS){
	my $count=1;
	#print OUT "$tg\n";	
	foreach my $tl (sort {$LGAS{$tg}{$b}<=>$LGAS{$tg}{$a}} keys %{$LGAS{$tg}}){
		if ($count==1){
			$LGAmax=$LGAS{$tg}{$tl}; $seqmax=$seqid{$tg}{$tl}; $covermax=$Ncover{$tg}{$tl};
		} else{
			
			if (($LGAS{$tg}{$tl}/$LGAmax>=0.9) && ($seqid{$tg}{$tl}-$seqmax>7)){
				$star="*";
			}
		}
		printf OUT "%-9s %s\t%6.2f\t%6.2f\t%6.2f\t%4d\t%4d\t%6.2f\t%s\n",$tg, $tl, $Ncover{$tg}{$tl}, $seqid{$tg}{$tl}, $rmsd{$tg}{$tl}, $Ntarg{$tg}, $Nali{$tg}{$tl}, $LGAS{$tg}{$tl}, $star;	
		$count++;
		$star="";
	};
}
close (OUT);
exit;
