return @t;
}
Barême:
fonction qui renvoie un tableau :1, m : 1
Question 5 (1 point)
À l’aide des fonctions précédentes, écrire une fonction compte_codons qui donne la fréquence d’appa-
rition des différents codons présents dans une séquence. Cette fonction renvoie un tableau associatif
dans lequel est associé à chaque codon présent dans la séquence le nombre de fois où il apparaît.
Solution:
sub compte_codons {
my $s = $_[0];
return nb_de_fois(decouper_en_codons($s))
}
Barême:
fonction+arguments :0.5,appels de fonction :0.5
Question 6 (2 points)
La séquence de reconnaîssance de l’enzyme de restriction HpyF10VI est constituée d’un G, suivi d’un
C, suivi de 7 nucléotides (n’importe lesquels), suivi d’un G et d’un C. Combien de mots comporte ce
langage ? Donner un exemple de mot de ce langage. Donner l’expression régulière correspondante.
Solution:
Ce langage comporte 47=16 384 mots. L ={GCAGGGGCCGC,GCAAGTGCCGC, . . . }
regex =GC[ACTG]{7}GC
Barême:
langage : exemple =.5, nb mots=.5, regex :1
Question 7 (2 points)
L’enzyme HpyF10VI découpe la séquence d’ADN après la septième lettre du site de reconnaissance.
Écrire une fonction decoupe qui prend comme argument une séquence d’ADN et qui renvoie la séquence
découpée sous forme d’un tableau de deux éléments. Par exemple, l’instruction
my @t = decoupe("TTCDAAGGCAGGGGCCGCA");
doit placer dans le tableau tdeux éléments : "TTCDAAGGCAGGGG" et "CCGCA".
Solution:
sub decoupe {
my @t = ();
if ($_[0] =~ m/(.*GC[ACTG]{5})([ACTG]{2}GC.*)/){
@t = ($1,$2);
}
return @t;
}
Barême:
m :.5,parentheses :.5,retour tableau :1
Question 8 (3 points)
Page 3