HOWTO · Python

Algoritmo de Smith-Waterman en Python

Este artículo analiza la implementación del algoritmo de Smith Waterman utilizando el módulo swalign en Python.

En esta página

El algoritmo de Smith-Waterman se utiliza para realizar la alineación de secuencia local de cadenas. Las cadenas representan principalmente cadenas de ADN o secuencias de proteínas.

Este artículo analiza la implementación del algoritmo Smith-Waterman en Python.

Algoritmo de Smith-Waterman en Python

El módulo swalign contiene varias funciones para implementar el algoritmo Smith-Waterman en Python. Puede instalar el módulo swalign usando PIP ejecutando la siguiente declaración en la línea de comando.

pip3 install swalign

La declaración anterior instala el módulo para la versión 3 de Python. Para instalar el módulo en la versión 2 de Python, puede usar el siguiente comando.

pip install swalign

Después de instalar el módulo swalign, usaremos los siguientes pasos para implementar el algoritmo Smith-Waterman en nuestro programa Python.

  1. Primero, importaremos el módulo swalign utilizando la instrucción import.

  2. Para realizar la alineación, debemos crear una matriz de puntuación de nucleótidos. En la matriz, proporcionamos una puntuación para cada coincidencia y discrepancia.

    Comúnmente, usamos 2 para una puntuación de coincidencia y -1 para una falta de coincidencia.

  3. Para crear la matriz de puntuación de nucleótidos, utilizaremos el método NucleotideScoringMatrix(). La NucleotideScoringMatrix() toma la puntuación de coincidencia como su primer argumento de entrada y la puntuación de desajuste como su segundo argumento de entrada.

    Después de la ejecución, devuelve un objeto IdentityScoringMatrix.

  4. Una vez que obtengamos la matriz de nucleótidos, crearemos un objeto LocalAlignment utilizando el método LocalAlignment(). El método LocalAlignment() toma la matriz de puntuación de nucleótidos como entrada y devuelve un objeto LocalAlignment.

  5. Una vez que obtengamos el objeto LocalAlignment, podemos ejecutar el algoritmo Smith-Waterman utilizando el método align().

  6. El método align(), cuando se invoca en un objeto LocalAlignment, toma una cadena que representa una hebra de ADN como su primer argumento de entrada. Toma otra cadena que representa la hebra de ADN de referencia.

  7. Después de la ejecución, el método align() devuelve un objeto Alignment. El objeto Alignment contiene los detalles de la coincidencia y la falta de coincidencia de las cadenas de entrada y varios otros detalles.

Puedes observar todo el proceso en el siguiente ejemplo.

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

Producción :

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

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

Conclusión

Este artículo analiza cómo podemos implementar el algoritmo de Smith-Waterman utilizando el módulo swalign de Python.