Das umgekehrte Komplement eines DNA-Strangs mit Python ermitteln

Aditya Raj 30 Januar 2023
  1. Umgekehrtes Komplement eines DNA-Strangs
  2. Erhalten Sie das umgekehrte Komplement eines DNA-Strangs mit der for-Schleife in Python
  3. Erhalten Sie das umgekehrte Komplement eines DNA-Strangs mit der join()-Methode in Python
  4. Erhalten Sie das umgekehrte Komplement eines DNA-Strangs mit der get()-Methode in Python
  5. Erhalten Sie das umgekehrte Komplement eines DNA-Strangs mithilfe des Listenverständnisses in Python
  6. Erhalten Sie das umgekehrte Komplement eines DNA-Strangs mit der translate()-Methode in Python
  7. Holen Sie sich das umgekehrte Komplement eines DNA-Strangs mit dem Biopython-Modul in Python
  8. Fazit
Das umgekehrte Komplement eines DNA-Strangs mit Python ermitteln

Während wir an wissenschaftlichen Aufgaben in Python arbeiten, müssen wir bestimmte Aufgaben ausführen. Dieser Artikel beschreibt verschiedene Möglichkeiten, um mit Python das umgekehrte Komplement eines DNA-Strangs zu erhalten.

Umgekehrtes Komplement eines DNA-Strangs

Ein DNA-Strang wird hauptsächlich durch vier Arten von Basen dargestellt, nämlich Adenin (A), Thymin (T), Guanin (G) und Cytosin (C). Es kann auch andere Arten von Basen geben.

Jeder DNA-Strang wird durch eine Reihe von Buchstaben A, T, G und C dargestellt. Beispielsweise könnte ACGTAATTGGCC einer der DNA-Stränge sein.

Um das Komplement eines DNA-Strangs zu erhalten, ersetzen wir A durch T, C durch G, G durch C und T durch A im ursprünglichen Strang. Beispielsweise ist das Komplement von ACGTAATTGGCC TGCATTAACCGG.

Um das Komplement eines DNA-Strangs umzukehren, werden wir die Zeichen im Komplement des DNA-Strangs umkehren. Daher ist das umgekehrte Komplement GGCCAATTACGT.

Lassen Sie uns nun diskutieren, wie Sie mit Python das umgekehrte Komplement eines DNA-Strings erhalten können.

Erhalten Sie das umgekehrte Komplement eines DNA-Strangs mit der for-Schleife in Python

Wir werden die folgenden Schritte befolgen, um das umgekehrte Komplement eines DNA-Strangs mit einer for-Schleife in Python zu erhalten.

  • Wir werden zuerst einen leeren String namens reversed_strand definieren, um den Ausgabestring zu speichern.
  • Dann finden wir die Länge des eingegebenen DNA-Strangs mit der Funktion len(). Die Funktion len() nimmt die Zeichenfolge des DNA-Strangs und gibt die Länge zurück.
  • Danach durchlaufen wir die Zeichen des eingegebenen DNA-Strangs mit einer for-Schleife in umgekehrter Reihenfolge.
  • Wenn wir während der Iteration auf das Zeichen A stoßen, hängen wir T an reversed_strand an. In ähnlicher Weise werden wir T, G und C an reversed_strand anhängen, wenn wir in der Sequenz auf A, C und G stoßen.
  • Wenn wir im eingegebenen DNA-Strang auf ein anderes Zeichen stoßen, hängen wir dasselbe Zeichen an den reversed_strand an.
  • Nach Ausführung der for-Schleife erhalten wir den umgekehrten DNA-Strang in der Variablen reversed_strang.

Dies können Sie im folgenden Beispiel beobachten.

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)

Ausgabe:

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

Erhalten Sie das umgekehrte Komplement eines DNA-Strangs mit der join()-Methode in Python

Beim obigen Ansatz wird beim Erstellen von reversed_strand eine neue Zeichenfolge für jedes Zeichen im eingegebenen DNA-Strang erstellt. Dies kann in Bezug auf Zeit und Speicher kostspielig sein, wenn die eingegebenen DNA-Stränge zu lang sind.

Um dies zu vermeiden, können wir eine Liste verwenden, um mit Python das umgekehrte Komplement eines DNA-Strangs zu erhalten.

