#!/usr/bin/perl -w

use strict;

my $fam;     # Família o subfamília de selenoproteïnes
my $con;     # Contig
my $posi;    # Posició inicial
my $posf;    # Posició final
my $len;     # Llargada de la seqüència

print "Amb quina subfamília de selenoproteïnes estàs treballant? En cas que no n'hi hagi posa el mateix nom de la família. ";
$fam = <STDIN>;
chomp($fam);

print "Quin és el nom del contig que vols estudiar? ";
$con = <STDIN>;
chomp($con);

# Fem una carpeta amb el nom de la família/subfamília seguit del nom del contig. Fem una carpeta per cada contig.
system ("mkdir $fam.$con");

# Determinació de la posició inicial del contig, la posició final i la llargada.
print "Quina és la posició inicial del contig? ";
$posi = <STDIN>;
$posi = $posi-50000;
chomp($posi);

print "Quina és la posició final del contig? ";
$posf = <STDIN>;
$posf = $posf+50000;
chomp($posf);

$len = ($posf)-($posi);

# Procedim a executar des del fastafetch fins al fastatranslate

system ("fastafetch  /cursos/20428/BI/genomes/2017/Oncorhynchus_mykiss/genome.fa /cursos/20428/BI/genomes/2017/Oncorhynchus_mykiss/genome.index $con > $con.fa");

print "Fastafetch fet\n";

system ("fastasubseq $con.fa $posi $len > genomic.$con.fa");

print "Fastasubseq fet\n";

system ("exonerate -m p2g --showtargetgff -q /export/home/u114489/Treball/Blast/ZF/$fam.X.fa -t genomic.$con.fa | egrep -w exon > $fam.OM.$con.gff");

print "Exonerate fet\n";

system ("fastaseqfromGFF.pl genomic.$con.fa $fam.OM.$con.gff > $con.nuc.fa");

print "FastaseqfromGFF fet\n";

system ("fastatranslate $con.nuc.fa -F 1 > $con.pep.fa");

print "Fastatranslate fet\n";

# Canvi de * per X

system ("sed s/*/X/g $con.pep.fa > $con.pepX.fa");

# Executem el TCOFFEE

system ("t_coffee $con.pepX.fa /export/home/u114489/Treball/Blast/ZF/$fam.X.fa > $con.tcoffee.txt");

# Procedim a moure tots els arxius creats a la carpeta creada anteriorment.

system ("mv $con.fa $fam.$con");
system ("mv genomic.$con.fa $fam.$con");
system ("mv $fam.OM.$con.gff $fam.$con");
system ("mv $con.nuc.fa $fam.$con");
system ("mv $con.pep.fa $fam.$con");
system ("mv $con.pepX.fa $fam.$con");
system ("mv $con.pepX.aln $fam.$con");
system ("mv $con.pepX.html $fam.$con");
system ("mv $con.tcoffee.txt $fam.$con");
