#!/usr/bin/perl -w

# orfPredict.pl
# 
# Recebe como parametro um arquivo contendo uma unica sequencia (contig) e seu id
# 
# Predição de genes com o Glimmer3.02
# 
# 1. Obter ORF longas em uma seqüência
#    $ long-orfs EcoliK12.fasta orfs.out
# 
# 2. Extrair as seqüências das ORF
#    $ extract EcoliK12.fasta orfs.out > orfs.fasta
# 
# 3. Construir o modelo HMM a partir das seqüências das ORF
#    $ build-icm icm.out < orfs.fasta
# 
# 4. Identificar os genes no genoma da E. coli
#    $ glimmer3 EcoliK12.fasta icm.out genes
# 
# 5. Extrair as seqüências dos genes identificados
#    $ extract EcoliK12.fasta genes.predict
# 
# 

use strict;

my $contigFasta = shift;

my $glimmerBinDir = '/usr/local/glimmer3.02/bin';

my $orfsOut = 'orfs.out';
system("rm $orfsOut 2> /dev/null");
my $orfsFasta = 'orfs.fas';
system("rm $orfsFasta 2> /dev/null");
my $icmOut = 'icm.out';
system("rm $icmOut 2> /dev/null");
my $genesOut = 'genes';
system("rm $genesOut 2> /dev/null");
my $genesFasta = 'genes.fas';
system("rm $genesFasta 2> /dev/null");

system("$glimmerBinDir/long-orfs -t1.15  $contigFasta $orfsOut");
system("$glimmerBinDir/extract -t $contigFasta $orfsOut > $orfsFasta");
system("$glimmerBinDir/build-icm -r $icmOut < $orfsFasta");
system("$glimmerBinDir/glimmer3 $contigFasta $icmOut $genesOut");
system("$glimmerBinDir/extract $contigFasta $genesOut.predict > $genesFasta");

