Obtenir le complément inverse d'un brin d'ADN à l'aide de Python

Aditya Raj 30 janvier 2023
  1. Complément inverse d’un brin d’ADN
  2. Obtenir le complément inverse d’un brin d’ADN à l’aide de la boucle for en Python
  3. Obtenir le complément inverse d’un brin d’ADN à l’aide de la méthode join() en Python
  4. Obtenir le complément inverse d’un brin d’ADN à l’aide de la méthode get() en Python
  5. Obtenir le complément inverse d’un brin d’ADN à l’aide de la compréhension de liste en Python
  6. Obtenir le complément inverse d’un brin d’ADN à l’aide de la méthode translate() en Python
  7. Obtenir le complément inverse d’un brin d’ADN à l’aide du module Biopython en Python
  8. Conclusion
Obtenir le complément inverse d'un brin d'ADN à l'aide de Python

Tout en travaillant sur des tâches scientifiques en Python, nous devons effectuer certaines tâches. Cet article traite de différentes manières d’obtenir le complément inverse d’un brin d’ADN à l’aide de Python.

Complément inverse d’un brin d’ADN

Un brin d’ADN est principalement représenté par quatre types de bases, à savoir l’adénine (A), la thymine (T), la guanine (G) et la cytosine (C). Il peut également y avoir d’autres types de bases.

Chaque brin d’ADN est représenté par une série de lettres A, T, G et C. Par exemple, ACGTAATTGGCC peut être l’un des brins d’ADN.

Pour obtenir le complément d’un brin d’ADN, nous remplaçons A par T, C par G, G par C et T par A dans le brin d’origine. Par exemple, le complément de ACGTAATTGGCC est TGCATTAACCGG.

Pour inverser le complément d’un brin d’ADN, nous allons inverser les caractères du complément du brin d’ADN. Par conséquent, le complément inverse sera GGCCAATTACGT.

Voyons maintenant comment obtenir le complément inverse d’une chaîne d’ADN en utilisant Python.

Obtenir le complément inverse d’un brin d’ADN à l’aide de la boucle for en Python

Nous suivrons les étapes suivantes pour obtenir le complément inverse d’un brin d’ADN en utilisant une boucle for en Python.

  • Nous allons d’abord définir une chaîne vide nommée reversed_strand pour stocker la chaîne de sortie.
  • Ensuite, nous trouverons la longueur du brin d’ADN d’entrée à l’aide de la fonction len(). La fonction len() prend la chaîne du brin d’ADN et renvoie la longueur.
  • Après cela, nous allons parcourir les caractères du brin d’ADN d’entrée en utilisant une boucle for dans l’ordre inverse.
  • Lors de l’itération, si nous rencontrons le caractère A, nous ajouterons T à reversed_strand. De même, nous ajouterons T, G et C à reversed_strand si nous rencontrons A, C et G dans la séquence.
  • Si nous rencontrons un autre caractère dans le brin d’ADN d’entrée, nous ajouterons le même caractère au reversed_strand.
  • Après avoir exécuté la boucle for, nous obtiendrons le brin d’ADN inversé dans la variable reversed_strand.

Vous pouvez observer cela dans l’exemple suivant.

input_strand = "ACGTAATTGGCC"
reversed_strand = ""
length = len(input_strand)
for i in range(length):
    character = input_strand[length - 1 - i]
    if character == "A":
        reversed_strand = reversed_strand + "T"
    elif character == "T":
        reversed_strand = reversed_strand + "A"
    elif character == "G":
        reversed_strand = reversed_strand + "C"
    elif character == "C":
        reversed_strand = reversed_strand + "G"
    else:
        reversed_strand = reversed_strand + character
print("The input DNA strand is:", input_strand)
print("The reverse complement is:", reversed_strand)

Production:

The input DNA strand is: ACGTAATTGGCC
The reverse complement is: GGCCAATTACGT

Obtenir le complément inverse d’un brin d’ADN à l’aide de la méthode join() en Python

Dans l’approche ci-dessus, lors de la création de reversed_strand, une nouvelle chaîne est créée pour chaque caractère dans le brin d’ADN d’entrée. Cela peut être coûteux en temps et en mémoire si les brins d’ADN d’entrée sont trop longs.

