#!/usr/bin/perl
use strict;
use warnings;

use Digest::MD5 qw(md5 md5_hex md5_base64);
use Getopt::Long;


use lib qw(Core);
use lib qw(Classes);
use ResultsManager;
use ResultsTargetManager;
use ResultsUploadManager;
use String;
use Logger;

my $SCRIPTNAME = 'upload_results.pl';

#my $logger = new Logger();

my $directory = "";
my @FILES_LIST = ();
my $count_files = 0;

my $logger = new Logger();

my $results_manager = new ResultsManager();
my $results_target_manager = new ResultsTargetManager();
my $resultsupload_manager = new ResultsUploadManager();

my $TARGET = "T0513";

my @targets = $results_target_manager->get_result_targets();

for(my $i = 0; $i < scalar(@targets); $i++) {
	$TARGET = @targets[$i]->{NAME};
	print " TARGET: " . $TARGET . " \n";	
	my @results = $results_manager->get_results({target=>$TARGET, field=>'pr.target', order=> 'ASC'});	
	#exit(0);
	for(my $r_count = 0; $r_count < scalar(@results); $r_count++) {
		my $lga_file = sprintf("/data/CASP9/RESULTS/LGA/4A/DATA/%s/%s.lga", $results[$r_count]{FULL_TARGET}, $results[$r_count]{MODEL_NAME});
		
		print $lga_file . "\n";

		if(open(FILE, $lga_file)) {
			my $summary = 0;
			while(<FILE>) {
				my $line = $_;
					#CA            N1   N2   DIST      N    RMSD    GDT_TS    LGA_S3     LGA_Q
					#SUMMARY(GDT)   82   83    4.0     79    1.26    86.446    91.767     5.817
				if($line =~ /^SUMMARY(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+).*/) {
					my $n1_4 = $2;
					my $n2_4 = $3;
					my $dist_4 = $4;
					my $nres_4 = $5;
					my $rmsd_4 = $6;
					my $gdt_ts_4 = $7;
					my $lga_s_4 = $8;
					my $lga_q_4 = $9;
					if (sprintf("%.2f", $gdt_ts_4) ne $results[$r_count]->{GDT_TS_4}) {
						$logger->info($TARGET, sprintf("%s different GDT: file--> %s db-->%s ", $results[$r_count]->{MODEL_NAME}, $gdt_ts_4, $results[$r_count]->{GDT_TS_4}));
					}
					$summary ++;
				}
				
			}
			if ($summary eq 0 && $results[$r_count]->{N1_4} > 0) {
				$logger->info($TARGET, sprintf("%s NO SUMMARY for %s gdt--> %s n1_4--> %s", $results[$r_count]{MODEL_NAME}, $results[$r_count]{GDT_TS_4}, $results[$r_count]{N1_4}));
			}
			
			close(FILE);
		
		} else {
			print sprintf("ERROR: Can't open file %s\n", $lga_file);
			$logger->info($TARGET, sprintf("%s NO LGA RESULT for %s ID: %s COUNT: %s", $results[$r_count]{MODEL_NAME}, $results[$r_count]{ID}, $r_count));
			$logger->info($TARGET, sprintf("%s NO LGA RESULT for file %s", $lga_file));
		}


	}


}




#$resultsupload_manager->generate_gdt_images($TARGET);
############# end
exit(0);