Smith-Waterman-Algorithmus in Python

Aditya Raj 18 August 2022
  1. Smith-Waterman-Algorithmus in Python
  2. Fazit
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.

  1. Zuerst importieren wir das swalign-Modul mit der import-Anweisung.

  2. 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.

  3. Um die Nukleotid-Scoring-Matrix zu erstellen, verwenden wir die Methode NucleotideScoringMatrix(). Die NucleotideScoringMatrix() 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.

  4. Sobald wir die Nukleotidmatrix erhalten haben, erstellen wir ein LocalAlignment-Objekt mit der LocalAlignment()-Methode. Die Methode LocalAlignment() nimmt die Nukleotid-Scoring-Matrix als Eingabe und gibt ein LocalAlignment-Objekt zurück.

  5. Sobald wir das LocalAlignment-Objekt erhalten haben, können wir den Smith-Waterman-Algorithmus mit der align()-Methode ausführen.

  6. Die align()-Methode nimmt, wenn sie für ein LocalAlignment-Objekt aufgerufen wird, eine Zeichenkette, die einen DNA-Strang darstellt, als erstes Eingabeargument. Es dauert eine andere Zeichenfolge, die den Referenz-DNA-Strang darstellt.

  7. Nach der Ausführung liefert die Methode align() ein Alignment-Objekt zurück. Das Objekt Alignment 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.

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 Algorithm