Pour éviter cela, nous pouvons utiliser une liste pour obtenir le complément inverse d’un brin d’ADN en utilisant Python.

Nous utiliserons les étapes suivantes pour inverser la complémentation d’un brin d’ADN en utilisant une boucle for, une liste et la méthode join().

  • Tout d’abord, nous allons créer une liste vide nommée complement_chars pour stocker les caractères du complément inverse du brin d’ADN.
  • Ensuite, nous trouverons la longueur du brin d’ADN d’entrée à l’aide de la fonction len().
  • Après cela, nous allons parcourir les caractères du brin d’ADN d’entrée en utilisant une boucle for dans l’ordre inverse.
  • Dans les itérations, si nous rencontrons le caractère A, nous ajouterons T à complement_chars en utilisant la méthode append(). La méthode append(), lorsqu’elle est invoquée sur complement_chars, prend un caractère comme argument d’entrée et l’ajoute à complement_chars.
  • De même, nous ajouterons T, G et C à complement_chars si nous rencontrons A, C et G dans la séquence.
  • Si nous rencontrons un autre caractère dans le brin d’ADN d’entrée, nous ajouterons le même caractère à complement_chars.
  • Après avoir exécuté la boucle for, nous obtiendrons une liste de caractères du complément inverse du brin d’ADN d’entrée dans complement_chars.
  • Après cela, nous utiliserons la méthode join() pour obtenir le complément inverse du brin d’ADN d’origine. La méthode join(), lorsqu’elle est invoquée sur une input_string, prend un objet itérable comme argument d’entrée ; après exécution, il retourne une nouvelle chaîne contenant les éléments de l’objet itérable comme ses caractères, séparés par input_string.
  • Pour obtenir le complément inverse du brin d’ADN à l’aide de la méthode join(), nous invoquerons la méthode join() sur une chaîne vide avec complement_chars comme argument d’entrée. Après avoir exécuté la méthode join(), nous obtiendrons le complément inverse du brin d’ADN d’entrée.

Vous pouvez observer cela dans l’exemple suivant.

input_strand = "ACGTAATTGGCC"
reversed_strand = ""
complement_chars = []
length = len(input_strand)
for i in range(length):
    character = input_strand[length - 1 - i]
    if character == "A":
        complement_chars.append("T")
    elif character == "T":
        complement_chars.append("A")
    elif character == "G":
        complement_chars.append("C")
    elif character == "C":
        complement_chars.append("G")
    else:
        complement_chars.append(character)
reversed_strand = "".join(complement_chars)
print("The input DNA strand is:", input_strand)
print("The reverse complement is:", reversed_strand)

Production:

The input DNA strand is: ACGTAATTGGCC
The reverse complement is: GGCCAATTACGT

Obtenir le complément inverse d’un brin d’ADN à l’aide de la méthode get() en Python

Au lieu d’utiliser le bloc if-else dans la boucle for, nous pouvons utiliser un dictionnaire et la méthode get() pour obtenir le complément inverse d’un brin d’ADN en utilisant Python. Pour cette tâche, nous allons créer le dictionnaire suivant.

reverse_dict = {"A": "T", "T": "A", "G": "C", "C": "G"}

La méthode get() récupère une valeur associée à une clé dans un dictionnaire. Lorsqu’elle est invoquée sur un dictionnaire, la méthode get() prend la clé comme premier argument d’entrée et une valeur facultative comme deuxième argument d’entrée.

Si la clé est présente dans le dictionnaire, elle renvoie la valeur qui lui est associée. Sinon, la méthode get() renvoie la valeur optionnelle passée en second argument.

Nous utiliserons les étapes suivantes pour inverser le complément d’un brin d’ADN en utilisant la méthode get() et reverse_dict.

  • Tout d’abord, nous allons définir une chaîne vide nommée reversed_strand pour stocker la chaîne de sortie.
  • Ensuite, nous trouverons la longueur du brin d’ADN d’entrée à l’aide de la fonction len().
  • Après cela, nous parcourrons les caractères du brin d’ADN d’entrée dans l’ordre inverse en utilisant une boucle for.
  • Lors de l’itération, nous invoquerons la méthode get() sur reverse_dict avec le caractère courant comme premier et deuxième argument. Si le caractère courant est présent dans reverse_dict, la méthode get() renverra le complément de brin d’ADN ; sinon, la méthode get() renverra le caractère courant.
  • Nous ajouterons la sortie de la méthode get() à reversed_strand.
  • Après avoir exécuté la boucle for, nous obtiendrons le brin d’ADN inversé dans la variable reversed_strand.

