#!/bin/bash rm resultats_exonerate.txt 2> error.temp export PATH=/cursos/BI/bin/ncbiblast/bin:$PATH cp /cursos/BI/bin/ncbiblast/.ncbirc ~/ export PATH=/cursos/BI/bin/exonerate/i386/bin:$PATH export PATH=/cursos/BI/bin:$PATH export WISECONFIGDIR=/cursos/BI/soft/wise-2.2.0/wisecfg adresa="/cursos/BI/genomes/protists/2012" mkdir regions mkdir subseq mkdir exonerate_output mkdir exons mkdir cDNA mkdir translations mkdir translationsok mkdir genewise for proteins in blast_selec/* ; do { for genome in $proteins/*; do { for hit in $genome/* ; do { ### Assignem a les variables els noms sense rutes ni extensions proteins=`basename $proteins` genome=`basename $genome` hit=`basename $hit` hit=${hit%.txt} echo ${proteins}_${genome}_${hit}: ### Per emmagatzemar la regio; on apareix el hit regio=`cat ./blast_selec/$proteins/$genome/$hit.txt | cut -f 2` fastafetch $adresa/$genome/genome.fa ./llibreria/genomes/$genome.index $regio > ./regions/$regio.fa ### Aqui; definim l'inici i el final del hit en la regio inici=`cat ./blast_selec/$proteins/$genome/$hit.txt | cut -f 9` final=`cat ./blast_selec/$proteins/$genome/$hit.txt | cut -f 10` if [ "$inici" -gt "$final" ]; then inici="$final" fi start=$(expr $inici - 15000 ) length="50000" ### FASTASUBSEQ: Retalla una regio; al voltant del gen que volem fer servir fastasubseq ./regions/$regio.fa $start $length > ./subseq/${proteins}_${genome}_${hit}_genomic.fa 2> error_msg.temp ### Aixo; ens servira per modificar variables en cas que no hi hagi prou bases en la regio o que l'inici estigui massa aprop error=`cat error_msg.temp` if [ "$error" != "" ]; then error_llarg=`cat error_msg.temp | egrep "before end"` error_curt=`cat error_msg.temp | egrep "Unknown flag"` ### Si es passa de llarg, establim la llargada perque arribi al final if [ "$error_llarg" != "" ]; then llargada=$error_llarg llargada=${llargada##*(} llargada=${llargada%)} length=$(( $llargada - $start)) fastasubseq ./regions/$regio.fa $start $length > ./subseq/${proteins}_${genome}_${hit}_genomic.fa fi ### Si l'inici esta massa aprop establim l'start en 0 if [ "$error_curt" != "" ]; then start="0" fastasubseq ./regions/$regio.fa $start $length > ./subseq/${proteins}_${genome}_${hit}_genomic.fa 2> error_msg_2.temp error_2=`cat error_msg_2.temp` if [ "$error_2" != "" ]; then error_2_llarg=`cat error_msg_2.temp | egrep "before end"` if [ "$error_2_llarg" != "" ]; then llargada=$error_2_llarg llargada=${llargada##*(} llargada=${llargada%)} length=$(( $llargada - $start)) fastasubseq ./regions/$regio.fa $start $length > ./subseq/${proteins}_${genome}_${hit}_genomic.fa 2> error_msg_3.temp fi fi fi fi ### EXONERATE : Prediccio de gens echo "Iniciant exonerate" exonerate -m p2g --showtargetgff -q ./llibreria/$proteins -t ./subseq/${proteins}_${genome}_${hit}_genomic.fa > ./exonerate_output/exonerate_${proteins}_${genome}_${hit}.gff 2> error_de_substitucio.temp echo "Exonerate acabat!" ### Per extreure els exons echo "Preparant i executant extreure exons" exon=`grep -w exon ./exonerate_output/exonerate_${proteins}_${genome}_${hit}.gff` grep -w exon ./exonerate_output/exonerate_${proteins}_${genome}_${hit}.gff > ./exons/exon_${proteins}_${genome}_${hit}.gff echo ${proteins}_${genome}_${hit} fet ### Per traduir el cDNA echo 'Traduint a cDNA' fastaseqfromGFF.pl ./subseq/${proteins}_${genome}_${hit}_genomic.fa ./exons/exon_${proteins}_${genome}_${hit}.gff > ./cDNA/cDNA_${proteins}_${genome}_${hit}.fa fastatranslate ./cDNA/cDNA_${proteins}_${genome}_${hit}.fa > ./translations/aa_${proteins}_${genome}_${hit}.fa echo ${proteins}_${genome}_${hit} fet ## Per escollir el frame 1 si i nomes si es l'optim fastatranslate ./cDNA/cDNA_${proteins}_${genome}_${hit}.fa -F 1 > ./translationsok/aa_${proteins}_${genome}_${hit}.fa ### Pel Genewise echo 'Començant Genewise' genewise -pep -pretty -cdna -gff ./llibreria/$proteins ./subseq/${proteins}_${genome}_${hit}_genomic.fa > genewise/genewise_${proteins}_${genome}_${hit}.txt } done } done } done rm *.temp