Wir werden die folgenden Schritte verwenden, um einen DNA-Strang mit einer for-Schleife, einer Liste und der join()-Methode rückwärts zu komplementieren.

  • Zuerst erstellen wir eine leere Liste mit dem Namen complement_chars, um die Zeichen des umgekehrten Komplements des DNA-Strangs zu speichern.
  • Dann finden wir die Länge des eingegebenen DNA-Strangs mit der Funktion len().
  • Danach durchlaufen wir die Zeichen des eingegebenen DNA-Strangs mit einer for-Schleife in umgekehrter Reihenfolge.
  • Wenn wir in Iterationen auf das Zeichen A stoßen, hängen wir T an complement_chars an, indem wir die Methode append() verwenden. Die append()-Methode nimmt, wenn sie auf complement_chars aufgerufen wird, ein Zeichen als Eingabeargument und hängt es an complement_chars an.
  • In ähnlicher Weise werden wir T, G und C an complement_chars anhängen, wenn wir in der Sequenz auf A, C und G stoßen.
  • Wenn wir im eingegebenen DNA-Strang auf ein anderes Zeichen stoßen, hängen wir dasselbe Zeichen an die complement_chars an.
  • Nach Ausführung der for-Schleife erhalten wir eine Liste von Zeichen des umgekehrten Komplements des eingegebenen DNA-Strangs in complement_chars.
  • Danach verwenden wir die join()-Methode, um das umgekehrte Komplement des ursprünglichen DNA-Strangs zu erhalten. Die join()-Methode nimmt, wenn sie auf einem input_string aufgerufen wird, ein iterierbares Objekt als Eingabeargument; nach der Ausführung gibt es einen neuen String zurück, der die Elemente des iterierbaren Objekts als Zeichen enthält, getrennt durch input_string.
  • Um das umgekehrte Komplement des DNA-Strangs mit der Methode join() zu erhalten, rufen wir die Methode join() für eine leere Zeichenfolge mit complement_chars als Eingabeargument auf. Nach Ausführung der join()-Methode erhalten wir das umgekehrte Komplement des eingegebenen DNA-Strangs.

Dies können Sie im folgenden Beispiel beobachten.

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)

Ausgabe:

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

Erhalten Sie das umgekehrte Komplement eines DNA-Strangs mit der get()-Methode in Python

Anstatt den if-else-Block in der for-Schleife zu verwenden, können wir ein Wörterbuch und die get()-Methode verwenden, um das umgekehrte Komplement eines DNA-Strangs mit Python zu erhalten. Für diese Aufgabe erstellen wir das folgende Wörterbuch.

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

Die Methode get() ruft einen Wert ab, der einem Schlüssel in einem Wörterbuch zugeordnet ist. Wenn sie für ein Wörterbuch aufgerufen wird, nimmt die Methode get() den Schlüssel als erstes Eingabeargument und einen optionalen Wert als zweites Eingabeargument.

Wenn der Schlüssel im Wörterbuch vorhanden ist, gibt er den ihm zugeordneten Wert zurück. Andernfalls gibt die Methode get() den als zweites Argument übergebenen optionalen Wert zurück.

Wir werden die folgenden Schritte verwenden, um das Komplement eines DNA-Strangs mit der Methode get() und reverse_dict umzukehren.

  • Zuerst definieren wir einen leeren String namens reversed_strand, um den Ausgabestring zu speichern.
  • Dann finden wir die Länge des eingegebenen DNA-Strangs mit der Funktion len().
  • Danach durchlaufen wir die Zeichen des eingegebenen DNA-Strangs in umgekehrter Reihenfolge mit einer for-Schleife.
  • Während der Iteration rufen wir die Methode get() auf reverse_dict mit dem aktuellen Zeichen als erstem und zweitem Argument auf. Wenn das aktuelle Zeichen in reverse_dict vorhanden ist, gibt die get()-Methode das DNA-Strangkomplement zurück; Andernfalls gibt die Methode get() das aktuelle Zeichen zurück.
  • Wir werden die Ausgabe der Methode get() an reversed_strand anhängen.
  • Nach Ausführung der for-Schleife erhalten wir den umgekehrten DNA-Strang in der Variablen reversed_strand.

Dies können Sie im folgenden Beispiel beobachten.

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)

Ausgabe:

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

Wie bereits erwähnt, ist der Ansatz, Zeichenfolgen in der for-Schleife zu erstellen, kostspielig. Daher können wir eine Liste und die Methode join() mit der Methode get() verwenden, um das umgekehrte Komplement eines DNA-Strangs mit Python zu erhalten, wie im folgenden Beispiel gezeigt.

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)

Ausgabe:

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

Hier haben wir zunächst eine Liste von Zeichen im umgekehrten Komplement erstellt, während wir den eingegebenen DNA-Strang iterieren. Danach haben wir die umgekehrte Ergänzung erstellt, indem wir die Zeichen mit der Methode join() verbunden haben.

Erhalten Sie das umgekehrte Komplement eines DNA-Strangs mithilfe des Listenverständnisses in Python

Anstatt die for-Schleife zu verwenden, können Sie auch Listenverständnis verwenden, um einen DNA-Strang mit Python rückwärts zu komplementieren.

