#!/bin/bash

### UNIVERSITAT POMPEU FABRA. BIOINFORMÀTICA 2012. ORIOL BOVER, BERTA GRAU, NÚRIA CORTELL I ERIC MARCH.
### CONTACTE: oriolbc@gmail.com
### SCRIPT CREAT PER A L'ANÀLISI DE SELENOPROTEÏNES DONAT UN GENOMA CONCRET.

clear


###
###------------SELECCIONAR LA SEQÜÈNCIA------------
###

echo -en "\e[00;32m\033[1mBENVINGUT\n\033[0m"

echo -e "\e[00;34m\033[1mHas creat la carpeta query i reemplaçat les Us per Xs? Si és així prem ENTER, en cas contrari CTRL+C\033[0m"
read enter
echo -e "\e[00;34m\033[1mEscull la query\033[0m"
ls ./query
echo
echo -en "\e[00;34m\033[1mIntrodueix la query: \033[0m"
read query
echo

if [ -f ./query/${query} ];
    then
    mkdir -p ./$query
else
    echo -e "\e[00;31m\033[1mLa query introduïda no existeix\n\033[0m";
    exit
fi;


###
###------------EXPORTAR PATHS------------ 
###

export PATH=/cursos/BI/bin/ncbiblast/bin:$PATH
cp /cursos/BI/bin/ncbiblast/.ncbirc ~/
export PATH=/cursos/BI/soft/exonerate/i386/bin:$PATH
export PATH=/cursos/BI/bin:$PATH
export WISECONFIGDIR=/cursos/BI/soft/wise-2.2.0/wisecfg   


###
###------------FER EL BLAST------------ 
###

echo -en "\e[00;32m\033[1mBLAST\n\033[0m"

if [ -f ./query/${query} ];
then    
    if [ ! -f ./$query/$query_blast.fa ];
    then
	echo -e "\e[00;31m\033[1mBLAST EN PROCÉS\033[0m";
	blastall -p tblastn -i ./query/$query -d /cursos/BI/genomes/project_2013/Gadus_morhua/genome.fa -o ./$query/$query_blast.fa;
	echo -e "\e[00;34m\033[1mBLAST LLEST. Premi ENTER per a veure els resultats\n\033[0m";
	read enter;
	more -p +num8 ./$query/$query_blast.fa;
    else
	echo -e "\e[00;34m\033[1mBLAST ja existent, premi Y per a veure els resultats, premi qualsevol altra tecla per passar al següent pas\n\033[0m"
	read -n1 -s char
	case "$char" in
	    [Yy])
	    more -p +num8 ./$query/$query_blast.fa
	    ;;
	esac
    fi;

else
    echo -e "\e[00;31m\033[1mLa query introduïda no existeix\n\033[0m";
    exit

fi;


###
###------------FASTA FETCH I FASTA INDEX------------
###

echo -e
echo -en "\e[00;32m\033[1mFASTAINDEX // FASTAFETCH\n\033[0m"

if [ ! -f ./gm.index ];
then
    echo -e "\e[00;31m\033[1mINDEXANT EL GENOMA\033[0m";
    fastaindex /cursos/BI/genomes/project_2013/Gadus_morhua/genome.fa ./gm.index;
fi;


echo -en "\e[00;34m\033[1mCopia l'Scaffold/Contig on es troba el hit: \033[0m"
read region
if [ ! -f ./$query/$region.fa ];
    then
    fastafetch /cursos/BI/genomes/project_2013/Gadus_morhua/genome.fa ./gm.index $region > ./$query/$region.fa;
    echo -e "\e[00;31m\033[1mFASTA Fetch realitzat\n\033[0m"
else
    echo -e "\e[00;31m\033[1mEl FASTA Fetch ja existeix\n\033[0m"
fi;


###
###------------FASTA SUBSEQ------------ 
###

echo -en "\e[00;32m\033[1mFASTASUBSEQ\n\033[0m"

echo -en "\e[00;34m\033[1mFASTASUBSEQ. Introdueix l'inici, hauria de ser 10.000bp menys que l'inici del hit (assegura't que no introdueixes un inici menor al de l'Scaffold/Contig): \033[0m"
read inici
echo -en "\e[00;34m\033[1mIntrodueix la longitud (10.000 + gen + 10.000, assegura't d'introduir una longitud igual o inferior a l'Scaffold/Contig): \033[0m"
read longitud

fastasubseq $query/$region.fa $inici $longitud > ./${query}/${query}_genomic.fa

echo -en "\e[00;34m\033[1mFASTASUBSEQ llest. En prémer ENTER apareixerà la seqüència, per a sortir prem Q \033[0m"
read enter
more  ./${query}/${query}_genomic.fa
echo -e


###
###--------------EXONERATE--------------
###

echo -en "\e[00;32m\033[1mEXONERATE\n\033[0m"

