#!/usr/bin/perl -w
# 2006/05/16 - I. Dutour

my $usage = "Utilisation : exo3.pl FicCodons FicMultiFasta\n";
die $usage if (!defined(@ARGV) || $#ARGV != 1);

my $codonFile = $ARGV[0];
open (COD, $codonFile) || die "Impossible d'ouvrir \"$codonFile\": $!";

my $seqFile = $ARGV[1];
open (SEQ, $seqFile) || die "Impossible d'ouvrir \"$seqFile\": $!";

#
# lecture d'un fichier d'usage des codons
#
my %codons = ();
while (<COD>) {
    ($c,$aa) = split;
    $codons{$c} = $aa;
}

close (COD);

#
# lecture d'un fichier multi-fasta
#

# lecture de la première description
$lecture = <SEQ>;

while ($lecture) {
    # on récupère le nom de la séquence 
    #
    ($nom) = ($lecture =~ /^>(\w+)/);

    # lecture de la séquence elle-même
    #
    $sequence = "";
    while ($lecture = <SEQ>) {
        chomp($lecture);
        last
	    if ($lecture =~ /^>/); # on s'arrête à la description suivante
        $sequence .= $lecture;
    }

    # traitement de la séquence
    #
    print "$nom :\n";
    $pos = 0;
    $proteine = "";
    while ($pos < length($sequence)-3) {
        $codon = substr($sequence,$pos,3);
        $proteine .= $codons{$codon};
        $pos +=  3;
    }
    print "$proteine\n";
}

close (SEQ);

