#!/usr/bin/perl -w

use strict;


my $cline;                  # variable que contendrá información sobre el programa utilizado y los 
                            # input utilizados

my $target;                 # variable que contiene información sobre el contig de chimpancé predicho
                            # con el tBLASTn
 
my $id;                     # variable que contiene la identidad de la selenoproteína problema        

my $inicioquery;            # estas dos variable contienen el principio y el final de la región de 
                            # la selenoproteína humana que exonerate es capaz de alinear con la 
my $finalquery;             # secuencia predicha de chimpancé, respectivamente

my $contigchr;              # variable que contiene el cromosoma en el que se encuentra el contig

my $iniciosubject;          # estas dos variable contienen el principio y final de la región del 
                            # contig de chimpancé predicho y que alinea con la selenoproteína humana
my $finalsubject;

my $strand;                 # contiene la hebra del DNA de chimpancé en la que se ha predicho una
                            # selelonoproteína

my $score;                  # variable que contiene el score que considera exonerate para la alineación




while (<>){                                 # mediante este bucle lo que buscamos es extraer la 
                                            # información que nos interes del el output del exonerate

    if ($_=~m/Command line:\s+(.*)/){       # con esta expresión regular extremos la información que 
                                            # viene a continuación de "Command line: " y la guardamos en
	$cline = $1;                        # la variable $cline que la imprimimos
	
	print "\n ==========================================================================================================================\n";

	print "\n$cline\n";

}
    
    
    if ($_=~m/Target:\s+(.*)/){              # esta expresión regular va a permitir obtener la 
                                             # información sobre el contig predicho con el tBLASTn 
	$target = $1;                        # y que sabemos que contiene una alineación ** o *C. 
                                             # esta información la guarda en $target      
}



    if ($_=~m/vulgar:\s+(.*)\s+(\d+)\s+(\d+)\s+\.\s+(.*)\s+(\d+)\s+(\d+)\s+([\+\-])\s+(\d+)\.*/){
	
	$id = $1;                            # mediante esta expresión regular conseguimos infomación
                                             # que nos interesa del output del exonerate, como puede
	$inicioquery = $2;                   # ser la identidad de la selenoproteina problema, el 
                                             # principio y el final de la región de la selenoproteína
	$finalquery = $3;                    # humana que exonerate es capaz de alinear con la secuencia
                                             # predicha de chimpancé, principio y final de la región  
	$contigchr = $4;                     # del contig de chimpancé predicho y que alinea con la
                                             # selenoproteína humana, hebra del DNA de chimpancé en la
	$iniciosubject = $5;                 # que se ha predicho la selelonoproteína, el score que
                                             # considera exonerate para esta alineación y finalmente
	$finalsubject = $6;                  # el cromosoma en el que se encuentra el contig.

	$strand = $7;

	$score = $8;

	
	print "Query: $id :: $inicioquery - $finalquery\n";             

	print "Target: $target :: $iniciosubject - $finalsubject\n";

	print "Strand: $strand\n";

	print "Score: $score\n";

}


    if ($_=~m/\d+\s+exonerate:protein2genome(.*)/){         # finalmente nos interesa guardar toda la
                                                            # información descrita en formato GFF en el
	print "$contigchr exonerate:protein2genome $1\n";   # output de exonerate. 

}

}

print "\n ====================================================================================\n" 

