#!/usr/bin/perl -w

use strict;
use warnings;
use FindBin;
use lib "$FindBin::Bin/lib";
use Getopt::Long;
use File::Basename qw<basename dirname>;
use File::Spec;
use Bio::SeqIO;


# perl /media/xiangyang/Pseudomonas_aeruginosa/update_pa0/G_SEQ_jinshumei_workplace/do_blat.pl /media/xiangyang/Pseudomonas_aeruginosa/update_pa0/G_SEQ_jinshumei_workplace/split_diretory media/xiangyang/Pseudomonas_aeruginosa/update_pa0/G_SEQ_jinshumei_workplace/split_diretory/CAM /media/xiangyang/Pseudomonas_aeruginosa/update_pa0/G_SEQ_jinshumei_workplace/blat_OUT


my $home_directory = $FindBin::Bin;   # obtaining the home directory where AMRG_Tool.pl located

my $in = $ARGV[0];
my $db = $ARGV[1];
my $out = $ARGV[2];
mkdir $out;
my $thread_number = $ARGV[3];
#########################################################################
# Set the absolute path for four programs
my $blat = `which blat`;
$blat =~ s/\n//g;

#########################################################################
opendir (DIR, $in);
my @dir = readdir DIR;
@dir = grep($_ !~ /^\./, @dir);
use Parallel::Runner;
my $runner = Parallel::Runner->new($thread_number);

foreach (@dir){
    my $eout = "$out/$_.blatout";
    $runner->run(
        sub{
            system ("$blat $in/$_ $db $eout -out=pslx -fastMap > $out/temp.txt");
        }
    )#run end

}
$runner->finish;
print "done\n";

chdir $out;
system ("find . -type f -name '.blatout' | xargs cat > $out/all.txt"); 
#system("rm -rf *.blatout");


