#!/bin/bash


echo "Entra la ruta:"
read cami
cd $cami


mkdir $cami/exonerate
mkdir $cami/genewise



cd $cami


#Per cada genoma
for genome in A.laibachii_Nc14 C.fasciculata D.fasciculatum G.niphandrodes L.donovani_BPK282A1 P.capsici T.congolense A.rara D.discoideum_AX4 F.cylindrus I.multifiliis_strain_G5 L.tarentolae P.polycephalum S.arctica ; do {

	mkdir $cami/exonerate/$genome
	mkdir $cami/genewise/$genome

#per cada query
for query in ./querys/* ; do {

	#Arreclem el nom de la query treient la carpeta i el .fa
	query=`basename $query`
	query=${query%.fa}

	#Si troba un hit bo crea una carpeta	
	grep 'e-' $cami/blastsm/$genome.m/$query$genome.m.tblastn | grep -v '#' >> $cami/exonerate/hitsm.txt && echo $genome >> $cami/exonerate/hitsm.txt && mkdir $cami/exonerate/$genome/Hit$query$genome

#Si existeix la carpeta (si ha trobat un hit bo)...
if [ -d  /$cami/exonerate/$genome/Hit$query$genome ] ; then 
	#Col·loca dins la carpeta un arxiu amb el/els hit/s i també els arxius del genoma indexat i de la query
	grep 'e-' $cami/blastsm/$genome.m/$query$genome.m.tblastn | grep -v '#' > $cami/exonerate/$genome/Hit$query$genome/hit$query$genome.txt 
	cp $cami/querys/$query.fa $cami/exonerate/$genome/Hit$query$genome
	cp /homes/users/U56834/Treball/genomesindexats/$genome.index $cami/exonerate/$genome/Hit$query$genome


	num=`egrep 'e-' -c $cami/exonerate/$genome/Hit$query$genome/hit$query$genome.txt`
	y=1

	egrep "e-" -n $cami/exonerate/$genome/Hit$query$genome/hit$query$genome.txt > $cami/exonerate/$genome/Hit$query$genome/hit$query$genome.num

	while [ "$y" -lt "$(( $num + 1 ))" ] ; do
		egrep "$y:" $cami/exonerate/$genome/Hit$query$genome/hit$query$genome.num > $cami/exonerate/$genome/Hit$query$genome/hit$query$genome.$y


		#Fastafetch
		identificador=`cut -f2 $cami/exonerate/$genome/Hit$query$genome/hit$query$genome.$y`
		fastafetch /cursos/BI/genomes/protists/2012/$genome/genome.fa $cami/exonerate/$genome/Hit$query$genome/$genome.index $identificador > $cami/exonerate/$genome/Hit$query$genome/$query$genome.fastafetch.$y	


		#Fastasubseq	
		start=`cut -f9 $cami/exonerate/$genome/Hit$query$genome/hit$query$genome.$y`
		end=`cut -f10 $cami/exonerate/$genome/Hit$query$genome/hit$query$genome.$y`
		if [ $start -gt $end ]; then
		start=$end
		fi
		start=$(( start - 10000 )) 
		long="30000"
		fastasubseq $cami/exonerate/$genome/Hit$query$genome/$query$genome.fastafetch.$y $start $long > $cami/exonerate/$genome/Hit$query$genome/$query$genome.subseq.$y	2> $cami/error.temp

			#És possible que la regió definida surti del contig tant per davant ($inici) com per darrere ($final)
					
			error=`cat $cami/error.temp`
			if [ "$error" != "" ]; then
					inici=`cat $cami/error.temp | egrep "Unknown flag"`
					final=`cat $cami/error.temp | egrep "before end"`
						
				#Si surt per davant posem l'start a 0
				if [ "$inici" != "" ]; then
					#En cas de que coïncideixin els dos errors
					if [ "$final" != "" ]; then
						long=$final						
						long=${long##*(}
						long=${long%)}
						final=""
					fi
					start="0"
					fastasubseq $cami/exonerate/$genome/Hit$query$genome/$query$genome.fastafetch.$y $start $long > $cami/exonerate/$genome/Hit$query$genome/$query$genome.subseq.$y
					
				fi
		
				#Si surt per darrere fem que la longitud s'adapti
				if [ "$final" != "" ]; then
					long=$final						
					long=${long##*(}
					long=${long%)}
					long=$(( long - $start))
					fastasubseq $cami/exonerate/$genome/Hit$query$genome/$query$genome.fastafetch.$y $start $long > $cami/exonerate/$genome/Hit$query$genome/$query$genome.subseq.$y
				fi
		
			fi

		#Exonerate
		exonerate -m p2g --showtargetgff -q $cami/exonerate/$genome/Hit$query$genome/$query.fa -t $cami/exonerate/$genome/Hit$query$genome/$query$genome.subseq.$y > $cami/exonerate/$genome/Hit$query$genome/$query$genome.exonerate.$y.gff

		grep -w exon $cami/exonerate/$genome/Hit$query$genome/$query$genome.exonerate.$y.gff > $cami/exonerate/$genome/Hit$query$genome/$query$genome.exon.$y.gff
		
		buit=`cat $cami/exonerate/$genome/Hit$query$genome/$query$genome.exon.$y.gff`
		if [ "$buit" == "" ]; then
			rm $cami/exonerate/$genome/Hit$query$genome/$query$genome.exon.$y.gff

		else
	
			#Obtenim el cDNA
			fastaseqfromGFF.pl $cami/exonerate/$genome/Hit$query$genome/$query$genome.subseq.$y $cami/exonerate/$genome/Hit$query$genome/$query$genome.exon.$y.gff > $cami/exonerate/$genome/Hit$query$genome/$query$genome.$y.cDNA

			#Traduim	
			fastatranslate $cami/exonerate/$genome/Hit$query$genome/$query$genome.$y.cDNA > $cami/exonerate/$genome/Hit$query$genome/$query$genome.$y.6pautes
			fastatranslate $cami/exonerate/$genome/Hit$query$genome/$query$genome.$y.cDNA -F 1 > $cami/exonerate/$genome/Hit$query$genome/$query$genome.$y.prot
	
			#tcoffee de l'exonerate
			t_coffee $cami/exonerate/$genome/Hit$query$genome/$query$genome.$y.prot $cami/exonerate/$genome/Hit$query$genome/$query.fa -outfile=$cami/exonerate/$genome/Hit$query$genome/Hit$query$genome.$y.exonerate.tcoffee
		
		fi


		#Genewise
		genewise -pep -both $cami/exonerate/$genome/Hit$query$genome/$query.fa $cami/exonerate/$genome/Hit$query$genome/$query$genome.subseq.$y > $cami/genewise/$genome/$query$genome.$y.genewise

		buit=`cat $cami/genewise/$genome/$query$genome.$y.genewise`
		if [ "$buit" == "" ]; then
			rm $cami/genewise/$genome/$query$genome.$y.genewise

		else
			./noborrar.pl  $cami/genewise/$genome/$query$genome.$y.genewise > $cami/genewise/$genome/$query$genome.$y.genewise.llarga

			#tcoffee del genewise
			t_coffee  $cami/genewise/$genome/$query$genome.$y.genewise.llarga $cami/exonerate/$genome/Hit$query$genome/$query.fa -outfile=$cami/genewise/$genome/$query$genome.$y.genewise.tcoffee

		fi	

		y=$(( $y + 1 ))

	done

		rm $cami/exonerate/$genome/Hit$query$genome/hit$query$genome.txt
		rm $cami/exonerate/$genome/Hit$query$genome/hit$query$genome.num

fi

 } done 

rmdir $cami/exonerate/$genome
rmdir $cami/genewise/$genome

} done








