HOWTO · Python
Obtenir le complément inverse d'un brin d'ADN à l'aide de Python
Cet article explique comment nous pouvons créer un complément inverse d'un brin d'ADN en utilisant Python. Il utilise les méthodes de chaîne intégrées et le module Biopython.
Sur cette page
Pour le brin d’ADN ACGTAATTGGCC, le complément inverse est GGCCAATTACGT. Python le produit en complémentant chaque base et en lisant les bases de la fin vers le début.
Complément inverse d’un brin d’ADN
L’ADN utilise les paires de bases A↔T et C↔G. Le complément de ACGTAATTGGCC est TGCATTAACCGG ; inverser ce complément donne GGCCAATTACGT. L’inversion change l’ordre, tandis que la complémentation change chaque base.
Les exemples ci-dessous associent les lettres majuscules A, T, C et G. Ils conservent les autres symboles tels qu’ils sont écrits, y compris les lettres minuscules ; ils ne normalisent pas la casse et ne valident pas un alphabet ADN complet.
Obtenir le complément inverse d’un brin d’ADN à l’aide de la boucle for en Python
Pour une séquence d’ADN en majuscules, cet exemple complet construit le résultat avec une boucle for :
input_strand = "ACGTAATTGGCC"
complements = {"A": "T", "T": "A", "C": "G", "G": "C"}
result = ""
for base in reversed(input_strand):
result += complements.get(base, base)
print(result)
GGCCAATTACGT
La boucle parcourt les bases dans l’ordre inverse. La valeur de repli du dictionnaire conserve un symbole inchangé lorsqu’il ne s’agit pas de l’une des quatre bases en majuscules.
Obtenir le complément inverse d’un brin d’ADN à l’aide de la méthode join() en Python
Collecter les caractères dans une liste et les joindre rend l’étape d’assemblage claire :
input_strand = "ACGTAATTGGCC"
complements = {"A": "T", "T": "A", "C": "G", "G": "C"}
complement_chars = [complements.get(base, base) for base in reversed(input_strand)]
result = "".join(complement_chars)
print(result)
GGCCAATTACGT
join() combine les éléments de la liste en une seule chaîne. Cette approche de la bibliothèque standard évite d’étendre à plusieurs reprises la chaîne de résultat.
Obtenir le complément inverse d’un brin d’ADN à l’aide de la méthode get() en Python
Ici, base est la clé du dictionnaire. get(base, base) renvoie le complément associé lorsque la clé existe et renvoie le caractère d’origine comme valeur de repli dans le cas contraire :
input_strand = "ACGTAATTGGCC"
complements = {"A": "T", "T": "A", "C": "G", "G": "C"}
result_chars = []
for base in reversed(input_strand):
result_chars.append(complements.get(base, base))
print("".join(result_chars))
GGCCAATTACGT
La forme liste-et-jointure garde la boucle lisible tout en assemblant une chaîne à partir de caractères.
Obtenir le complément inverse d’un brin d’ADN à l’aide de la compréhension de liste en Python
La tranche inversée [::-1] parcourt l’entrée de droite à gauche. Fournir le caractère d’origine comme valeur de repli garantit que chaque élément de la liste est une chaîne :
input_strand = "ACGTAATTGGCC"
complements = {"A": "T", "T": "A", "C": "G", "G": "C"}
result = "".join(complements.get(base, base) for base in input_strand[::-1])
print(result)
GGCCAATTACGT
Sans ce repli, une base non associée produirait None, que join() ne peut pas combiner avec des chaînes.
Obtenir le complément inverse d’un brin d’ADN à l’aide de la méthode translate() en Python
Le str.maketrans() de la bibliothèque standard crée une table de correspondance de caractères ; str.translate() l’applique. Inversez le brin séparément, puis traduisez chaque base :
input_strand = "ACGTAATTGGCC"
table = str.maketrans("ATCG", "TAGC")
result = input_strand[::-1].translate(table)
print(result)
GGCCAATTACGT
Les caractères absents de la table passent inchangés. Cette approche ne nécessite aucune bibliothèque externe.
Obtenir le complément inverse d’un brin d’ADN à l’aide du module Biopython en Python
Biopython est une dépendance externe qui fournit des utilitaires de séquences, dont reverse_complement(). Son nom de distribution est biopython, tandis que le chemin d’importation Python commence par Bio. Installez-le dans l’environnement utilisé pour exécuter votre script avec python -m pip install biopython.
Ce qui suit est une illustration de syntaxe, et non un exemple vérifié à l’exécution : l’installation et l’importation n’ont pas été confirmés dans l’environnement d’exécution sélectionné.
from Bio.Seq import Seq et Seq("ACGTAATTGGCC").reverse_complement()
Cette option dépend de l’installation de Biopython ; les exemples de bibliothèque standard ci-dessus n’en dépendent pas. Utilisez la bibliothèque lorsque ses utilitaires de séquences conviennent à votre projet, ou choisissez une approche de bibliothèque standard lorsque l’ajout d’une dépendance n’est pas approprié.
Conclusion
Utilisez une boucle, un dictionnaire, une compréhension de liste ou translate() pour une solution de bibliothèque standard. Choisissez Biopython lorsque ses utilitaires de séquences plus larges conviennent à la tâche. Une chaîne vide produit un résultat vide. Les exemples conservent les autres symboles et les caractères d’entrée en minuscules ; normalisez ou validez l’entrée séparément si vos données exigent cette politique.