Une séquence d’ADN est une chaîne de caractères
Une séquence d’ADN s’écrit avec quatre lettres : A, C, G et T. Pour un programme, c’est donc une simple chaîne de caractères.
La bio-informatique traite ces chaînes avec du code. Vous allez compter les lettres, mesurer la part de G et de C, puis calculer le brin opposé. Toutes les séquences de ce module sont inventées.
À la fin de cette leçon
Remarque
Je peux compter les bases d’une séquence et calculer son complément inverse.
Mots clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Base | une lettre de la séquence | A |
| Séquence | la suite des bases, de gauche à droite | |
| Taux de GC | la part des bases qui sont G ou C | |
| Complément | la séquence où chaque base est remplacée par sa partenaire | |
| Complément inverse | le complément, lu dans l’autre sens |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Quatre bases suffisent à écrire une séquence
Chaque lettre est une base : A, C, G ou T. Une séquence est la suite de ces bases, lue de gauche à droite.
En Python, on la range dans une chaîne. len(sequence) donne sa longueur et sequence.count("G") compte les G.
Exemple travaillé : compter ATGGCGCTAAGC
| Base | Combien | Calcul |
|---|---|---|
| A | 3 | positions 1, 9 et 10 |
| T | 2 | positions 2 et 8 |
| G | 4 | positions 3, 4, 6 et 11 |
| C | 3 | positions 5, 7 et 12 |
| Total | 12 | 3 + 2 + 4 + 3 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Le taux de GC est une part
Le taux de GC est le nombre de bases G ou C divisé par la longueur. Dans notre séquence, 7 bases sur 12 sont G ou C : 7 divisé par 12 donne environ 0,583.
Une séquence sans aucun G ni C a un taux de 0. Une séquence faite uniquement de G et de C a un taux de 1.
Une erreur fréquente
Attention
Beaucoup divisent le nombre de G et de C par le nombre de A et de T. Le taux de GC se divise toujours par la longueur totale. Avec 7 et 5, la bonne réponse est 7 sur 12, pas 7 sur 5.
Compter G et C avec une boucle
sequence = "ATGGCGCTAAGC"
# On parcourt la séquence base par base et on compte les G et les C.
total_gc = 0
for base in sequence:
if base == "G" or base == "C":
total_gc = total_gc + 1
print("longueur", len(sequence))
print("G ou C", total_gc)
print("taux de GC", round(total_gc / len(sequence), 3))
# Changez la séquence puis relancez.
Compter dans le labo
docker exec jupyter python3 -c "s='ATGGCGCTAAGC'; print(len(s), s.count('G') + s.count('C'))"Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Ce que la commande affiche
La commande lance Python dans le labo. Elle prend la même séquence inventée et affiche deux nombres : la longueur, puis le nombre de G et de C ajoutés.
Vous lisez donc 12 7. Divisez 7 par 12 pour retrouver le taux de GC.
Le complément inverse lit le brin opposé
L’ADN a deux brins. En face d’un A il y a un T, en face d’un G il y a un C. Remplacer chaque base par sa partenaire donne le complément.
L’autre brin se lit en sens contraire. On retourne donc le complément : c’est le complément inverse.
Exemple travaillé : le brin opposé
| Étape | Résultat |
|---|---|
| Séquence de départ | ATGGCGCTAAGC |
| Complément, base par base | TACCGCGATTCG |
| Complément inverse (on retourne) | GCTTAGCGCCAT |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Calculer le complément inverse
table = {"A": "T", "T": "A", "G": "C", "C": "G"}
sequence = "ATGGCGCTAAGC"
# On remplace chaque base par sa complémentaire, puis on retourne le résultat.
complement = ""
for base in sequence:
complement = complement + table[base]
print("complément ", complement)
print("complément inverse", complement[::-1])
Le complément inverse dans le labo
docker exec jupyter python3 -c "s='ATGGCGCTAAGC'; print(s[::-1].translate(str.maketrans('ACGT', 'TGCA')))"Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Pour aller plus loin
Dans votre carnet, inventez deux séquences de vingt bases : l’une riche en G et en C, l’autre pauvre. Calculez leurs taux de GC.
Écrivez une phrase qui dit laquelle a le taux le plus haut et comment vous l’avez vu.