#!/usr/bin/perl -w

#l estructura inicial del programa es la mateixa que la del programa_final.pl 
my %hash;
open (my $FILE,"<", "/home/u137251/Desktop/gen_len.txt") or die "Can't open\n";
######################################CANVIAR USUARI##################################################################################################################################

while(my $row =<$FILE>){
    chomp $row;
    my @linea = split(/\t/, $row);
    $hash{$linea[1]}=$linea[0];
}
close($FILE);


my @protein;
my $i; 
my $llargada; 
@protein=("GPx1.fa","GPx2.fa","GPx3.fa","GPx4.fa","GPx5.fa","GPx6.fa","GPx7.fa","GPx8.fa");
$llargada=scalar @protein;
$i=0;

while ($i<$llargada){
	print "analitzant proteina $protein[$i]\n";

	system ("sed s/U/X/g ${protein[$i]} > temp; mv temp ${protein[$i]} -f");
	system ("sed s/\%//g ${protein[$i]} > temp; mv temp ${protein[$i]} -f");
	system ("sed s/@//g ${protein[$i]} > temp; mv temp ${protein[$i]} -f");
	system ("sed s/\#//g ${protein[$i]} > temp; mv temp ${protein[$i]} -f");


	my $nomprotblastentregar;
	$nomprotblastentregar="${protein[$i]}nuc.blast.entregar"; #posem nom al fitxer resultant del TBLASTN
	my $nomprotblast;
	$nomprotblast="${protein[$i]}nuc.blast";

	system ("/mnt/NFS_UPF/soft/ncbi-blast-2.7.1+/bin/tblastn -query ${protein[$i]} -db /mnt/NFS_UPF/soft/genomes/2019/Kobus_ellipsiprymnus/genome.fa -outfmt 6 -evalue 0.0001 -out ${nomprotblast}"); #####################################################################################TBLASTN####################################################################################

	print "a continuació apareixerà per pantalla el resultat d'executar el tblastn buscant $protein[$i] en el genoma de Ke\n";
	my $nomprotblast_sorted;
	$nomprotblast_sorted = "${nomprotblast}_sorted";

	system ("cat $nomprotblast");

	$nomdelhitfa ="${nomdelhit}.fa";
	$genomic_nomdelhit="secis_${protein[$i]}"; 

	print "inserta nom del hit: \n";
	$nomdelhit=<STDIN>;
	chomp ($nomdelhit);
	print "inserta inici: \n";
	$inici=<STDIN>;
	chomp ($inici);
	print "inserta final: \n";
	$final=<STDIN>;
	chomp ($final);

	if ($inici<$final){
		$length=100000; #si el hit es troba en la cadena +, ens interessa la part 3'UTR (cap a la dreta)
		if ($inici<0){
			$inici=1;
		}
		if (($inici+$length)>$hash{$nomdelhit}){
			$length=$hash{$nomdelhit};
			$length = $length - $inici -5;
		}
	print "ara fem fastafetch de la proteina $protein[$i]\n";
	system ("/mnt/NFS_UPF/soft/exonerate/exonerate-2.2.0-x86_64/bin/fastafetch /mnt/NFS_UPF/soft/genomes/2019/Kobus_ellipsiprymnus/genome.fa /mnt/NFS_UPF/soft/genomes/2019/Kobus_ellipsiprymnus/genome.index $nomdelhit > $nomdelhitfa");
#####################################################################################FASTAFETCH####################################################################################
		
	print "ara fem el fastasubseq cadena positiva de la proteina $protein[$i]\n";
	system ("/mnt/NFS_UPF/soft/exonerate/exonerate-2.2.0-x86_64/bin/fastasubseq $nomdelhitfa $inici $length > $genomic_nomdelhit"); 
####################################################################################EXONERATE####################################################################################
	}

	if ($inici>$final){
		$inici=$inici-100000; #si el hit es troba a la cadena - ens interessa la part 3'UTR (que en aquest cas es la sequencia que es troba cap a l'esquerra)
		$length=100000;
		if ($inici<0){
			$inici=1;
		}
		if (($inici+$length)>$hash{$nomdelhit}){
		$length=$hash{$nomdelhit};
		$length = $length - $inici -5;
		}
        print "ara fem fastafetch de la proteina $protein[$i]\n";
	system ("/mnt/NFS_UPF/soft/exonerate/exonerate-2.2.0-x86_64/bin/fastafetch /mnt/NFS_UPF/soft/genomes/2019/Kobus_ellipsiprymnus/genome.fa /mnt/NFS_UPF/soft/genomes/2019/Kobus_ellipsiprymnus/genome.index $nomdelhit > $nomdelhitfa");
#####################################################################################FASTAFETCH####################################################################################
	print "ara fem el fastasubseq cadena negativa de la proteina $protein[$i]\n";
	system ("/mnt/NFS_UPF/soft/exonerate/exonerate-2.2.0-x86_64/bin/fastasubseq $nomdelhitfa $inici $length > $genomic_nomdelhit"); 
	}
####################################################################################FASTASUBSEQ####################################################################################	
	print "hem acabat l'analisi de la proteina $protein[$i]\n";
	$i=$i+1;
}
print "el programa ha acabat\n";


