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

my $usage = "Utilisation : exo1.pl nomFichier\n";
die $usage if (!defined(@ARGV) || $#ARGV != 0);

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

my ($seqName, $seqLine, $c1, $c2);

$seqName = <SEQ>;
$c1 = 0;
$c2 = 0; 
while ($seqLine = <SEQ>) {
   chomp ($seqLine);
   $c1 += ($seqLine =~ tr/GCgc//);
   $c2 += length( $seqLine);
}
close (SEQ);

print "c1  = $c1\n";
print "c2  = $c2\n";
print "res = ", $c1/$c2*100,"\n";


###############################################
# Decrivez ici brievement ce que fait ce script
# 
# lecture d'une séquence au format fasta
# calcul du nombre de G+C, de la longueur de la séquence, et du pourcentage G+C
# 
# 
# 
###############################################
# Justifiez en quelques mots la structure de
# l'algorithme mis en oeuvre dans ce script
# 
# les calculs se font ligne par ligne, donc morceau par morceau de la séquence
# car compter le nb de G+C ou le nb de nucléotide ne nécessite pas de 
# concaténer et stocker dans une variable la séquence (pas de problème avec
# les retours à la ligne)
###############################################
# Que doit-on changer (et pourquoi) si l'on veut  
# rajouter par exemple le calcul du nombre de 
# codons START et STOP dans ce script ?
# 
# cette fois, pour pouvoir détecter les codons à cheval sur 2 lignes, il faut
# concaténer et stocker dans une variable la séquence avant de la traiter
# 
# 