echo -en "\e[00;34m\033[1mPrem Y per a fer exonerate prem qualsevol altra tecla per saltar al següent pas \n\033[0m"
 read -n1 -s char
 case "$char" in
     [Yy])
     if [ ! -f ./${query}/${query}.exonerate.gff ];
         then
	 exonerate -m p2g --showtargetgff -q ./query/${query} -t ./${query}/${query}_genomic.fa > ./${query}/${query}.exonerate.gff
	 echo -en "\e[00;34m\033[1mEn prémer ENTER es mostrarà el resultat de l'exonerate, per a sortir prem Q \n\033[0m"
	 read enter
	 more  ./${query}/${query}.exonerate.gff
	 echo -e
	 egrep -w exon ./${query}/${query}.exonerate.gff > ./${query}/${query}_cdna.gff
	 
	 fastaseqfromGFF.pl ./${query}/${query}_genomic.fa ./${query}/${query}_cdna.gff > ./${query}/${query}_cdna.fa
	 echo -en "\e[00;34m\033[1mEn prémer ENTER es mostrarà el cDNA \033[0m"
	 read enter
	 more ./${query}/${query}_cdna.fa
	 echo -e

	 fastatranslate -F 1 ./${query}/${query}_cdna.fa > ./${query}/${query}_translate.fa
	 echo -en "\e[00;34m\033[1mEn prémer ENTER es mostrarà la proteïna \033[0m"
         read enter
	 more ./${query}/${query}_translate.fa
	 echo -e
      else
	 echo -e "\e[00;34m\033[1mExonerate ja existent, premi Y per a veure els resultats, premi qualsevol altra tecla per passar al següent pas\033[0m"
	 read -n1 -s char
	 case "$char" in
	     [Yy])
	     more ./${query}/${query}.exonerate.gff
	     echo -e
	     echo -e "\e[00;34m\033[1mSi vol veure la proteïna i el cDNA premi Y, premi qualsevol altra tecla per passar al GeneWise\n\033[0m"
	     read -n1 -s char
	     case "$char" in
		 [Yy])
		 echo -e "\e[00;35m\033[1mPROTEÏNA\033[0m"
		 more ./${query}/${query}_cdna.fa
		 echo -e
		 echo -e "\e[00;35m\033[1mcDNA\033[0m"
		 more ./${query}/${query}_translate.fa
	     esac
	     ;;
	 esac
     fi;
     ;;
 esac



###
###-----------------GENEWISE-----------------
###

echo -e
echo -en "\e[00;32m\033[1mGENEWISE\n\033[0m"

echo -en "\e[00;34m\033[1mPrem Y per a fer GENEWISE prem qualsevol altra tecla per saltar al següent pas \n\033[0m"
 read -n1 -s char
 case "$char" in
     [Yy])
     if [ ! -f ./$query/${query}_GW.fa ];
	 then
	 echo -en "\e[00;31m\033[1mGeneWise en procés\n\033[0m"
         genewise -pep -pretty -cdna -gff -both ./query/$query ./${query}/${query}_genomic.fa > ./${query}/${query}_GW.fa
         echo -en "\e[00;34m\033[1mEn prémer ENTER es mostrarà el resultat del GeneWise, per a sortir prem Q \033[0m"
         read enter
         more ./${query}/${query}_GW.fa
     else
        echo -e "\e[00;34m\033[1mGeneWise ja existent, premi Y per a veure els resultats, premi qualsevol altra tecla per passar al següent pas\033[0m"
        read -n1 -s char
        case "$char" in
            [Yy])
            more ./${query}/${query}_GW.fa
            ;;
        esac
     fi;
     ;;
 esac
echo -e

###
###-----------------T_COFFEE-----------------
###

echo -en "\e[00;32m\033[1mT_COFFEE\n\033[0m"

echo -en "\e[00;34m\033[1mPrem Y per a fer el T_COFFEE a partir de l'exonerate prem qualsevol altra tecla per saltar al següent pas \n\033[0m"
 read -n1 -s char
 case "$char" in
     [Yy])
     if [ ! -f ./${query}/${query}_tcoffee_exonerate.fa ];     
	 then
	 t_coffee ./query/$query ./${query}/${query}_translate.fa > ./${query}/${query}_tcoffee_exonerate.fa
	 echo -en "\e[00;34m\033[1mEn prémer ENTER es mostrarà el resultat del TCOFFEE, per a sortir prem Q \n\033[0m"
	 read enter
	 more  ./${query}/${query}_tcoffee_exonerate.fa
	 echo -e
     else
        echo -e "\e[00;34m\033[1mT_COFFEE (Exonerate) ja existent, premi Y per a veure els resultats, premi qualsevol altra tecla per passar al següent pas\033[0m"
        read -n1 -s char
        case "$char" in
            [Yy])
            more ./${query}/${query}_tcoffee_exonerate.fa
            ;;
	esac
     fi;
     ;;
 esac


###
###-----------------SECIs-----------------
###

echo -e
echo -en "\e[00;32m\033[1mSECIs\n\033[0m"

echo -en "\e[00;34m\033[1mPrem Y per a executar SECISearch prem qualsevol altra tecla per saltar al següent pas \n\033[0\
m"
 read -n1 -s char
 case "$char" in
     [Yy])
     if [ ! -f ./${query}/${query}.secis ];
         then
         SECISearch.pl -T < ./${query}/${query}_genomic.fa > ./${query}/${query}.secis
         echo -en "\e[00;34m\033[1mEn prémer ENTER es mostrarà el resultat del SECISearch, per a sortir prem Q \n\033[0m"
         read enter
         more ./${query}/${query}.secis
         echo -e
     else
        echo -e "\e[00;34m\033[1mResultat de SECISearch ja existent, premi Y per a veure els resultats, premi qualsevol altra tecla per acabar\033[0m"
        read -n1 -s char
        case "$char" in
            [Yy])
            more ./${query}/${query}.secis
            ;;
        esac
     fi;
     ;;
 esac



###
###-----------------FINAL-----------------
###

echo -e
echo -en "\e[00;34m\033[1mJa has acabat! Si vols fer una altra proteïna prem Y, prem qualsevol altra tecla per sortir del programa \n\033[0\
m"
 read -n1 -s char
 case "$char" in
     [Yy])
     bash selenofacil.bash
     ;;
     *)
     echo -en "\e[00;32m\033[1mFINS AVIAT!\n\033[0m"
     exit
     ;;
 esac       