#!/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 = 'upload_results.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 = "T0398-D1";
my $protein_pdb = '/data/CASP9/TARGETS/'.$TARGET.'.pdb';
my $output_small_str_image_png = '/data/CASP9/PLOTS/STR/'.$TARGET.'.small.png'; #structure image
my $images_manager = new ImagesManager();


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




############################################################################################ JOIN LGA and ACE 
############# JOIN LGA 4 A results with ACE
#my $lga_results_dir = "/data/CASP9/RESULTS/LGA/4A/DATA/".$TARGET;
#my $ace_results_dir = "/data/CASP9/RESULTS/ACE/".$TARGET;
#my $lga_ace_results_dir = "/data/CASP9/RESULTS/LGA_ACE/".$TARGET;
#$resultsupload_manager->join_lga_with_ace($lga_results_dir, $ace_results_dir, $lga_ace_results_dir, $TARGET);
############# JOIN end


########### MVSM Count upload
#my $parameters = {'target' => $TARGET};
#my @results = $results_manager->get_results($parameters);
#
#for(my $count = 0; $count < scalar(@results); $count++) {
#
#print $results[$count]->{ID} . "\n";
#
#	$resultsupload_manager->update_mvsm_results($results[$count]->{ID});
#
#}

my $target_list = 'conf/QA_targets_list';

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

	$TARGET = $target;




##############5A LGA PREDICTIONS 
$directory = "/data/CASP9/RESULTS/LGA/5A/DATA/$TARGET";
@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_lga($file_name, $directory, 5);
	print "File #" . $count_files . "\n";
}





# #### run this script when all results is uploaded
# $resultsupload_manager->update_rank($TARGET);
# 
# }


# my $spice_target_name = $TARGET;
# $spice_target_name =~ tr/-/_/d;
# #$date =~ tr/-//d;
# print sprintf("ln -s /data/CASP9/RESULTS/LGA/4A/DATA/%s/ /casp4das/DATA/dep/%s \n\n", $TARGET, $spice_target_name);
# 
# system (sprintf("ln -s /data/CASP9/RESULTS/LGA/4A/DATA/%s/ /casp4das/DATA/dep/%s", $TARGET, $spice_target_name));
# 
# print sprintf("ln -s /data/CASP9/RESULTS/LGA/5A/DATA/%s/ /casp4das/DATA/indep/%s\n\n", $TARGET, $spice_target_name);
# 
# system (sprintf("ln -s /data/CASP9/RESULTS/LGA/5A/DATA/%s/ /casp4das/DATA/indep/%s", $TARGET, $spice_target_name));
# system (sprintf("cp /data/CASP9/TARGETS/%s.pdb /casp4das/DATA/targets/%s.pdb", $TARGET, $spice_target_name));
# system (sprintf("chmod 777 /casp4das/DATA/targets/%s.pdb", $spice_target_name));


##############TEMPLATES (5A LGA PREDICTIONS)
# # # # $directory = "/data/CASP9/RESULTS/LGA/TEMPLATES/DATA/$TARGET";
# # # # @FILES_LIST = ();
# # # # my $targets_manager = new TargetsManager();    
# # # # my $target_id = $targets_manager->get_id_by_name($TARGET);
# # # # 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_templates($target_id, $TARGET, $file_name, $directory);
# # # # 	print "File #" . $count_files . "\n";
# # # # }

# # # 	##############QA PREDICTIONS 
# # # 	$directory = "/data/CASP9/predictions/qa_predictions_cleaned/$TARGET";
# # # 	@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($file_name, $directory);
# # # 		print "File #" . $count_files . "\n";
# # # 	}
}


exit(0);
