#!/usr/bin/perl 

use strict;
use warnings;

###########################################################
#
# The script fixes file names in predictions/cleaned/ direc-
# tory. The name of the files in format "GROUPNAME_TS1" ->
# "T0647TS123_1"
# Script doesn't work with oligomeric predictions in dir T0647o
# It is necesary to fix manually these cases.
#
###########################################################

use lib ("/local/Projects/Perl/casp13/src/Classes");
use lib ("/local/Projects/Perl/casp13/src/Classes/Core");


exit;
use GroupsManager;

my $grp_manager = new GroupsManager();

my @dirs= ();

open DIR, "ls -1 /data/CASP13/bla_bla_bla |";
while(<DIR>){
   chomp $_;
   if(-d $_ && $_ ne './' && $_ ne '../' && $_ ne '.' && $_ ne '..' && $_ !~ /o$/){
	push(@dirs, $_);
	#print $_."\n";
   }
   
}
close DIR;

foreach my $dir (@dirs){
  my $target = $dir;
  $target = substr($dir, rindex($dir, "/") + 1);
  print "==== $target ====\n";
  open DIR, "ls -1 ./$dir |";
    while(<DIR>){
	chomp $_;
	if(!-d $_ && $_ ne './' && $_ ne '../' && $_ ne '.' && $_ ne '..'
	&&  $_ !~ m/T[0-9]{4}[A-Z]{2}[0-9]{3}_[1-5]{1}/	){
        # print "$dir/$_\n";
	 my $file_old = $_;
	 $file_old = substr($file_old, rindex($file_old, "/") + 1);	
	 #print $file_old."\n";
	 if($file_old =~ m/(\S+)_([A-Z]{2})(\d{1})/){
		my $grp_name = $1;
		my $pfrmat = $2;
		my $model = $3;
		my $grp_code = $grp_manager->get_code_by_name($grp_name);

	#	print "$grp_name\t$grp_code\n";
		my $file_new = sprintf("%s/%s%s%03d_%1d", $dir, $target, $pfrmat, $grp_code, $model);
		if(! -e $file_new){
			system(sprintf("mv %s/%s %s", $dir,$file_old,$file_new));		}
	 }
	}
    }
  close(DIR);
}

exit;