Vous pouvez observer cela dans l’exemple suivant.

input_strand = "ACGTAATTGGCC"
reversed_strand = ""
reverse_dict = {"A": "T", "T": "A", "G": "C", "C": "G"}
length = len(input_strand)
for i in range(length):
    character = input_strand[length - 1 - i]
    reversed_strand = reversed_strand + reverse_dict.get(character, character)

print("The input DNA strand is:", input_strand)
print("The reverse complement is:", reversed_strand)

Production:

The input DNA strand is: ACGTAATTGGCC
The reverse complement is: GGCCAATTACGT

Comme indiqué précédemment, l’approche consistant à créer des chaînes dans la boucle for est coûteuse. Par conséquent, nous pouvons utiliser une liste et la méthode join() avec la méthode get() pour obtenir le complément inverse d’un brin d’ADN à l’aide de Python, comme le montre l’exemple suivant.

input_strand = "ACGTAATTGGCC"
reversed_strand = ""
reverse_dict = {"A": "T", "T": "A", "G": "C", "C": "G"}
complement_chars = []
length = len(input_strand)
for i in range(length):
    character = input_strand[length - 1 - i]
    complement_chars.append(reverse_dict.get(character, character))
reversed_strand = "".join(complement_chars)
print("The input DNA strand is:", input_strand)
print("The reverse complement is:", reversed_strand)

Production:

The input DNA strand is: ACGTAATTGGCC
The reverse complement is: GGCCAATTACGT

Ici, nous avons d’abord créé une liste de caractères dans le complément inverse tout en itérant le brin d’ADN d’entrée. Après cela, nous avons créé le complément inverse en joignant les caractères à l’aide de la méthode join().

Obtenir le complément inverse d’un brin d’ADN à l’aide de la compréhension de liste en Python

Au lieu d’utiliser la boucle for, vous pouvez également utiliser la compréhension de liste pour inverser la complémentation d’un brin d’ADN à l’aide de Python.

Nous allons d’abord inverser le brin d’ADN d’entrée en utilisant l’indexation pour compléter un brin d’ADN en utilisant la compréhension de liste. Après cela, nous utiliserons la compréhension de liste avec la méthode get() et reverse_dict créée dans le dernier exemple pour obtenir une liste de caractères du complément inverse.

Une fois que nous aurons obtenu la liste des caractères, nous utiliserons la méthode join() pour trouver le complément inverse du brin d’ADN d’entrée, comme indiqué dans l’exemple suivant.

input_strand = "ACGTAATTGGCC"
reversed_strand = ""
reverse_dict = {"A": "T", "T": "A", "G": "C", "C": "G"}
temp = input_strand[::-1]
complement_chars = [reverse_dict.get(character) for character in temp]
reversed_strand = "".join(complement_chars)
print("The input DNA strand is:", input_strand)
print("The reverse complement is:", reversed_strand)

Production:

The input DNA strand is: ACGTAATTGGCC
The reverse complement is: GGCCAATTACGT

Obtenir le complément inverse d’un brin d’ADN à l’aide de la méthode translate() en Python

