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

use Digest::MD5 qw(md5 md5_hex md5_base64);
#use MIME::Parser;
#use MIME::Entity;
#use MIME::Body;
use Getopt::Long;


use lib qw(Core);
use lib qw(Classes);
use ImagesManager;
use ResultsManager;
use ResultsTargetManager;
use ResultsUploadManager;

use Logger;

my $SCRIPTNAME = 'qa_parce_upload.pl';

my $logger = new Logger();

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


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

my $TARGET = "";
my $target_list = 'conf/QA_select_1';
#my $target_list = 'conf/QA_all';
my $isparams = GetOptions(
	#"target|t=s"         => \$TARGET,
	"list|l=s"         => \$target_list	
);

open (TL, $target_list) || die "Cannot open input file $target_list: $!";
while(my $target = <TL>) {
	chomp($target);
	if ($target =~ /^#/){next;}

	$TARGET = $target;

	##############QA PREDICTIONS
	$directory = "/local/Projects/Perl/casp9/src/scripts/predictions/qa_predictions_cleaned/$TARGET";

	$logger->info($SCRIPTNAME, sprintf("Start to upload TARGET!: %s", $TARGET));

	##############QA PREDICTIONS PARCE
	@FILES_LIST = ();
	if(open(FILE_list_of_results, "/bin/ls " . $directory. "/* |")) {
		@FILES_LIST = <FILE_list_of_results>;
		close (FILE_list_of_results);
	}
	$count_files = 0;
	foreach my $line (@FILES_LIST) {
		$count_files ++;	
		$line =~ /$directory\/(.*)/;
		my $file_name = $1;
		$resultsupload_manager->upload_qa_load_to_DB($file_name, $directory);
		print "File #" . $count_files . "\n";
	}
	
	##############QA PREDICTIONS PARCE
	$logger->info($SCRIPTNAME, sprintf("Analise TARGET!: %s", $TARGET));
	$resultsupload_manager->upload_qa_analysis($TARGET);

	##############QA PREDICTIONS PARCE
	$logger->info($SCRIPTNAME, sprintf("QA2 analise TARGET!: %s", $TARGET));
	$resultsupload_manager->upload_qa2_pearson_analysis($TARGET);

####END
	$logger->info($SCRIPTNAME, sprintf("END TARGET!: %s", $TARGET));


}


exit(0);
