Smith-Waterman-Algorithmus in Python
Der Smith-Waterman-Algorithmus wird verwendet, um eine lokale Sequenzausrichtung von Zeichenfolgen durchzuführen. Die Strings repräsentieren meist DNA-Stränge oder Proteinsequenzen.
Dieser Artikel behandelt die Implementierung des Smith-Waterman-Algorithmus in Python.
Smith-Waterman-Algorithmus in Python
Das Modul swalign
enthält mehrere Funktionen, um den Smith-Waterman-Algorithmus in Python zu implementieren. Sie können das Modul swalign
mit PIP
installieren, indem Sie die folgende Anweisung in der Befehlszeile ausführen.
pip3 install swalign
Die obige Anweisung installiert das Modul für Python Version 3. Um das Modul in Python Version 2 zu installieren, können Sie den folgenden Befehl verwenden.
pip install swalign
Nach der Installation des swalign
-Moduls verwenden wir die folgenden Schritte, um den Smith-Waterman-Algorithmus in unser Python-Programm zu implementieren.
-
Zuerst importieren wir das
swalign
-Modul mit derimport
-Anweisung. -
Um das Alignment durchzuführen, müssen wir eine Nukleotid-Scoring-Matrix erstellen. In der Matrix stellen wir eine Punktzahl für jede Übereinstimmung und Nichtübereinstimmung bereit.
Üblicherweise verwenden wir 2 für einen Übereinstimmungswert und -1 für eine Nichtübereinstimmung.
-
Um die Nukleotid-Scoring-Matrix zu erstellen, verwenden wir die Methode
NucleotideScoringMatrix()
. DieNucleotideScoringMatrix()
nimmt den Match-Score als erstes Eingabeargument und den Mismatch-Score als zweites Eingabeargument.Nach der Ausführung gibt es ein
IdentityScoringMatrix
-Objekt zurück. -
Sobald wir die Nukleotidmatrix erhalten haben, erstellen wir ein
LocalAlignment
-Objekt mit derLocalAlignment()
-Methode. Die MethodeLocalAlignment()
nimmt die Nukleotid-Scoring-Matrix als Eingabe und gibt einLocalAlignment
-Objekt zurück. -
Sobald wir das
LocalAlignment
-Objekt erhalten haben, können wir den Smith-Waterman-Algorithmus mit deralign()
-Methode ausführen. -
Die
align()
-Methode nimmt, wenn sie für einLocalAlignment
-Objekt aufgerufen wird, eine Zeichenkette, die einen DNA-Strang darstellt, als erstes Eingabeargument. Es dauert eine andere Zeichenfolge, die den Referenz-DNA-Strang darstellt. -
Nach der Ausführung liefert die Methode
align()
einAlignment
-Objekt zurück. Das ObjektAlignment
enthält die Übereinstimmungsdetails und Nichtübereinstimmungen der Eingabezeichenfolgen und mehrere andere Details.
Den gesamten Vorgang können Sie im folgenden Beispiel beobachten.
import swalign
dna_string = "ATCCACAGC"
reference_string = "ATGCAGCGC"
match_score = 2
mismatch_score = -1
matrix = swalign.NucleotideScoringMatrix(match_score, mismatch_score)
lalignment_object = swalign.LocalAlignment(matrix)
alignment_object = lalignment_object.align(dna_string, reference_string)
alignment_object.dump()
Ausgabe:
Query: 1 ATGCAGC-GC 9
||.|| | ||
Ref : 1 ATCCA-CAGC 9
Score: 11
Matches: 7 (70.0%)
Mismatches: 3
CIGAR: 5M1I1M1D2M
Fazit
Dieser Artikel beschreibt, wie wir den Smith-Waterman-Algorithmus mit dem swalign
-Modul von Python implementieren können.
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