On peut aussi trouver le complément inverse d’un brin d’ADN en utilisant la méthode translate(). Pour cela, nous utiliserons les étapes suivantes.

  • Tout d’abord, nous inverserons le brin d’ADN d’entrée en utilisant l’indexation des chaînes. Après cela, nous allons créer une table de traduction en utilisant la fonction maketrans().
  • La fonction maketrans() prend deux chaînes comme arguments d’entrée, et la longueur des deux chaînes doit être la même. Après exécution, il renvoie une table de traduction dans laquelle chaque caractère de la première chaîne est mappé sur le caractère à la même position dans la deuxième chaîne.
  • En invoquant la méthode maketrans() sur le brin d’ADN d’entrée, nous passerons "ATGC" comme premier argument d’entrée et "TACG" comme second argument d’entrée. De cette façon, chaque caractère du brin d’ADN d’entrée sera mis en correspondance avec son complément.
  • Après avoir créé la table de traduction, nous utiliserons la méthode translate() pour obtenir le complément inverse du brin d’ADN.
  • La méthode translate(), lorsqu’elle est invoquée sur une chaîne, prend une table de traduction comme argument d’entrée. Après exécution, il retourne une nouvelle chaîne en remplaçant les caractères de la chaîne sur laquelle il est invoqué selon la table de traduction ; si le mappage d’un caractère n’est pas trouvé dans la table de traduction, il copie le même caractère dans la chaîne de sortie.
  • Nous invoquerons la méthode translate() sur le brin d’ADN inversé avec la table de traduction comme argument d’entrée.
  • Après avoir exécuté la méthode translate(), nous obtiendrons le complément inverse du brin d’ADN d’entrée.

Vous pouvez observer cela dans l’exemple suivant.

input_strand = "ACGTAATTGGCC"
translation_table = input_strand.maketrans("ATCG", "TAGC")
temp = input_strand[::-1]
reversed_strand = temp.translate(translation_table)
print("The input DNA strand is:", input_strand)
print("The reverse complement is:", reversed_strand)

Production:

The input DNA strand is: ACGTAATTGGCC
The reverse complement is: GGCCAATTACGT

Obtenir le complément inverse d’un brin d’ADN à l’aide du module Biopython en Python

Nous pouvons également utiliser le module Biopython en Python pour inverser la complémentation d’un brin d’ADN. À l’aide de l’instruction suivante, vous pouvez installer le module Biopython à l’aide du programme d’installation du package pour Python PIP3.

pip3 install Bio

Le module Biopython fournit la méthode reverse_complement() pour inverser la complémentation d’un brin d’ADN en utilisant Python. Lorsqu’elle est invoquée sur un objet séquence d’ADN, la méthode reverse_complement() renvoie le complément inverse d’une séquence d’ADN.

Nous utiliserons les étapes suivantes pour obtenir le complément inverse d’un brin d’ADN en utilisant la méthode reverse_complement() en Python.

  • Tout d’abord, nous créons une séquence d’ADN à partir du brin d’ADN en utilisant la fonction Seq(). La fonction Seq() prend une chaîne représentant le brin d’ADN en entrée et renvoie une séquence d’ADN.
  • Après avoir obtenu l’objet séquence d’ADN, nous invoquerons la méthode reverse_complement() sur la séquence pour obtenir le complément inverse du brin d’ADN, comme le montre l’exemple suivant.
from Bio.Seq import Seq

input_strand = "ACGTAATTGGCC"
sequence = Seq(input_strand)
reversed_strand = sequence.reverse_complement()
print("The input DNA strand is:", input_strand)
print("The reverse complement is:", reversed_strand)

Production:

The input DNA strand is: ACGTAATTGGCC
The reverse complement is: GGCCAATTACGT

Conclusion

Dans cet article, nous avons discuté de diverses approches pour inverser la complémentation d’un brin d’ADN à l’aide de Python. Parmi toutes ces méthodes, vous pouvez choisir l’approche avec la méthode translate() si vous n’êtes pas autorisé à utiliser une bibliothèque externe ; sinon, vous pouvez utiliser le module Biopython pour inverser la complémentation d’un brin d’ADN en Python.

Nous espérons que vous avez apprécié la lecture de cet article. Restez à l’écoute pour des articles plus informatifs.

Auteur: Aditya Raj
Aditya Raj avatar Aditya Raj avatar

Aditya Raj is a highly skilled technical professional with a background in IT and business, holding an Integrated B.Tech (IT) and MBA (IT) from the Indian Institute of Information Technology Allahabad. With a solid foundation in data analytics, programming languages (C, Java, Python), and software environments, Aditya has excelled in various roles. He has significant experience as a Technical Content Writer for Python on multiple platforms and has interned in data analytics at Apollo Clinics. His projects demonstrate a keen interest in cutting-edge technology and problem-solving, showcasing his proficiency in areas like data mining and software development. Aditya's achievements include securing a top position in a project demonstration competition and gaining certifications in Python, SQL, and digital marketing fundamentals.

GitHub

Article connexe - Python String