#!/usr/bin/perl -w

use strict;

my $DB_NAME = shift;
my $nomeMontagem = shift;
my $genomaFasta = shift;

mkdir "../Fasta/$nomeMontagem";

my $contigsOutDir = "../Fasta/$nomeMontagem/Contigs";
my $orfsOutDir = "../Fasta/$nomeMontagem/ORFs";

# system("perl createAnnotDB.pl $DB_NAME $nomeMontagem");

system("perl separaFastaGenoma.pl $DB_NAME $nomeMontagem $genomaFasta $contigsOutDir");

###### GLIMMER, RBS FINDER, TRNA SCANNER
opendir(DIR, $contigsOutDir."/n");
my @contigFiles = readdir(DIR);
closedir(DIR); 
foreach my $contigFile (@contigFiles) {
	next if ($contigFile eq "." or $contigFile eq "..");

	system("perl orfPredict.pl $contigsOutDir/n/$contigFile");

	my ($contigId) = ($contigFile =~ /(\d+)/);

	system("perl separaFastaGenes.pl $DB_NAME $nomeMontagem genes.fas $contigId $orfsOutDir");

	system("perl rodaRBSfinder.pl $DB_NAME $nomeMontagem $contigsOutDir/n/$contigFile genes.predict");
	
# 	print $contigFile."\n";

	system("perl tRNAscan.pl $DB_NAME $nomeMontagem $contigsOutDir/n/$contigFile $contigId");
}

###### BLASTs
opendir(DIR, $orfsOutDir."/p");
my @orfFiles = readdir(DIR);
closedir(DIR);

my $blastOutDir = "../BlastReports/$nomeMontagem";
mkdir $blastOutDir;

foreach my $orfFile (@orfFiles) {
	next if ($orfFile eq "." or $orfFile eq "..");
	system("cd ../bin && perl runOrfsBlast.pl $DB_NAME $nomeMontagem $orfsOutDir/p/$orfFile ../BlastDatabases/nr nr $blastOutDir");
	system("cd ../bin && perl runOrfsBlastCOG.pl $DB_NAME $nomeMontagem $orfsOutDir/p/$orfFile $blastOutDir");
	system("cd ../bin && perl runOrfsBlastPFAM.pl $DB_NAME $nomeMontagem $orfsOutDir/p/$orfFile $blastOutDir");
}
