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

# compter les codons START

#
# lecture d'un fichier multi-fasta
#

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

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 = <>) {
        chomp($lecture);
        last
	    if ($lecture =~ /^>/); # on s'arrête à la description suivante
        $sequence .= $lecture;
    }

    # traitement de la séquence
    #
    @starts = ($sequence =~ /ATG/g);
    $nbStarts = $#starts + 1;
    @stops = ($sequence =~ /(TAA|TGA|TAG)/g);
    $nbStops = $#stops + 1;
    print "$nom :\n";
    print "\t$nbStarts codons START\n";
    print "\t$nbStops codons STOP\n";
}


###############################################
# Justifiez ici brievement votre algorithme de
# traitement des séquences :
# 
# Seulement la partie "Traitement de la séquence" est à modifier.
# On peut utiliser l'extraction globale avec expression régulière SEPAREMENT sur 
# le START et sur les STOP, car ils ne se chevauchent pas entre eux.
# Les mettre dans un tableau et compter leur nombre suffit, pas besoin d'une boucle
# de parcours pour les compter.