Wir werden zuerst den eingegebenen DNA-Strang mithilfe der Indizierung umkehren, um einen DNA-Strang mithilfe des Listenverständnisses zu ergänzen. Danach verwenden wir Listenverständnis mit der Methode get() und reverse_dict, die im letzten Beispiel erstellt wurden, um eine Liste von Zeichen des umgekehrten Komplements zu erhalten.

Sobald wir die Liste der Zeichen erhalten haben, verwenden wir die join()-Methode, um das umgekehrte Komplement des eingegebenen DNA-Strangs zu finden, wie im folgenden Beispiel gezeigt.

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)

Ausgabe:

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

Erhalten Sie das umgekehrte Komplement eines DNA-Strangs mit der translate()-Methode in Python

Wir können auch das umgekehrte Komplement eines DNA-Strangs mit der Methode translate() finden. Dazu verwenden wir die folgenden Schritte.

  • Zuerst werden wir den eingegebenen DNA-Strang mithilfe der String-Indizierung umkehren. Danach erstellen wir mit der Funktion maketrans() eine Übersetzungstabelle.
  • Die Funktion maketrans() nimmt zwei Strings als Eingabeargumente, und die Länge beider Strings sollte gleich sein. Nach der Ausführung gibt es eine Übersetzungstabelle zurück, in der jedes Zeichen in der ersten Zeichenfolge auf das Zeichen an derselben Position in der zweiten Zeichenfolge abgebildet wird.
  • Beim Aufruf der Methode maketrans() auf dem Eingabe-DNA-Strang übergeben wir "ATGC" als erstes Eingabeargument und "TACG" als zweites Eingabeargument. Auf diese Weise wird jedes Zeichen im eingegebenen DNA-Strang seinem Komplement zugeordnet.
  • Nachdem wir die Übersetzungstabelle erstellt haben, verwenden wir die Methode translate(), um das umgekehrte Komplement des DNA-Strangs zu erhalten.
  • Die translate()-Methode nimmt eine Übersetzungstabelle als Eingabeargument, wenn sie für einen String aufgerufen wird. Nach der Ausführung gibt es eine neue Zeichenfolge zurück, indem es die Zeichen in der Zeichenfolge, für die es aufgerufen wird, gemäß der Übersetzungstabelle ersetzt; Wenn die Abbildung eines Zeichens nicht in der Übersetzungstabelle gefunden wird, kopiert es dasselbe Zeichen in die Ausgabezeichenfolge.
  • Wir rufen die Methode translate() auf dem umgekehrten DNA-Strang mit der Übersetzungstabelle als Eingabeargument auf.
  • Nach Ausführung der translate()-Methode erhalten wir das umgekehrte Komplement des eingegebenen DNA-Strangs.

Dies können Sie im folgenden Beispiel beobachten.

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)

Ausgabe:

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

Holen Sie sich das umgekehrte Komplement eines DNA-Strangs mit dem Biopython-Modul in Python

Wir können auch das Biopython-Modul in Python verwenden, um einen DNA-Strang umgekehrt zu komplementieren. Mit der folgenden Anweisung können Sie das Biopython-Modul mit dem Paketinstallationsprogramm für Python PIP3 installieren.

pip3 install Bio

Das Biopython-Modul bietet die Methode reverse_complement(), um einen DNA-Strang mit Python rückwärts zu komplementieren. Wenn sie für ein DNA-Sequenzobjekt aufgerufen wird, gibt die Methode reverse_complement() das umgekehrte Komplement einer DNA-Sequenz zurück.

Wir werden die folgenden Schritte verwenden, um das umgekehrte Komplement eines DNA-Strangs mit der Methode reverse_complement() in Python zu erhalten.

  • Zuerst erstellen wir aus dem DNA-Strang mit der Funktion Seq() eine DNA-Sequenz. Die Funktion Seq() nimmt als Eingabe einen String, der den DNA-Strang darstellt, und gibt eine DNA-Sequenz zurück.
  • Nachdem wir das DNA-Sequenzobjekt erhalten haben, rufen wir die Methode reverse_complement() für die Sequenz auf, um das umgekehrte Komplement des DNA-Strangs zu erhalten, wie im folgenden Beispiel gezeigt.
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)

Ausgabe:

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

Fazit

In diesem Artikel haben wir verschiedene Ansätze zur Umkehrkomplementierung eines DNA-Strangs mit Python besprochen. Aus all diesen Methoden können Sie den Ansatz mit der Methode translate() wählen, wenn Sie keine externe Bibliothek verwenden dürfen; Andernfalls können Sie das Biopython-Modul verwenden, um einen DNA-Strang in Python umgekehrt zu komplementieren.

Wir hoffen, dass Ihnen das Lesen dieses Artikels gefallen hat. Bleiben Sie dran für weitere informative Artikel.

Autor: 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

Verwandter Artikel - Python String