BCM2550 - Automne 2010 – TP2 – Les tableaux et les tables de
hachages
Ce TP n’est pas à rendre, néanmoins, il est important de (bien) le faire.
Partie I
Question 1: Ecrire un programme qui demande à l'utilisateur d'entrer une séquence en acides
aminés, et calcule le nombre d'occurrence de chacun des 20 acides aminés dans cette séquence.
Nous avions vu, lors du TP1, une manière simple de calculer la composition d’une séquence ADN
(en comptant le nombre de A, de C, de G et de T séparément. Toutefois, avec 20 acides aminés,
la technique alors utilisée devient fastidieuse. Pour aller plus vite, on vous propose de procéder
de la manière suivante:
Au tout début du script, construisez-vous un tableau contenant l’ensemble des 20 lettres
correspondant aux 20 acides aminés :
my @aminoacids =
('A','C','D','E','F','G','H','I','K','L','M','N','P','Q','R'
,'S','T','V','W','Y');
my $naa = 20;
De cette manière, vous pouvez accéder à un acide aminé particulier directement à partir de son
index dans le tableau :
print “$aminoacids[3]\n”; # affichera E
for (my $i=0; $i<$naa; $i = $i + 1) {
print “$aminoacids[$i]\n”;
}
Affichera tous les acides aminés les uns en dessous des autres.
Ensuite, créez un tableau @count de dimension 20, et remplissez le de telle sorte que
$count[$i] va contenir le nombre d'occurrences de l'acide aminé numéro $i dans la
séquence. Donc, $count[0]va contenir le nombre de A, $count[1]le nombre de C, etc. Ce
tableau doit être initialisé de telle sorte que les 20 entrées sont toutes égales à 0.
Enfin, pour remplir le tableau @count, il faut faire une boucle allant lire une par une les
positions (les 'lettres') de la séquence protéique (en utilisant substr()), et incrémentant les
entrées correspondantes dans le tableau @count.
A la fin, il faut afficher chaque acide aminé, le nombre total de fois qu'il a été observé, et la
fréquence correspondante (nombre de fois sur nombre total d'acides aminés dans la séquence).