#!/usr/bin/perl -w

# trRNAscan.pl
# 
# Recebe como entrada o arquivo fasta da ORF.
# Roda o trRNAscan e salva as informações sobre os tRNAs (caso encontrados) no banco.

use DBI;
use DBD::mysql;

use strict;

our $DB_HOST;
our $DB_USER;
our $DB_PASS;
require '../lib/config.pl';

my $DB_NAME = shift;
my $nomeMontagem = shift;

my $dbh = DBI->connect("DBI:mysql:$DB_NAME:$DB_HOST",$DB_USER,$DB_PASS,{RaiseError => 1});

my $contigFile = shift;
my $contigId = shift;

my $tRNAscan = "/usr/local/tRNAscan-SE-1.23/tRNAscan-SE";

my $outFile = "trna.out";
system("rm $outFile 2> /dev/null");

system("$tRNAscan -B $contigFile > $outFile 2> /dev/null");

open(TRNARESULTS, "<$outFile");
my @lines = <TRNARESULTS>;

foreach (@lines){
	my ($tRNAnum, $ini, $fim, $tipo, $antiCodon, $score) = ($_ =~ /(\d+)\s+(\d+)\s+(\d+)\s+(\w{3})\s+(\w{3}).*\s(\d+\.\d{2})/i);
	unless ($tRNAnum){ next; }

	my $q = "INSERT INTO tRNA VALUES (\'$nomeMontagem\', $contigId, $tRNAnum, $ini, $fim, \'$tipo\', \'$antiCodon\', \'$score\')";

	$dbh->do($q);

}
