Algorithme de Smith-Waterman en Python

Aditya Raj 18 aout 2022
  1. Algorithme de Smith-Waterman en Python
  2. Conclusion
Algorithme de Smith-Waterman en Python

L’algorithme Smith-Waterman est utilisé pour effectuer un alignement de séquence local des chaînes. Les chaînes représentent principalement des brins d’ADN ou des séquences de protéines.

Cet article traite de l’implémentation de l’algorithme Smith-Waterman en Python.

Algorithme de Smith-Waterman en Python

Le module swalign contient plusieurs fonctions pour implémenter l’algorithme de Smith-Waterman en Python. Vous pouvez installer le module swalign à l’aide de PIP en exécutant l’instruction suivante dans la ligne de commande.

pip3 install swalign

L’instruction ci-dessus installe le module pour Python version 3. Pour installer le module dans Python version 2, vous pouvez utiliser la commande suivante.

pip install swalign

Après avoir installé le module swalign, nous utiliserons les étapes suivantes pour implémenter l’algorithme Smith-Waterman dans notre programme Python.

  1. Tout d’abord, nous allons importer le module swalign à l’aide de l’instruction import.

  2. Pour effectuer l’alignement, nous devons créer une matrice de notation des nucléotides. Dans la matrice, nous fournissons un score pour chaque correspondance et non-concordance.

    Généralement, nous utilisons 2 pour un score de correspondance et -1 pour un décalage.

  3. Pour créer la matrice de notation des nucléotides, nous utiliserons la méthode NucleotideScoringMatrix(). Le NucleotideScoringMatrix() prend le score de correspondance comme premier argument d’entrée et le score de non-concordance comme deuxième argument d’entrée.

    Après exécution, il retourne un objet IdentityScoringMatrix.

  4. Une fois la matrice de nucléotides obtenue, nous allons créer un objet LocalAlignment en utilisant la méthode LocalAlignment. La méthode LocalAlignment prend la matrice de notation des nucléotides en entrée et renvoie un objet LocalAlignment.

  5. Une fois que nous avons obtenu l’objet LocalAlignment, nous pouvons exécuter l’algorithme de Smith-Waterman en utilisant la méthode align().

  6. La méthode align(), lorsqu’elle est invoquée sur un objet LocalAlignment, prend une chaîne représentant un brin d’ADN comme premier argument d’entrée. Il prend une autre chaîne représentant le brin d’ADN de référence.

  7. Après exécution, la méthode align() retourne un objet Alignment. L’objet Alignment contient les détails de correspondance et de non-concordance des chaînes d’entrée et plusieurs autres détails.

Vous pouvez observer l’ensemble du processus dans l’exemple suivant.

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()

Production:

Query:  1 ATGCAGC-GC 9
          ||.|| | ||
Ref  :  1 ATCCA-CAGC 9

Score: 11
Matches: 7 (70.0%)
Mismatches: 3
CIGAR: 5M1I1M1D2M

Conclusion

Cet article explique comment nous pouvons implémenter l’algorithme de Smith-Waterman en utilisant le module swalign de Python.

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 Algorithm